Administration Console Online Help

Previous Next Open TOC in new window
Content starts here

JMS Queue: Configuration: Delivery Failure

Configuration Options     Related Tasks     Related Topics

Use this page to define message delivery failure parameters, like specifying redelivery limits, selecting a message expiration policy, and specifying an error destination for undeliverable or expired messages.

The error destination must be pre-configured and must be targeted to the same JMS server as the destinations for which the error destination is defined. If no error destination is configured, then undeliverable messages are simply deleted.

You configure queues explicitly or by configuring a JMS template to define and manage multiple queues with similar attribute settings.

Configuration Options

Name Description
Redelivery Delay Override

The delay, in milliseconds, before rolled back or recovered messages are redelivered, regardless of the RedeliveryDelay specified by the consumer and/or connection factory. Redelivered queue messages are put back into their originating destination; redelivered topic messages are put back into their originating subscription. The default value (-1) specifies that the destination will not override the RedeliveryDelay setting specified by the consumer and/or connection factory.

Note: This attribute is dynamically configurable, but only incoming messages are impacted; stored messages are not impacted.

Note: Changing the RedeliveryDelay override only affects future rollbacks and recovers, it does not affect rollbacks and recovers that have already occurred.

MBean Attribute (Does not apply to application modules) :
DeliveryParamsOverridesBean.RedeliveryDelay

Minimum value: -1

Maximum value: 9223372036854775807

Redelivery Limit

The number of redelivery tries a message can have before it is moved to the error destination. This setting overrides any redelivery limit set by the message sender. If the redelivery limit is configured, but no error destination is configured, then persistent and non-persistent messages are simply dropped (deleted) when they reach their redelivery limit.

The default value (-1) specifies that the destination will not override the message sender's redelivery limit setting.

Note: WebLogic Server supports the JMSXDeliveryCount message property, which specifies the number of message delivery attempts, where the first attempt is 1, the next attempt is 2, and so on. WebLogic Server makes a best effort to persist the delivery count, so that the delivery count does not reset back to 1 after a server reboot.

This attribute is dynamically configurable, but only incoming messages are impacted; previously sent messages continue to use their original redelivery limit.

MBean Attribute (Does not apply to application modules) :
DeliveryFailureParamsBean.RedeliveryLimit

Minimum value: -1

Maximum value: 2147483647

Expiration Policy

The message Expiration Policy to use when an expired message is encountered on a destination. The valid expiration policies are:

None - Same as the Discard policy; expired messages are simply removed from the destination.

Discard - Removes expired messages from the messaging system. The removal is not logged and the message is not redirected to another location. If no value is defined for a given destination (i.e., None), then expired messages are discarded.

Log - Removes expired messages from the system and writes an entry to the server log file indicating that the messages have been removed from the system. The actual information that is logged is defined by the Expiration Logging Policy.

Redirect - Moves expired messages from their current location to the Error Destination defined for the destination. The message retains its body, and all of its properties. The message also retains all of its header fields, but with the following exceptions:

  • The destination for the message becomes the error destination.

  • All property overrides associated with the error destination are applied to the redirected message.

  • If there is no Time-To-Live Override value for the error destination, then the message receives a new Expiration Time of zero (indicating that it will not expire again).

It is illegal to use the Redirect policy when there is no valid error destination defined for the destination. Similarly, it is illegal to remove the error destination for a destination that is using the Redirect policy.

Note:

The Maximum Message quota is only enforced for sending new messages. It is ignored when moving messages because of the Redirect policy.

MBean Attribute (Does not apply to application modules) :
DeliveryFailureParamsBean.ExpirationPolicy

Expiration Logging Format

The policy that defines what information about the message is logged when the Expiration Policy is set to Log. The valid logging policy values are:

  • %header%

    - All JMS header fields are logged.

  • %properties%

    - All user-defined properties are logged.

  • JMSDeliveryTime

    - This WebLogic JMS-specific extended header field is logged.

  • JMSRedeliveryLimit

    - This WebLogic JMS-specific extended header field is logged.

  • foo

    - Any valid JMS header field or user-defined property is logged.

When specifying multiple values, enter them as a comma-separated list. The %header% and %properties% values are not case sensitive. For example, you could use "%header%,%properties%" for all the JMS header fields and user properties. However, the enumeration of individual JMS header fields and user-defined properties are case sensitive. To enumerate only individual JMS header fields you could use "%header, name, address, city, state, zip".

Note: The JMSMessageID field is always logged and cannot be turned off. Therefore, if the Expiration Logging Policy is not defined (i.e., null) or is defined as an empty string, then the output to the log file contains only the JMSMessageID of the message.

MBean Attribute (Does not apply to application modules) :
DeliveryFailureParamsBean.ExpirationLoggingPolicy

Error Destination

The name of the target error destination for messages that have expired or reached their redelivery limit. If no error destination is configured, then such messages are simply dropped. If a message has expired or reached its redelivery limit, and the Expiration Policy is set to Redirect, then the message is moved to the specified Error Destination.

For standalone destinations, an error destination must be another standalone destination that is targeted to the same JMS server as the destinations for which the error destination is defined. For uniform distributed destinations (UDDs), the error destination must be another UDD that shares the same subdeployment (i.e., targets) as the current UDD.

This attribute is dynamically configurable, but only incoming messages are impacted; stored messages are not impacted.

MBean Attribute (Does not apply to application modules) :
DeliveryFailureParamsBean.ErrorDestination

Related Tasks

Related Topics


Back to Top