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