Poison Messages
Once the message re-delivery attempts become 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 the poison message to the configured destination."
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.
- Ttype: String
- Default value: SYSTEM_BACKOUT_QUEUE
- Restart required: yes
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 Fiorano Client Logger and FioranoMQ Client Logging.