最近系统出现了几次问题,报错如下。
在请教各位大拿和google/baidu以后,大概整理了一下可能的解决方案:
1,在oracle-ds.xml的数据源配置中添加<valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker</valid-connection-checker-class-name>
2,Apache通过mod_jk1.2 转发http 请求给jboss,修改 jboss-4.0.5.GA/server/default/deploy/server.xml调整ajp connector 设置:<Connector port="8009" address="${jboss.bind.address}" backlog="1200" maxThreads="2100" minSpareThreads="20" maxSpareThreads="50" emptySessionPath="true" enableLookups="false" redirectPort="8443" protocol="AJP/1.3"/>,同时在linux 的.bash_profile 增加文件句柄: ulimit -n 4096。
3,怀疑是网络的问题,尤其应用服务器与数据库服务器之间的连接问题,让IDC换了一根网线,还有可能就是内部LSB的问题(目前没做调整)。
具体效果待验证,如果有遇到类似问题的,希望能提供更为确定的解决方案,将非常感谢。
2010-07-30 15:42:43,977 ERROR [org.apache.tomcat.util.threads.ThreadPool] All threads (200) are currently busy, waiting. Increase maxThreads (200) or check the servlet status
2010-07-30 15:45:40,740 WARN [org.jboss.resource.connectionmanager.JBossManagedConnectionPool] Throwable while attempting to get a new connection: null
org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (java.sql.SQLException: Io exception: Connection reset)
at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:179)
at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.createConnectionEventListener(InternalManagedConnectionPool.java:565)
at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:250)
at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:491)
at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:341)
at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:301)
at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:396)
at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:842)
at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)