Consultor Eletrônico



Kbase P22884: No Exception when sending reply message to a temporary topic that doesn't exist anymore
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   17/02/2006
Status: Unverified

FACT(s) (Environment):

SonicMQ
Progress 9.1x
OpenEdge 10.x

SYMPTOM(s):

No Exception when sending reply message to a temporary topic that doesn't exist anymore

Exception is not thrown when sending a message to a temporary topic that doesn't exist

4GL-JMS producer publishes a message to a topic using the requestReply 4GL-JMS API call

4GL-JMS consumer receives the message and starts to process it

While the consumer is processing the message, the producer disconnects which deletes the temporary topic.

After processing the message, the consumer replies to the temporary topic specified in the JMSReplyTo property (Set by the requestReply call from the producer)

No exception is thrown

CAUSE:

Messages are not stored on topics as they are on queues. Instead messages are sent to subscribers that are connected to the topic or stored in the database for disconnected durable subscribers. Since the producer disconnected before the reply was produced by the consumer, the message is discarded by the broker because there are no subscribers connected.

FIX:

This is expected behavior.
If the response message must be preserved then performing the following before the producer publishes the message with requestReply():
1. Set the replyto destination to 'queue' using the setReplyToDestinationType 4GL-JMS method
2. Set the JMSReplyTo property of the message to an existing queue using the setJMSReplyTo 4GL-JMS method