31.11.1 Poison Messages
Sometimes, a badly-formatted message arrives on a destination. In this context, badly-formatted means the receiving application cannot process the message correctly. Such message can cause the receiving application to fail and to back out this badly-formatted message. The message can then be repeatedly delivered to the input queue and repeatedly backed out by the application. These messages are known as Poison Messages.
Once the message re-delivery attempts becomes greater than the maximum re-delivery attempts (maxRedeliveryTriesOnListenerException), then the MessageConsumer/ConnectionConsumer detects that it is a poison message and reroutes it to an alternative configurable destination.
Poisonous messages will be re-routed to an alternative destination only for receivers/subscribers created from Session with AUTO_ACKNOWLEDGE /DUPS_OK_ACKNOWLEDGE acknowledgment mode.
AllowDurableConnection and enableAutoRevalidation flags at the server level must be set to true in order to send the poisonous message to the FioranoMQ server even if the connection is disconnected.
AllowOnTheFlyCreationOfDestinations must be set to true in order to send thepoison message to the configured destination."
31.11.2 Configurable Parameters at Queue Subsystem Level
a) enablePoisonMessageMonitoring:
This parameter must be set to true in order to enable poisonous message handling.
- type : boolean
- Default value : false
- Restart required : yes
b) poisonMessageDestination:
This parameter is used for specifying the PTP-destination for routing the poisonous messages.
- type : String
- Default value : SYSTEM_BACKOUT_QUEUE
- Restart required : yes
31.11.3 Logging
In order to log information while sending the poisonous message, the logger named "log4j.logger.Fiorano.FMQ.Services.ClientRootLoggerServices.FMQClientLoggerServices.PTP.PoisonMessageHandler" must be enabled in log4j.properties which can be located under $FIORANO_HOME/fmq/bin.
C, C++,C# client runtime library also supports poison message handling.
For more information on FioranoMQ Client Logging, please refer section 22.3 Fiorano Client Logger and 29.4 FioranoMQ Client Logging.