You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by srikanth reddy <sr...@gmail.com> on 2011/07/28 19:19:32 UTC

How to reattempt individual message

Hi, 

I am implementing ActiveMQ Middleware using Queue based JMS . 
I am facing individual message  Rollback issue from last few days 

There are multiple message posted to my activemq and one i start activemq my 
session starts reading messages.I am using individual message acknowledgement. 
i.e  qConnection.createQueueSession(false, 
ActiveMQSession.INDIVIDUAL_ACKNOWLEDGE); 

Once i receive message in my message listener i am sending message to child 
thread and processing message there and processing is completed i am sending 
acknowledgement. 

But problem here is if any exception comes in middle of my message i want to 
reattempt for that specific message. 

I have tryed session.recover here but its recovering all messages on that 
session which is wrong 

Please look into my message consumer and listener 
           Consumer class outline 
public  QueueSession session = null; 
  
public QueueConnection qConnection = null; 
        ActiveMQConnectionFactory connectionFactory = new 
ActiveMQConnectionFactory(url);           
 	qConnection = connectionFactory.createQueueConnection(); 
        session = qConnection.createQueueSession(false, 
ActiveMQSession.INDIVIDUAL_ACKNOWLEDGE); 
        QueueReceiver _receiver = 
                    session.createReceiver(getTransactionQueue(session)); 
        _receiver.setMessageListener(getMessageListener()); 

       //my message listener 
 	public void onMessage(Message message)  { 
                //starting chaild thread etc   
                if(doprocess()){ 
                        session.acknowledge(); 
                } else { 
  //want to roll back/reattempt specific message 
                }   
      } 

Please help me to resolve this issue 

Thanks & Regards 
Srikanth Reddy


Re: How to reattempt individual message

Posted by Dejan Bosanac <de...@nighttale.net>.
Hi,

you should use JMS transactions and rollback the transaction to trigger
message redelivery.

Regards
-- 
Dejan Bosanac - http://twitter.com/dejanb
-----------------
The experts in open source integration and messaging - http://fusesource.com
ActiveMQ in Action - http://www.manning.com/snyder/
Blog - http://www.nighttale.net


On Thu, Jul 28, 2011 at 7:19 PM, srikanth reddy <sr...@gmail.com>wrote:

> Hi,
>
> I am implementing ActiveMQ Middleware using Queue based JMS .
> I am facing individual message  Rollback issue from last few days
>
> There are multiple message posted to my activemq and one i start activemq
> my
> session starts reading messages.I am using individual message
> acknowledgement.
> i.e  qConnection.createQueueSession(false,
> ActiveMQSession.INDIVIDUAL_ACKNOWLEDGE);
>
> Once i receive message in my message listener i am sending message to child
> thread and processing message there and processing is completed i am
> sending
> acknowledgement.
>
> But problem here is if any exception comes in middle of my message i want
> to
> reattempt for that specific message.
>
> I have tryed session.recover here but its recovering all messages on that
> session which is wrong
>
> Please look into my message consumer and listener
>           Consumer class outline
> public  QueueSession session = null;
>
> public QueueConnection qConnection = null;
>        ActiveMQConnectionFactory connectionFactory = new
> ActiveMQConnectionFactory(url);
>        qConnection = connectionFactory.createQueueConnection();
>        session = qConnection.createQueueSession(false,
> ActiveMQSession.INDIVIDUAL_ACKNOWLEDGE);
>        QueueReceiver _receiver =
>                    session.createReceiver(getTransactionQueue(session));
>        _receiver.setMessageListener(getMessageListener());
>
>       //my message listener
>        public void onMessage(Message message)  {
>                //starting chaild thread etc
>                if(doprocess()){
>                        session.acknowledge();
>                } else {
>  //want to roll back/reattempt specific message
>                }
>      }
>
> Please help me to resolve this issue
>
> Thanks & Regards
> Srikanth Reddy
>
>