Ensuring Guaranteed Message Delivery When to Use JCA Adapters

Establishing Resource Connectivity 21-11 ■ AIA recommends that you use WLSJMS Queues for inbound and outbound interactions with participating applications. ■ If the application is not compatible or does not have the ability to send or receive messages to and from AIA using WLSJMS, then any other supporting messaging should be used. For example, AQJMS or TIBCOJMS, and the required foreign JMS server setup should be done on native WLSJMS to interact with the applications. ■ AIA recommends that you configure a file-based persistent store for WLSJMS queues. If there is a specific need to use the database persistence for bulk messages, or for policy or business requirements, database persistence could be configured. Configuring the persistent store as file-based or database-based can be decided during deployment time. ■ The Foundation Pack AIA installation driver automatically creates the error queues for each queue. ■ To generate the error queue name, the Foundation Pack deployment plan generator scripts use the resource name from annotations to get the queue or topic name and then append _ErrorQ as suffix. For example, for the AIASalesOrderQueue, the generated error queue would be AIASalesOrderQueue_ErrorQ. ■ The Foundation Pack AIA installation driver uses the deployment plans to ensure creating, configuring, or assigning the generated error queue name for each JMS queue that it creates on WLS. ■ Foundation Pack creates one generic non-XA connection factory for connecting to all the error queues from the error resubmission utility. The name of the generic connection factory is AIAErrorQueueConnectionFactory. ■ The generic error connection factory is created during the Foundation Pack install. The error queues generation happens during the PIP installation based on the annotations. ■ For the integration flow milestones, AIA recommends that you use the WLSJMS Queues with file-based persistent store. Topics A topic is a persistent storing mechanism designed for holding elements before processing. For processing, messages are delivered to multiple subscribers. Points to note: ■ Multiple consumers can get the message. ■ A timing dependency exists between publishers and subscribers. The publisher has to create a subscription in order for clients to be able to subscribe. The subscriber has to remain continuously active to receive messages, unless it has established a durable subscription. In that case, messages published while the subscriber is not connected are redistributed whenever it reconnects. ■ For the publish-subscribe model, AIA recommends that you use WLSJMS topics.

21.2.7 Ensuring Guaranteed Message Delivery

Guaranteed message delivery means a message initiated from the sender system is persisted until it is successfully delivered to and acknowledged by the receiver, if acknowledgment is expected. This delivery method ensures that messages are not lost under any circumstance. 21-12 Developers Guide for Oracle Application Integration Architecture Foundation Pack The sender and receiver are not necessarily the participating applications. Rather, they are logical milestones in a business process. Multiple milestones may exist, as illustrated in Figure 21–4 and Figure 21–5 . Figure 21–4 Example of Multiple Milestones in a Business Process 1 of 2 Figure 21–5 Example of Multiple Milestones in a Business Process 2 of 2 ■ Temporary unavailability of any hardware or software service does not result in a lost message or a delivery failure, ensuring that the message is delivered. ■ The Error Handling framework provides a way for the message to be persisted until the hardware or software service becomes available for retry, and to reprocess the message after correction or initiate a new message after discarding the existing message. ■ Message delivery is ensured by treating the message processing between any two integration milestones as a unit of work and binding it in a single global transaction.

21.2.7.1 When to Use Transaction Boundaries

Use transaction boundaries when: Establishing Resource Connectivity 21-13 ■ Different components are involved in the processing of messages. They can be JMS consumer adapter services, BPEL processes, Mediator services, cross reference calls, and JMS Producer adapter services. ■ Global transactions are enabled across all the components, and the transaction boundary is established between the integration milestones, which ensures that the messages are persisted in the source milestone until delivered to the target milestone.

21.2.8 When to Use JCA Adapters

Use JCA adapters when the application has the implementation of an adapter based on the Oracle FMW-supported JCA specifications. These adapters can be purchased from Oracle certified third-party vendors if they support the required JCA specifications. JCA adapters should be transactions enabled. To ensure guaranteed delivery and get the participating application to enlist in the XA transactions, the JCA adapter and the application should build the capabilities which are required for building the AIA composite business processes. The JCA adapter can be a queue or topic adapter for AQ or JMS. Also, the JCA adapter can expose the business object APIs of a particular application. The granularity of the API demands chatty conversations with the participating application. AIA recommends that an application should expose the coarse-grained API though it might call multiple fine-grained APIs in the applications implementation. This exposure avoids chatty conversations and improves the overall performance for a business transaction. For more information about JMS Adapters, see Oracle Fusion Middleware Configuring and Managing JMS for Oracle WebLogic Server.

21.3 Siebel Application-Specific Connectivity Guidelines