Announcement Announcement Module
No announcement yet.
Spring JMS + Active MQ Page Title Module
Move Remove Collapse
Conversation Detail Module
  • Filter
  • Time
  • Show
Clear All
new posts

  • Spring JMS + Active MQ

    So I am doing this in my code <see code below> to start a consumer, I use JmsTemplate to create connectionFactory, then create a connection, do a start , obtain a session , then create a consumer and set the Message Listener.

    So far so good, I am using Active MQ as the JMS provider, now if I use bring up my consumer for a destination(it's a queue) that is not created in ActiveMQ , everything works fine. My consumer picks up the messages to sent to the destination.

    But the problem happens, when a queue is already created, when I start my consumer the consumer doesn't listen to the queue and doesn't pick up messages. Messages stay in the pending state. Is there a config I should change or am I doing something wrong while creating the consumer ?


    template.setSessionAcknowledgeMode(Session.CLIENT_ ACKNOWLEDGE);
    ConnectionFactory factory = template.getConnectionFactory();
    connection = factory.createConnection();


    session = connection.createSession(false,

    consumer = session.createConsumer(destination);

  • #2
    It seems that the problem is in your approach to get a target Destination handle. You can try to do the stuff (create MessageConsumer for the existing queue) manually (without Spring classes help) and check the result. I believe that you resolve the issue as soon as you have a working consumer created manually.


    • #3
      First off all your approach is a bit ackward. Why not use a MessageListenerContainer and register your MessageListener on there. That way you don't have to mess around yourself with connections, queues...

      Also if you really want to use this approach (which I hardly recommend) I suggest using a SessionCallback instead of doing all the hard work yourself.

      Still I would recommend a MessageListenerContainer.