Message not put on Q
nexus021 Mar 15, 2013 4:43 AMHello guys.
I have a scenario which requires your knowledge/advice.
Messages are flowing through my Q correctly most of the time, but in some cases it refuses to be put on the Q.
I put TRACE logging on and saw that there are differences between the successful transactions and the ones in question.
Successful Example :
2013-03-13 14:45:30,345 TRACE [org.hornetq.core.security.impl.SecurityStoreImpl] (Old I/O server worker (parentId: 1393406201, [id: 0x530db0f9, /10.13.2.19:5445])) checking access permissions to jms.queue.WebServiceConnectorIn
2013-03-13 14:45:30,347 TRACE [org.hornetq.core.client.impl.ClientConsumerImpl] (Thread-44 (group:HornetQ-client-global-threads-1876851625)) Adding Runner on Executor for delivery
2013-03-13 14:45:30,347 TRACE [org.hornetq.core.client.impl.ClientConsumerImpl] (Thread-46 (group:HornetQ-client-global-threads-1876851625)) Calling handler.onMessage
2013-03-13 14:45:30,347 TRACE [org.hornetq.ra.inflow.HornetQMessageHandler] (Thread-46 (group:HornetQ-client-global-threads-1876851625)) onMessage(ClientMessage[messageID=32227572401, durable=false, address=jms.queue.WebServiceConnectorIn])
2013-03-13 14:45:30,347 TRACE [org.hornetq.ra.inflow.HornetQActivation] (Thread-46 (group:HornetQ-client-global-threads-1876851625)) getActivationSpec()
2013-03-13 14:45:30,347 TRACE [org.hornetq.ra.inflow.HornetQActivationSpec] (Thread-46 (group:HornetQ-client-global-threads-1876851625)) getTransactionTimeout()
2013-03-13 14:45:30,351 TRACE [org.hornetq.core.client.impl.ClientConsumerImpl] (Thread-27 (group:HornetQ-client-global-threads-1876851625)) Handler.onMessage done
2013-03-13 14:45:30,351 DEBUG [com.clickatell.cpg.webservice.WebServiceMDB] (Thread-46 (group:HornetQ-client-global-threads-1876851625)) onMessage() called
^ Successful transaction can be seen calling handler.onMessage
Example in question :
2013-03-13 21:21:39,189 TRACE [org.hornetq.core.security.impl.SecurityStoreImpl] (Old I/O server worker (parentId: 1957651019, [id: 0x74af624b, /10.13.2.20:5445])) checking access permissions to jms.queue.WebServiceConnectorIn
2013-03-13 21:21:39,189 TRACE [org.hornetq.core.client.impl.ClientConsumerImpl] (Thread-460 (group:HornetQ-client-global-threads-932260890)) Adding Runner on Executor for delivery
2013-03-13 21:21:39,250 TRACE [org.hornetq.core.client.impl.ClientConsumerImpl] (Thread-477 (group:HornetQ-client-global-threads-932260890)) Handler.onMessage done
^ This is the only HornetQ related code I see executed. ^ handler.OnMessage never called.
It's driving me nuts... is it possible that this can be a bug in HornetQ?
Running on Jbossas 5.1, all-with-hornetQ.
I am still using version 2.1.2 Final.
This is my calling code :
Connection commsQconnection = connectionFactory.createConnection();
Session commsQsession = commsQconnection.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer commsQMsgProducer= commsQsession.createProducer(commsInQueue);
commsQMsgProducer.setDisableMessageID(true);
commsQMsgProducer.setDisableMessageTimestamp(true);
commsQMsgProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
commsQconnection.start();
ObjectMessage objMsg = commsQsession.createObjectMessage(msg);
if (origin != null) {
objMsg.setStringProperty("Origin", origin);
}
objMsg.setLongProperty("VendorId", VENDOR_ID);
objMsg.setJMSTimestamp(System.currentTimeMillis());
objMsg.setJMSExpiration(5000);
objMsg.setStringProperty("TxMessageClass", "VendorRequest");
commsQMsgProducer.setTimeToLive(5000);
commsQMsgProducer.send(objMsg);
closeConnections(commsQconnection, commsQsession, commsQMsgProducer);
Any help will be greatly appreciated!
Kind Regards