Geocoder JDBC Error java.sql.SQLException: Connection Has Already Been Closed (Doc ID 1457361.1)

Last updated on FEBRUARY 08, 2017

Applies to:

Oracle Spatial and Graph - Version 11.2.0.2.0 to 11.2.0.2.0
Information in this document applies to any platform.
***Checked for relevance on 30-Jan-2014***

Symptoms

Geocoder request getting error java.sql.SQLException: Connection has already been closed.


[oracle.lbs.geocoder.server.Settlement, Wed Mar 21 10:15:38 CET 2012, ERROR] java.sql.SQLException: Connection has already been closed.
at weblogic.jdbc.wrapper.PoolConnection.checkConnection(PoolConnection.java:58)
at weblogic.jdbc.wrapper.Connection.preInvocationHandler(Connection.java:94)
at weblogic.jdbc.wrapper.Connection.getMetaData(Connection.java:436)
at oracle.spatial.geocoder.server.GeocoderConfig.getConnection(GeocoderConfig.java:297)
at oracle.spatial.geocoder.server.Settlement.resolveInDB(Settlement.java:742)
at oracle.spatial.geocoder.server.Settlement.resolve(Settlement.java:219)
at oracle.spatial.geocoder.server.GenericGeocoder.resolveCity(GenericGeocoder.java:844)
at oracle.spatial.geocoder.server.GenericGeocoder.geocodeLoc(GenericGeocoder.java:276)
at oracle.spatial.geocoder.server.GenericGeocoder.geocode(GenericGeocoder.java:203)
at oracle.spatial.geocoder.server.GeocoderImpl.geocode(GeocoderImpl.java:449)
at oracle.spatial.geocoder.GCServer.process(GCServer.java:401)
at oracle.spatial.geocoder.GCServer.doPost(GCServer.java:205)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:821)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:184)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3717)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)

[oracle.spatial.geocoder.GCServer, Wed Mar 21 10:15:38 CET 2012, DEBUG]


Steps:
1. From the "Geocoder XML sample requests" page (http://host:port/geocoder/xmlreq.html) make the following reverse geocoding request (second form):

 
    country="ES"
  longitude="0" latitude="0" >


2.After a while, longer than usual, the response is:
Error:
Message:Error in ReverseGeocoder
Nested exception is:
java.sql.SQLRecoverableException: No hay más datos para leer del socket


3. And then any other request to the reverse geocoder, even those that were working before the error, now always return the same error.

4. Then I tested the connection pool (named GeocoderDS-nonXA1-PROD, the only pool included in multi data source GeocoderMultiDS-nonXA-PROD, the one configured in geocoder) from the WLS admin console and it reported also an error.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms