I am not really an mdb/jms expert.... so there may be a way to do
this with acknowledgements. However one sure way to do this is with
transactional delivery. If the mdb can't process the message it can
call setRollbackOnly on the MessageDrivenContext. According to what
I've heard this is likely to be significantly slower than non-
transactional delivery.
thanks
david jencks
On May 22, 2007, at 4:43 AM, Jochen Zink wrote:
Hello,
I have a simple MDB which works as a JMSReceiver. The MDB
subscribes to a JMS-Topic. Everything works fine. If a new message
is published to the Topic, the MDBs onMessage Method is called.
I want, that the bean can receive the same message over again, If
an error inside the bean is raised. Normally I can deal with
"jmsmessage.acknowledge();" Method to notify, that the reciever
handled the message correctly. If an error is raised on the
receivers side, no acknowledge() is called. Normally in this case I
expected, the message would send over again. But not with a MDB. It
does not matter if I call acknowledge or not. The MDB creates the
JMSSession where I can configure, that the session runs in
"CLIENT_ACKNOWLEDGE" mode.
What musst I do to get this behavior?
I want, that the messageDrivenBean can say, that everything is
correct and the message can be deleted from the topic if all
subscibers have it received. But if the Bean raised an error, it
should be possible for the bean, to receive the same message over
again after a while.
Maybe it is only configuration stuff. But I can't find infos on
activeMQ or openEJB Homepage.
Can someone help me?
thanks!
_______________________________________________________________
SMS schreiben mit WEB.DE FreeMail - einfach, schnell und
kostenguenstig. Jetzt gleich testen! http://f.web.de/?mc=021192