Consultor Eletrônico



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.