IBM BPM, V8.0.1, All platforms > Troubleshooting and support > Tools for troubleshooting your applications > Work with failed events

Manage failed JMS events

The Java™ Message Service (JMS) binding type and configuration determine whether a failed event is generated and sent to the failed event manager. When problems processing a JMS request or response message create a failed JMS event in the Recovery subsystem, decide how to manage that event. Use the information in this topic to help you identify and fix the error and clear the event from the Recovery subsystem.

You can use the recovery binding property to enable or disable recovery for each JMS binding at authoring time. You can set the recoveryMode property to one of the following settings:
bindingManaged Allow binding to manage recovery for failed messages
unmanaged Rely on transport-specific recovery for failed messages

Recovery for JMS bindings is enabled by default. When it is enabled, JMS failed events are created in the following situations:

In addition, a failed SCA event is created when the ServiceRuntimeException exception is thrown in a JMS binding target component after another attempt in JMS.

These failures might occur during inbound or outbound communication. During outbound communication, JMSImport sends a request message and receives the response message. A failed event is generated if the JMS import binding detects a problem while it is processing the service response. During inbound communication, the following sequence of events occurs:

  1. JMSExport receives the request message.
  2. JMSExport starts the SCA component.

  3. The SCA component returns a response to JMSExport.
  4. JMSExport sends a response message.
A failed event is generated if the JMS export binding detects a problem while it is processing the service request.

The Recovery service captures the JMS message and stores it in a Recovery table in the Common database. It also captures and stores the module name, component name, operation name, failure time, exception detail, and JMS properties of the failed event. You can use the failed event manager to manage failed JMS events, or you can use a custom program.

To disable recovery, set the recoveryMode property to unmanaged.

If the recoveryMode property is missing for earlier versions of applications, the recovery capability is regarded as enabled. When recovery is disabled, a failed message is rolled back to its original destination and tried again. The system does not create a failed event.

To manage a failed JMS event...


Procedure

  1. Use the failed event manager to locate information about the failed JMS event, taking note of the exception type.
  2. Locate the exception type in Table 1 to determine the location and possible causes of the error, as well as suggested actions for managing the failed event.

    Failed JMS events
    Exception type Location of error Possible cause of error Suggested action
    FaultServiceException Fault handler or fault selector There is malformed data in the JMS message.

    1. Inspect the JMS message and locate the malformed data.
    2. Repair the client that originated the message so it creates correctly formed data.
    3. Resend the message.
    4. Delete the failed event.
    There was an unexpected error in the fault handler or fault selector.
    1. Debug the custom fault selector or fault handler, fixing any errors identified.
    2. Resubmit the failed event.
    ServiceRuntimeException Fault handler The fault selector and runtime exception handler are configured to interpret the JMS message as a runtime exception. This is an expected exception. Look at the exception text to determine the exact cause, and then take appropriate action.
    DataBindingException or DataHandlerException Data binding or data handler There is malformed data in the JMS message.

    1. Inspect the JMS message and locate the malformed data.
    2. Repair the client that originated the message so it creates correctly formed data.
    3. Resend the message.
    4. Delete the failed event.
    There was an unexpected error in the data binding or data handler.
    1. Debug the custom data binding or data handler, fixing any errors identified.
    2. Resend the message.
    3. Delete the failed event.
    SelectorException Function selector There is malformed data in the JMS message.

    1. Inspect the JMS message and locate the malformed data.
    2. Repair the client that originated the message so it creates correctly formed data.
    3. Resend the message.
    4. Delete the failed event.
    There was an unexpected error in the function selector.
    1. Debug the custom function selector, fixing any errors identified.
    2. Resend the message.
    3. Delete the failed event.

Work with failed events in IBM BPM