Connection pool problem for ArcSDE store
----------------------------------------

                 Key: GEOT-3418
                 URL: http://jira.codehaus.org/browse/GEOT-3418
             Project: GeoTools
          Issue Type: Bug
          Components: data arcsde
    Affects Versions: 2.6.4
         Environment: Java 1.6.14, Win 2003 server
            Reporter: Mathieu Lavoie
            Assignee: Gabriel Roldán
            Priority: Minor
         Attachments: geoserver_simple_test.jmx

I'm using Geoserver 2.0.2 with the ArcDE plugin. I've created a data 
store to ArcSDE with the following configuration:
 
Initial conn: 1
Max conn: 5
 
I'm using ArcSDE 9.2
 
If I run a load test against Geoserver (WMS and WFS calls) I end up 
with the following error: Error: Maximum number of connections to 
instance esri_sde exceeded (-7). The test result are really bad as 
most of the requests cannot be served.
 
Geoserver is the only app connected to ArcSDE. If I look at the task 
manager under the database, I can see more than 5 gsrvr processes 
running on the SDE server (up to 48, which is the max conn for SDE).
 
I would expect to see no more than 5 processes as the max conn is 5.
It looks like some of the processes are orphan and therefore can't 
be reused forcing Geoserver to create a new process...
 
If I set initial conn and max conn at 1, the load test is just fine 
even if I end up with 4  gsrvr processes at the end.
 
It looks like something isn't just right with SDE. 
 
As far as I remember, ArcIMS had the same problem and ESRI suggest 
to restart ArcSDE every week to avoid the problem. Under load (say 50 
concurrent users)  I'm running out of connection in 10 min so 
restarting ArcSDE every week does not appear to be a solution....
 
This is a bit annoying as I cannot take advantage of the pooling 
mechanism provided in the ArcSDE plugin.

I've attached a JMeter testcase to reproduce the problem.


The test is simple, it just ask for the same WMS request over and over again 
(without caching).

It looks like some of the gsvr processes become orphan at some point. With a 
max conn set to 1, the # of conn at the end of the test is around 4. With a max 
of 5 conns, 10 processes and so on....

You'll have to change the Servicer Name from the HTTP Request page and might 
need to crank the number of threads in the Jmeter test (see Thread Group from 
the Test Plan) depending on your setup.

I've ran the SDE plugin with the version 9.2 and 9.3 of the ESRI jars with the 
same result.

Also, if I stop Geoserver the gsvr processes disappear and if I re-save the 
ArcSDE datastore, the number of process go back to 1.

With the above behavior it let me think that the connection pool is not 
releasing connection properly but if it was the case we should get a connection 
pool exhausted and shouldn't create more process...


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

------------------------------------------------------------------------------
The modern datacenter depends on network connectivity to access resources
and provide services. The best practices for maximizing a physical server's
connectivity to a physical network are well understood - see how these
rules translate into the virtual world? 
http://p.sf.net/sfu/oracle-sfdevnlfb
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to