Kbase P128115: How to delete a messageConsumer
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  12/11/2009 |
|
Status: Unverified
GOAL:
How to delete a messageConsumer
FACT(s) (Environment):
SonicMQ
Progress 9.x
OpenEdge 10.x
All Supported Operating Systems
FIX:
RUN deleteConsumer IN consumerH.
Before deleting a message consumer make sure no message is queued to the MessageConsumer anymore thus good practic is to stop receiving messages by calling:
RUN stopReceiveMessages IN <your session handle>.
before calling RUN deleteConsumer IN consumerH
to avoid a dead-lock as the documentaion states:
"The following recursive calls from the message handler into the ABL-JMS API of the
same Session object are considered programming errors: deleteSession procedure,
deleteConsumer procedure, and recover procedure. There are no restrictions on calling
these API entries of another Session object."
That means before you make a call to the deleteConsumer procedure you should be sure that the message processing is finished or the reception of further messages stopped so that the message handler cannot get called anymore while
calling the deleteConsumer procedure .