Hi list members,

From former threads I got the impression, that there are some folks
interested in the Oracle/Mapserver/Java/Tomcat.

Therfore I'd like to share experiences I made with using Connection-Pooling of
Oracle-Connections inside Java/Tomcat.

Testenvironment: Mapserver 4.6.2; Suse-Linux; Tomcat 4.1.31; Sun-Java 1.4.2
Simulating 5 Browsers, which produce maps, query features, make selections,
query-legend-pics frequently.

- After using synchronized "enough" I didn't have crashes of Tomcat.

- Big memory leak: Between the first 5 requests and the next 100 requests
   the Tomcat-process became about 400MB bigger.  (I use "top" for
   watching memory-footprint.)

- Cleaning the Connection-Pool "by hand". This means:
  Opening the function msConnPoolCloseUnreferenced in mappool.c
  for use in Java and call it after every request.

- After this I still have memory leaks:  About 100MB for 30.000 requests.
  (I also made a test: 25.000 requests without Connection pooling. Memory increased
    and decreased as expected  in this case.)

- Performancecomparison in my testcase:
  Without use of connection-pooling: ~ 50 Request per minute
  With use of connection-pooling: ~75 Request per minute  


As a result I have the following encouragements:
- Making msConnPoolCloseUnreferenced  availabe for mapscript via swig.
  (I made a hack by directly editing mapscript/java/mapscript_wrap.c and
   Java-Files in mapscript/java/edu/umn/gis/mapscript.) I think this
  function could be part of the mapscript-Object?

- Investigations on the memory leaks. Both leaks shouldn't occure. (I'll do
  this, if I find time. but ...)

- Fernando Simon: What about using OCI-Connection-Pooling  for oracle instead the mappool.c?
  http://oraclesvca2.oracle.com/docs/cd/B14117_01/appdev.101/b10779/oci09adv.htm#452244
  (If you don't have time, I maybe could help coding. But would it become part uf Mapserver?)

Happy new year to everybody
Benedikt Rothe

Reply via email to