Hi All,We are coding an application to process events in a queue. We are
using NMS - ActiveMQ 1.6.
In my mental model the best transactionality comes with:
IndividualAcknowledge.
If the proccess goes OK, the message is acknoledge, up to there no problem.
But message has no rollback/nack method. So I don't really know how to
perform that patter. Should I open a session per message? (As I want
multiple threads running at the same time, sequential is not an option).
somthing like:
/IMessage m = messageListener.GetMessage();
ThreadPool.QueueUserWorkItem(new WaitCallback(this.DispatchMessage), m);
/
/public void DispatchMessage(Object messageToDispatch)
{
IMessage m = messageToDispatch as IMessage;
try
{
//Convert to Event.
Event ev = UnMarshallMessage(m); --> not relevant code
//Create an instance of the executor
EventProccessor executor =
Activator.CreateInstance(ExecutorType) as EventProccessor ;
//Invoke the executor
executor.ProcessEvent(ev);
//commit the message
m.Acknowledge();
}
catch (Exception ex)
{
log.Error("Error processing the message", ex);
m.Rollback() --> does not exist
}
}/
Thanks in advance for any suggestion,
Jose Luis
--
View this message in context:
http://activemq.2283324.n4.nabble.com/Rollback-NACK-a-single-message-tp4674444.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.