Contents

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."

Icon

If a non-durable subscriber receives persistent/non-persistent messages and durable subscriber receives non-persistent messages and if that message is determined as poisonous message, it will be dropped if the connection with FioranoMQ server is disconnected while sending it.

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.

Adaptavist ThemeBuilder EngineAtlassian Confluence