0 Replies Latest reply on Mar 15, 2013 4:43 AM by Morne Leroux

    Message not put on Q

    Morne Leroux Newbie

      Hello 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