高分求助:jboss jms发消息问题
问题描述:
用一个客户端给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 reconnect
org.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 more
2004-03-20 20:50:40,015 WARN [org.jboss.mq.Connection] Connection failure, use javax.jms.Connection.setExceptionListener() to handle this error and reconnect
org.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 SQLException
org.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
实在想不出为什么,请大家帮忙看看!