Overview Implementing Error Handling for the Synchronous Message Exchange Pattern

24-12 Developers Guide for Oracle Application Integration Architecture Foundation Pack ■ Section 24.5.3, Configuring Services Between Milestones ■ Section 24.5.4, Guidelines for BPEL Catch and Catch-All Blocks ■ Section 24.5.5, Guidelines for Defining Fault Policies ■ Section 24.5.6, Configuring Fault Policies to Not Issue Rollback Messages ■ Section 24.5.7, Using the Message Resubmission Utility API

24.5.1 Overview

In the context of AIA, guaranteed message delivery for the asynchronous MEP means that the message initiated from a sender is persisted until it is successfully delivered to and acknowledged by the receiver, if acknowledgement is expected. The sender and receiver are not necessarily the participating applications. Rather, they are logical milestones in an Oracle AIA integration flow. Multiple milestones could be in an Oracle AIA integration scenario. Temporary unavailability of any hardware or software service in an asynchronous message flow does not result in a lost message or a delivery failure. The Error Handling framework provides a way for the message to be persisted until the hardware or software service becomes available. Once an integration administrator has been notified of the unavailable resource by the Error Console, she can address the resource issue. The integration administrator can then use the Message Resubmission Utility to resubmit the persisted message into the integration scenario from the appropriate transaction milestone point, enabling its delivery to the next component or milestone. For more information about running the Message Resubmission Utility, see Using the Message Resubmission Utility in Oracle Fusion Middleware Infrastructure Components and Utilities Users Guide for Oracle Application Integration Architecture Foundation Pack. These points summarize primary aspects of an implementation of the guaranteed message delivery programming model for the asynchronous MEP. ■ Message persistence milestones Messages are picked from a persistence store source, processed, and pushed to the next persistence store target. The message is not removed from the source until it has been successfully processed and delivered to the target. The source and target may be applications. Each persistence store represents a milestone and may be a database, file system, JMS queue, or JMS topic. For more information about configuring milestones, see Section 24.5.2, Configuring Milestones. ■ Global transaction These tasks must be accomplished as a part of the global transaction: – Picking up the message from the source. – Processing the message by one or more services. – Delivering the message to the target. – The initiation of a service from the source with an input message initiates a transaction. All the services invoked downstream participate in this global transaction. This global transaction ends or is committed when the message is successfully delivered to the target and removed from the source. Configuring Oracle AIA Processes for Error Handling and Trace Logging 24-13 In the case of an error, an exception is raised and the transaction initiated is rolled back with the message safe in the source. The message is either in the source or target and is not lost. For more information about configuring the global transaction, see Section 24.5.3, Configuring Services Between Milestones.