[Error] Failed to expire delivery
elvoret Jun 5, 2007 10:07 AMHi All,
I'm trying to send messages from servlet inside JBoss to JMS Queue and I've encountered a strange error: "Failed to expire delivery". What can cause such error?
Servlet code that sends messages:
private void sendMessage(String messageText) throws JMSException, NamingException { String destinationName = "/queue/clickstream-client" + random.nextInt(10); InitialContext ic = null; ConnectionFactory cf = null; Connection connection = null; try { ic = new InitialContext(); cf = (ConnectionFactory) ic.lookup("/ConnectionFactory"); Queue queue = (Queue) ic.lookup(destinationName); connection = cf.createConnection(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); MessageProducer sender = session.createProducer(queue); sender.setDeliveryMode(DeliveryMode.PERSISTENT); Message msg = session.createTextMessage(messageText); sender.setTimeToLive(1000 * 60 * 60 * 24 * 30); sender.send(msg); } finally { if (ic != null) { try { ic.close(); } catch (Exception e) { throw new RuntimeException(e); } } closeConnection(connection); } }
Server log:
2007-06-05 17:58:44,593 DEBUG [org.jboss.remoting.transport.socket.MicroSocketClientInvoker] SocketClientInvoker[45f4ae, bisocket://192.168.10.139:247586041] setting shouldCheckConnection to false 2007-06-05 17:58:44,593 DEBUG [org.jboss.remoting.transport.socket.SocketClientInvoker] SocketClientInvoker[45f4ae, bisocket://192.168.10.139:247586041] setting timeout to 0 2007-06-05 17:58:44,593 DEBUG [org.jboss.remoting.transport.bisocket.BisocketClientInvoker] registered 5c4oa3v-nb50ro-f2kftkar-1-f2kftlb7-7 -> SocketClientInvoker[45f4ae, bisocket://192.168.10.139:247586041] 2007-06-05 17:58:44,593 DEBUG [org.jboss.remoting.transport.bisocket.BisocketClientInvoker] got control socket: Socket[addr=/192.168.10.139,port=1864,localport=2243] 2007-06-05 17:58:44,593 DEBUG [org.jboss.remoting.MicroRemoteClientInvoker] SocketClientInvoker[45f4ae, bisocket://192.168.10.139:247586041] connecting 2007-06-05 17:58:44,593 DEBUG [org.jboss.remoting.MicroRemoteClientInvoker] SocketClientInvoker[45f4ae, bisocket://192.168.10.139:247586041] connected 2007-06-05 17:58:44,593 DEBUG [org.jboss.remoting.callback.DefaultCallbackErrorHandler] DefaultCallbackErrorHandler[UNITIALIZED] setting server invoker to SocketServerInvoker[192.168.10.139:4457] 2007-06-05 17:58:44,593 DEBUG [org.jboss.remoting.callback.DefaultCallbackErrorHandler] DefaultCallbackErrorHandler[SocketServerInvoker[192.168.10.139:4457]] setting callback handler to ServerInvokerCallbackHandler[5c4oa3v-nb50ro-f2kftkar-1-f2kftl60-4+5c4oa3v-nb50ro-f2kftkar-1-f2kftlb7-7] 2007-06-05 17:58:44,593 DEBUG [org.jboss.remoting.callback.ServerInvokerCallbackHandler] Session id for callback handler is 5c4oa3v-nb50ro-f2kftkar-1-f2kftl60-4+5c4oa3v-nb50ro-f2kftkar-1-f2kftlb7-7 2007-06-05 17:58:44,593 DEBUG [org.jboss.jms.server.remoting.JMSServerInvocationHandler] adding callback handler ServerInvokerCallbackHandler[5c4oa3v-nb50ro-f2kftkar-1-f2kftl60-4+5c4oa3v-nb50ro-f2kftkar-1-f2kftlb7-7] 2007-06-05 17:58:44,593 DEBUG [org.jboss.jms.server.remoting.JMSServerInvocationHandler] found calllback handler for remoting session ...-f2kftl60-4 2007-06-05 17:58:44,593 DEBUG [org.jboss.jms.server.endpoint.ServerConnectionFactoryEndpoint] creating a new connection for user null 2007-06-05 17:58:44,593 DEBUG [org.jboss.jms.server.connectionmanager.SimpleConnectionManager] registered connection ConnectionEndpoint[5] as ...-f2kftl60-4 2007-06-05 17:58:44,593 DEBUG [org.jboss.jms.server.endpoint.ServerConnectionFactoryEndpoint] created and registered ConnectionEndpoint[5] 2007-06-05 17:58:44,906 DEBUG [org.jboss.jms.server.endpoint.ServerConnectionEndpoint] ConnectionEndpoint[5] creating non transacted session, AUTO_ACKNOWLEDGE, non XA 2007-06-05 17:58:44,906 DEBUG [org.jboss.jms.server.endpoint.ServerConnectionEndpoint] created and registered SessionEndpoint[6] 2007-06-05 17:58:44,906 DEBUG [org.jboss.jms.server.endpoint.ServerConnectionEndpoint] created SessionDelegate[16987790, ID=6] 2007-06-05 17:58:45,312 DEBUG [org.jboss.jms.server.security.SecurityMetadataStore] No SecurityMetadadata was available for clickstream-client0, using default security config 2007-06-05 17:58:45,328 DEBUG [org.jboss.jms.server.endpoint.ServerConsumerEndpoint] ConsumerEndpoint[7] constructed 2007-06-05 17:58:45,453 DEBUG [org.jboss.jms.server.endpoint.ServerSessionEndpoint] SessionEndpoint[6] created and registered ConsumerEndpoint[7] 2007-06-05 17:58:45,515 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@91f0de, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@1a28183{ url=null ,addedOrder=0} 2007-06-05 17:58:47,437 ERROR [org.jboss.jms.server.endpoint.ServerConsumerEndpoint] Failed to expire delivery: Delivery[Reference[11264]:RELIABLE](done) java.lang.IllegalArgumentException: Cannot find mutex in map for JBossMessage[11264]:PERSISTENT at org.jboss.messaging.core.plugin.LockMap.releaseLock(LockMap.java:89) at org.jboss.messaging.core.plugin.JDBCPersistenceManager.releaseLocks(JDBCPersistenceManager.java:3378) at org.jboss.messaging.core.plugin.JDBCPersistenceManager.handleBeforeCommit1PC(JDBCPersistenceManager.java:2312) at org.jboss.messaging.core.plugin.JDBCPersistenceManager$TransactionCallback.beforeCommit(JDBCPersistenceManager.java:3777) at org.jboss.messaging.core.tx.Transaction.commit(Transaction.java:208) at org.jboss.jms.server.endpoint.ServerSessionEndpoint.moveInTransaction(ServerSessionEndpoint.java:1083) at org.jboss.jms.server.endpoint.ServerSessionEndpoint.expireDelivery(ServerSessionEndpoint.java:743) at org.jboss.jms.server.endpoint.ServerConsumerEndpoint.handle(ServerConsumerEndpoint.java:208) at org.jboss.messaging.core.local.RoundRobinPointToPointRouter.handle(RoundRobinPointToPointRouter.java:120) at org.jboss.messaging.core.ChannelSupport.deliverInternal(ChannelSupport.java:600) at org.jboss.messaging.core.ChannelSupport$InMemoryCallback.afterCommit(ChannelSupport.java:1017) at org.jboss.messaging.core.tx.Transaction.commit(Transaction.java:228) at org.jboss.jms.server.endpoint.ServerSessionEndpoint.moveInTransaction(ServerSessionEndpoint.java:1083) at org.jboss.jms.server.endpoint.ServerSessionEndpoint.expireDelivery(ServerSessionEndpoint.java:743) at org.jboss.jms.server.endpoint.ServerConsumerEndpoint.handle(ServerConsumerEndpoint.java:208) at org.jboss.messaging.core.local.RoundRobinPointToPointRouter.handle(RoundRobinPointToPointRouter.java:120) at org.jboss.messaging.core.ChannelSupport.deliverInternal(ChannelSupport.java:600) at org.jboss.messaging.core.ChannelSupport$InMemoryCallback.afterCommit(ChannelSupport.java:1017) at org.jboss.messaging.core.tx.Transaction.commit(Transaction.java:228) at org.jboss.jms.server.endpoint.ServerSessionEndpoint.moveInTransaction(ServerSessionEndpoint.java:1083) at org.jboss.jms.server.endpoint.ServerSessionEndpoint.expireDelivery(ServerSessionEndpoint.java:743) at org.jboss.jms.server.endpoint.ServerConsumerEndpoint.handle(ServerConsumerEndpoint.java:208) at org.jboss.messaging.core.local.RoundRobinPointToPointRouter.handle(RoundRobinPointToPointRouter.java:120) at org.jboss.messaging.core.ChannelSupport.deliverInternal(ChannelSupport.java:600) at org.jboss.messaging.core.ChannelSupport$InMemoryCallback.afterCommit(ChannelSupport.java:1017) ... (repeated many times) ... at org.jboss.messaging.core.tx.Transaction.commit(Transaction.java:228) at org.jboss.jms.server.endpoint.ServerSessionEndpoint.moveInTransaction(ServerSessionEndpoint.java:1083) at org.jboss.jms.server.endpoint.ServerSessionEndpoint.expireDelivery(ServerSessionEndpoint.java:743) at org.jboss.jms.server.endpoint.ServerConsumerEndpoint.handle(ServerConsumerEndpoint.java:208) at org.jboss.messaging.core.local.RoundRobinPointToPointRouter.handle(RoundRobinPointToPointRouter.java:120) at org.jboss.messaging.core.ChannelSupport.deliverInternal(ChannelSupport.java:600) at org.jboss.messaging.core.ChannelSupport$InMemoryCallback.afterCommit(ChannelSupport.java:1017) at org.jboss.messaging.core.tx.Transaction.commit(Transaction.java:228) at org.jboss.jms.server.endpoint.ServerSessionEndpoint.moveInTransaction(ServerSessionEndpoint.java:1083) at org.jboss.jms.server.endpoint.ServerSessionEndpoint.expireDelivery(ServerSessionEndpoint.java:743) at org.jboss.jms.server.endpoint.ServerConsumerEndpoint.handle(ServerConsumerEndpoint.java:208) at org.jboss.messaging.core.local.RoundRobinPointToPointRouter.handle(RoundRobinPointToPointRouter.java:120)