Kbase P101668: Adapter for SonicMQ: Automatic Reply Mechanism fails if Sender is no longer connected
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  3/1/2005 |
|
Status: Unverified
SYMPTOM(s):
Adapter for SonicMQ
Sender produces messages with 4GL-JMS requestReply() mechanism
Sender that expects the reply is no longer connected to the SonicMQ Broker.
Receiver produces the reply message with the Automatic Reply Mechanism
Receiver sending the reply fails with two exceptions
First error is a synchronous exception
javax.jms.JMSException: Queue not found: $ISYS.USERS.TemporaryQueues..<unique id>
Second error is an Asynchronous exception
Reply error: javax.jms.JMSException: Queue not found: $ISYS.USERS.TemporaryQueues..<unique id>
CAUSE:
This is expected behavior. The temporary Queue destination no longer exists because temporary destinations are only around for the life of the session object that created them.
FIX:
There are two options for dealing with this expected behavior.
1. Use the 4GL-JMS setJMSReplyTo() procedure to specify a static destination as opposed to the default temporary destination that is generated.
2. Trap and handle the errors. Since the Automatic reply Mechanism happens inside the Adapter source code it is not possible to trap for the synchronous error. However, you can use an error handler consumer to handle the Asynchronous error.