IBM BPM, V8.0.1, All platforms > Authoring services in Integration Designer > Services and service-related functions > Access external services with adapters > Configure and using adapters > IBM WebSphere Adapters > Adapter Toolkit > Implementing code from the IBM WebSphere Adapter Toolkit > Inbound callback event notification

Callback event processing for event recovery

When there is a failure in the event processing as part of system recovery, the adapter is able to recover the unprocessed events by implementing the once-one-only delivery mechanism.

During real-time event processing if any component of the business integration system fails then the adapter must process the events that are not completed, and not process the events that are completed. This ensures that once-one-only delivery mechanism is implemented when the system recovers from a failure.

When the container starts, it calls the getXAResources() method on the adapter to get all the associated XA resources. The adapter then instantiates the appropriate XA resource and returns it back to the container.

The JCA container now calls the recover() method on the returned XAResourceImpl to get all the pending transactions from the configured event persistence using the getPendingTransanctions() method. Depending on the transaction state, the container calls either the rollback() or the commit() method on the XAResourceImpl to update the status of the event to NEWEVENT or PROCESSED on event persistence.

After connecting to the EIS, the adapter starts the adapterListener. The EIS then triggers the adapterListener for any new event(s) and the adapterListener in turn calls the CallbackEventSender with the same flow explained in the basic delivery and delivery with XA transaction sequence diagrams. The following sequence diagram depicts the callback event processing for event recovery.

Inbound callback event notification


Related concepts:

Request and response callback events

One-way callback events

Use the IBM WebSphere adapter foundation classes for inbound callback event processing

Callback event sender

Callback event processing for basic delivery

Callback event processing for event delivery with XA transaction