Skip to Main Content

Integration

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

JDBC Connection Pool Debugging

807567Feb 5 2009 — edited Feb 6 2009
I'm a sysadmin of a webserver with a java application that was developed inside the company. That application is using JDBC connections to access an Oracle server. The problem is that ever so often the connection to the DB are broken (cluster failover, for example) and the application is unable to reconnect. We get java exceptions, first:
java.sql.SQLException: ORA-01089: immediate shutdown in progress - no operations are permitted
then (with full stack):
java.sql.SQLException: Io exception: Broken pipe
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
        at oracle.jdbc.driver.OracleConnection.setAutoCommit(OracleConnection.java:1224)
        at com.sun.enterprise.resource.JdbcConnection.setAutoCommit(JdbcConnection.java:178)
        at app81.servlet.DirectAccessServlet.executeGameOperation(DirectAccessServlet.java:111)
        at app81.servlet.DirectAccessServlet.doPost(DirectAccessServlet.java:162)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:816)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:917)
        at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:398)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
        at webutils.filter.LoggerFilter.doFilter(LoggerFilter.java:39)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:217)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
        at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:255)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:187)
        at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556)
        at com.sun.webserver.connector.nsapi.NSAPIProcessor.service(NSAPIProcessor.java:160)
The real problem is that the server sticks in this state and only a complete webserver restart helps to get rid of this. Our java developer says that connection pools should not return broken connections and this is clearly a bug in WS. But I am suspicious and before reporting this as a bug I want to be sure that the application is really using the pool and using it correctly. Is there a way to get this information from the WS?

We have a Sun Java System Web Server 7.0U1 deployed in a production system so minimal downtimes are permitted.
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Mar 6 2009
Added on Feb 5 2009
1 comment
391 views