Hello community,
I'm asking your help because I'm really lost and I don't know what to do, or I
don't understand what is wrong.
Let me explain first the different environments, they are 3 : Development, Test
and Production.
We are working on all of them with a web application with Angular and
Openlayers, Web API controllers on Windows Servers, with GeoServer as layers
data sources and an Oracle 12 database.
The issue appears in Production, must come from GeoServer and/or Oracle, but I
guess it's only GeoServer.
For each environment :
* Development :
* GeoServer 2.10.0, installed as stand-alone Windows service
* Test :
* GeoServer 2.23.0, installed as stand-alone Windows service
* Production :
* GeoServer 2.16.1, BUT HERE, it is installed with Apache Tomcat 9.0,
not as a stand-alone Windows service (don't ask me why, I can't answer ^^)
On each environment, an "Oracle NG" data source is configured to share spatial
data from the database to the web application.
All was working fine since some years, but last weeks we noticed an issue that
occurs sometime in the Production environnement. I can't reproduce it for now
on Development and Test.
GeoServer sent an error message "Rendering process failed, Unable to obtain
connection : Cannot get a connection, pool error Timeout waiting for idle
object".
So I updated (Development/Test/Production) the "max connections" parameter of
"Oracle NG" data source from 10 to 50, restarted the service to be sure, but
the error continues to come after sometime.
I daily checked the Oracle sessions for the user (call it map_ora_user)
associated with the "Oracle NG" GeoServer data source, it keeps most of the
time between 6-10 sessions, sometimes less but never more.
I tried to connect many times manually to Oracle with the map_ora_user, more
than 10, plus the already opened sessions from GeoServer, it doesn't look like
the limitation comes from Oracle database.
So I made researches, and most of the time the solution talks about an "Oracle
JNDI" data source, that is also configured on Apache/Tomcat side, in a context
as I see here :
https://docs.geoserver.org/stable/en/user/tutorials/tomcat-jndi/tomcat-jndi.html
But many questions come to me reading this :
* Why the "max connections" parameter doesn't seem to affect the connection
pool with the "Oracle NG" data source ? How is it clearly managed ? It looks
like it is better explained in the JNDI version than the NG one.
* Is the issue could come from some configuration in Apache/Tomcat ?
Because this is the only place where GeoServer is installed in another way than
in Development or Test.
* Is the "Oracle NG" need more configuration (Apache/Tomcat context for
example) to manage the connection pool like the JNDI version ? I don't see a
parameter that could come from outside GeoServer, like a jndiReferenceName for
example.
* If I have to migrate my "Oracle NG" connection to an "Oracle JNDI", is
there a simple way to adapt all the layers defined from the "Oracle NG" data
source ? We have many layers defined, it will take many time to reset them one
by one manually.
* Do I have to review the installation of GeoServer in Windows service in
Production environment ?
Hope someone already had this kind of issue, and help me to clarify the
situation.
Many thanks in advance :-)
JC
_______________________________________________
Geoserver-users mailing list
Please make sure you read the following two resources before posting to this
list:
- Earning your support instead of buying it, but Ian Turton:
http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines:
http://geoserver.org/comm/userlist-guidelines.html
If you want to request a feature or an improvement, also see this:
https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-users