GeoServer does not work with an oracle connection pool


We are using the product with a tomcat connection pool connected to an Oracle database.

When monitored through JMX, the pool seems to be working just fine. Our configuration set the pool size at 10 and there is never more than 10 active connection in the pool. Likewise, looking at oracle active session do not show more than 10.
However, when looking at the Oracle listener log file we see that a large number of connection have been created over the span of our tests.

The conclusions is that although there is never more than 10 connection at any given time, these connections are never the same. It seems that the physical connections are not reused and new connections are continuously created.
This diagnosis is confirmed by the use of software such as TCPView. When monitoring the physical connection on both the app server and the database server, we see that new connection to the DB server are constantly being created while existing connection are being closed. There is never more than 10 ESTABLISHED connection and yet new one are constantly being created.

Our understanding is that this might be related to the mechanism by which GeoTools Oracle plugin (gt-jdbc-oracle) accesses the underlying physical connection. Somehow the underlying physical connection is closed instead of being released back to the pool and thus the pool creates new connections to replace those that have been directly closed.

To reproduce the problem, I attached a zip file that contains:

  • The Oracle "BIO_FR_RNC" data (table creation, rows insertion, user_sdo_geom_metadata insertion)
    * The SLD file (RN.sld) for the corresponding layer (BIO_FR_RNC)
    * The JMeter script

Thank you in advance for your help.









Fix versions


Affects versions