问题描述:
用一个客户端给JBoss服务器上的JMS服务器的一个queue发大量消息(如:用for循环每分钟发30个)。
消息驱动bean受到消息后,转发给另一个Topic(在同一个JMS),该Topic没有订阅者。
出现如下问题:大约几个小时以后开始报下列错误:
2004-03-20 20:50:40,015 WARN  [org.jboss.mq.Connection] Connection failure, use javax.jms.Connection.setExceptionListener() to handle this error and reconnectorg.jboss.mq.SpyJMSException: Exiting on IOE; - nested throwable: (java.io.EOFException) at org.jboss.mq.SpyJMSException.getAsJMSException(SpyJMSException.java:66) at org.jboss.mq.Connection.asynchFailure(Connection.java:437) at org.jboss.mq.il.uil2.UILClientILService.asynchFailure(UILClientILService.java:156) at org.jboss.mq.il.uil2.SocketManager$ReadTask.handleStop(SocketManager.java:413) at org.jboss.mq.il.uil2.SocketManager$ReadTask.run(SocketManager.java:345) at java.lang.Thread.run(Thread.java:534)Caused by: java.io.EOFException at java.io.ObjectInputStream$BlockDataInputStream.readByte(ObjectInputStream.java:2603) at java.io.ObjectInputStream.readByte(ObjectInputStream.java:845) at org.jboss.mq.il.uil2.SocketManager$ReadTask.run(SocketManager.java:290) ... 1 more2004-03-20 20:50:40,015 WARN  [org.jboss.mq.Connection] Connection failure, use javax.jms.Connection.setExceptionListener() to handle this error and reconnectorg.jboss.mq.SpyJMSException: No pong received; - nested throwable: (java.io.IOException: ping timeout.) at org.jboss.mq.Connection$PingTask.run(Connection.java:1323) at EDU.oswego.cs.dl.util.concurrent.ClockDaemon$RunLoop.run(ClockDaemon.java:364) at java.lang.Thread.run(Thread.java:534)Caused by: java.io.IOException: ping timeout. ... 3 more
再以后会报这样的异常:
2004-03-21 00:00:22,218 DEBUG [org.jboss.mq.pm.jdbc2.PersistenceManager] Connection attempt # 2 failed with SQLExceptionorg.jboss.util.NestedSQLException: No ManagedConnections available within configured blocking timeout ( 30000 [ms] ); - nested throwable: (javax.resource.ResourceException: No ManagedConnections available within configured blocking timeout ( 30000 [ms] )) at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:107) at org.jboss.mq.pm.jdbc2.PersistenceManager.getConnection(PersistenceManager.java:1325) at org.jboss.mq.pm.jdbc2.PersistenceManager.saveToStorage(PersistenceManager.java:1268) at org.jboss.mq.server.MessageCache.saveToStorage(MessageCache.java:407) at org.jboss.mq.server.MessageReference.makeSoft(MessageReference.java:301) at org.jboss.mq.server.MessageCache.validateSoftReferenceDepth(MessageCache.java:354) at org.jboss.mq.server.MessageCache.run(MessageCache.java:261) at java.lang.Thread.run(Thread.java:534)Caused by: javax.resource.ResourceException: No ManagedConnections available within configured blocking timeout ( 30000 [ms] ) at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:246) at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:534)发消息的客户端也开始报错:
2004-03-20 20:52:08,796 [WARN] org.jboss.mq.Connection.asynchFailure(Connection.java:459) - Connection failure: org.jboss.mq.SpyJMSException: Connection Failed; - nested throwable: (java.io.IOException: ping timeout.) at org.jboss.mq.Connection.asynchFailure(Connection.java:436) at org.jboss.mq.Connection$PingTask.run(Connection.java:1385) at EDU.oswego.cs.dl.util.concurrent.ClockDaemon$RunLoop.run(ClockDaemon.java:364) at java.lang.Thread.run(Thread.java:534)Caused by: java.io.IOException: ping timeout. at org.jboss.mq.Connection$PingTask.run(Connection.java:1377) ... 2 more实在想不出为什么,请大家帮忙看看!