Hi,
We are using Oracle JNDI datastore and having issues with lots of user-aborted WFS/WMS Requests.
It seems like when users often request big datasets and then abort it manually (becaus it takes too long) and then request again (many times) our geoserver/tomcat instances run into:
"java.lang.RuntimeException: Unable to obtain connection: Cannot get a connection, pool error Timeout waiting for idle object".
We think when the user abortes the request the result-set in geoserver is still being processed and won't release the db-connection until finished...
Unfortunately,connection pool setting removeAbandoned="true" does not prevent us from this issue.
Does anybody have a suggestion to overcome this problem? Thx!
Cheers Rudi
On Tue, Dec 17, 2013 at 4:35 PM, Hochmeister Rudolf <
rudolf.hochmeister@anonymised.com> wrote:
Hi,
We are using Oracle JNDI datastore and having issues with lots of
user-aborted WFS/WMS Requests.
It seems like when users often request big datasets and then abort it
manually (becaus it takes too long) and then request again (many times) our
geoserver/tomcat instances run into:
"java.lang.RuntimeException: Unable to obtain connection: Cannot get a
connection, pool error Timeout waiting for idle object".
We think when the user abortes the request the result-set in geoserver is
still being processed and won't release the db-connection until finished...
This depends on the request, but yes, it happens, because in Java servlet
container you get to know the client
closed the connection only when you're trying to write out the output, so:
* wms requests producing an image will notice only when the image is
written out, but to get there, you have had to paint it all first
* wfs requests doing a shape-zip output will also have to write the full
shapefile on disk before zipping and sending out, same issue
Suggestions:
* install control flow and limit the requests you're actually handling, so
that you have fewer finishing faster rather than
many taking a long time each, the others will be queued and won't use a
db connection
* make sure you set proper scale limits in your SLDs so that you're not
painting too much data in your GetMap requests
Hope this helps
Cheers
Andrea
--
*== GeoSolutions will be closed for seasonal holidays from 23/12/2013 to
06/01/2014 ==*
Ing. Andrea Aime
@geowolf
Technical Lead
GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549
http://www.geo-solutions.it
http://twitter.com/geosolutions_it
-------------------------------------------------------