The network card of our DB server often freezes and all applications running on APP are therefore failing. DB hard reboot necessary. Let me first introduce the configuration: Dell Poweredge 2400 Application server (APP) connected to Dell Poweredge 2400 Database server (DB) Both are running under Windows NT SP6a DB has Oracle 8.1.6 APP has Apache 2.0.52 with mod_jk 1.2.13, Tomcat 5.5.9 and JDK 1_5_0_04 (APP was recently migrated from IBM HTTP Server 2 and Websphere Application Server 4.0) DB was running stable for a couple of years. APP is running 6 applications sharing 3 DBCP connection pooling (masked connection string): <Resource name="db/local" scope="Shareable" type="javax.sql.DataSource" auth="Container" url="jdbc:oracle:thin:@file_db:1521:DB" password="pass" maxActive="30" maxWait="-1" driverClassName="oracle.jdbc.driver.OracleDriver" username="xxx" maxIdle="10" /> <Resource name="dbnl/local" scope="Shareable" type="javax.sql.DataSource" auth="Container" url="jdbc:oracle:thin:@file_db:1521:DB" password="pass2" maxActive="20" maxWait="-1" driverClassName="oracle.jdbc.driver.OracleDriver" username="xxx2" maxIdle="10" /> <Resource name="dbuk/local" scope="Shareable" type="javax.sql.DataSource" auth="Container" url="jdbc:oracle:thin:@file_db:1521:DB" password="pass3" maxActive="30" maxWait="-1" driverClassName="oracle.jdbc.driver.OracleDriver" username="xxx3" maxIdle="10" /> <Connector port="8009" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
Under certain conditions (seems to be heavier load) the network card of the DB freezes and all applications running on APP are therefore failing. I've checked all Oracle logs and Oracle is not crashing. The number of DB connections is even low (around 30 while 150 permitted) and no new connections are being created just before the crash. The Apache 2 server status is not showing an abnormal high number of connections either leading me to think Apache HTTP and mod_jk are not at fault. I am suspecting a race condition with DBCP connection pooling on Tomcat 5.5.9 which increases network traffic causing the network card of the DB server to crash. Our DB server currently crashes 2 times a week. I am planning to try installing tomcat 5.5.7 instead as I've seen some changes logged in 5.5.9 regarding the ms thread pool (but at this stage I am really guessing) Problem also occurs using the AbandonnedPool option of Commons DBCP, ie with following extra parameters in the Resource tag removeAbandoned="true" removeAbandonedTimeout="300" logAbandoned="true" stdout then contains the only visible error but error might be logical since network is also interrupted. Please note that the connections are well closed programmatically as those functions are called regularly. It is just that when (before or after) DB crashes connections don't seem to close. All help/suggestions are welcome. Thanks StdOut: ------- DBCP object created 2005-08-03 17:42:47 by the following code was never closed: java.lang.Exception at org.apache.tomcat.dbcp.dbcp.AbandonedTrace.setStackTrace(AbandonedTrace.java :157) at org.apache.tomcat.dbcp.dbcp.AbandonedObjectPool.borrowObject(AbandonedObject Pool.java:76) at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSourc e.java:95) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.ja va:540) at com.bobex.dao.BaseDAO.getConnection(BaseDAO.java:176) at com.bobex.dao.BidDAO.findFeedbackOfBids(BidDAO.java:742) at com.bobex.servlets.events.BidFeedbackListEventListener.requery(BidFeedbackLi stEventListener.java:414) at com.bobex.util.list.events.AbstractListModel.fireNext(AbstractListModel.java :311) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.bobex.util.list.events.AbstractListModel.listEventOccured(AbstractListMo del.java:685) at com.bobex.taglibs.list.ListTag.doStartTag(ListTag.java:77) at org.apache.jsp.mybobex.feedback_jsp._jspx_meth_util_list_0(org.apache.jsp.my bobex.feedback_jsp:141) at org.apache.jsp.mybobex.feedback_jsp._jspService(org.apache.jsp.mybobex.feedb ack_jsp:103) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:3 22) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application FilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh ain.java:173) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher. java:672) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDis patcher.java:463) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatch er.java:398) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher .java:301) at com.bobex.servlets.HttpServletState.forward(HttpServletState.java:49) at com.bobex.servlets.BaseControllerServlet.forwardToNextAction(BaseControllerS ervlet.java:70) at com.bobex.servlets.MyBobexAreaServlet.viewFeedbackOfBids(MyBobexAreaServlet. java:1371) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.bobex.servlets.MethodCallerServlet.handleRequest(MethodCallerServlet.jav a:47) at com.bobex.servlets.BaseControllerServlet.service(BaseControllerServlet.java: 175) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application FilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh ain.java:173) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher. java:672) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDis patcher.java:463) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatch er.java:398) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher .java:301) at com.bobex.servlets.HttpServletState.forward(HttpServletState.java:49) at com.bobex.servlets.DispatchServlet.handleRequest(DispatchServlet.java:139) at com.bobex.servlets.BaseControllerServlet.service(BaseControllerServlet.java: 175) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application FilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh ain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja va:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja va:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126 ) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105 ) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java :107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:307) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:385) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:748) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:678) at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:871) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav a:684) at java.lang.Thread.run(Unknown Source) DBCP object created 2005-08-03 17:42:47 by the following code was never closed: java.lang.Exception at org.apache.tomcat.dbcp.dbcp.AbandonedTrace.init(AbandonedTrace.java:96) at org.apache.tomcat.dbcp.dbcp.AbandonedTrace.<init>(AbandonedTrace.java:79) at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.<init>(DelegatingStatement.j ava:60) at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.<init>(DelegatingPre paredStatement.java:65) at org.apache.tomcat.dbcp.dbcp.DelegatingConnection.prepareStatement(Delegating Connection.java:185) at org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.pre pareStatement(PoolingDataSource.java:278) at com.bobex.dao.BidDAO.findFeedbackOfBids(BidDAO.java:743) at com.bobex.servlets.events.BidFeedbackListEventListener.requery(BidFeedbackLi stEventListener.java:414) at com.bobex.util.list.events.AbstractListModel.fireNext(AbstractListModel.java :311) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.bobex.util.list.events.AbstractListModel.listEventOccured(AbstractListMo del.java:685) at com.bobex.taglibs.list.ListTag.doStartTag(ListTag.java:77) at org.apache.jsp.mybobex.feedback_jsp._jspx_meth_util_list_0(org.apache.jsp.my bobex.feedback_jsp:141) at org.apache.jsp.mybobex.feedback_jsp._jspService(org.apache.jsp.mybobex.feedb ack_jsp:103) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:3 22) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application FilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh ain.java:173) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher. java:672) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDis patcher.java:463) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatch er.java:398) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher .java:301) at com.bobex.servlets.HttpServletState.forward(HttpServletState.java:49) at com.bobex.servlets.BaseControllerServlet.forwardToNextAction(BaseControllerS ervlet.java:70) at com.bobex.servlets.MyBobexAreaServlet.viewFeedbackOfBids(MyBobexAreaServlet. java:1371) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.bobex.servlets.MethodCallerServlet.handleRequest(MethodCallerServlet.jav a:47) at com.bobex.servlets.BaseControllerServlet.service(BaseControllerServlet.java: 175) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application FilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh ain.java:173) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher. java:672) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDis patcher.java:463) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatch er.java:398) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher .java:301) at com.bobex.servlets.HttpServletState.forward(HttpServletState.java:49) at com.bobex.servlets.DispatchServlet.handleRequest(DispatchServlet.java:139) at com.bobex.servlets.BaseControllerServlet.service(BaseControllerServlet.java: 175) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application FilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh ain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja va:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja va:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126 ) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105 ) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java :107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:307) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:385) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:748) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:678) at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:871) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav a:684) at java.lang.Thread.run(Unknown Source) DBCP object created 2005-08-03 17:43:04 by the following code was never closed: java.lang.Exception at org.apache.tomcat.dbcp.dbcp.AbandonedTrace.setStackTrace(AbandonedTrace.java :157) at org.apache.tomcat.dbcp.dbcp.AbandonedObjectPool.borrowObject(AbandonedObject Pool.java:76) at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSourc e.java:95) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.ja va:540) at com.bobex.dao.BaseDAO.getConnection(BaseDAO.java:176) at com.bobex.dao.UserDAO.findUserByUsername(UserDAO.java:1357) at com.bobex.beans.LoginBean.login(LoginBean.java:103) at com.bobex.servlets.LoginServlet.login(LoginServlet.java:159) at sun.reflect.GeneratedMethodAccessor1866.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) ... similar errors follow almost at same time of crash David