Hot-Standby State Singleton ActivePassive Inbound Endpoint Lifecycle Support Within Adapters

ADAPTER Life-Cycle Management 2-21 For more information, see Section 2.13, Composite Availability and Inbound Adapters .

2.15 Oracle BPEL Process Manager Correlation Support Within Adapters

You can use Native Correlation to correlate an inbound asynchronous message with a previous outbound message, by defining a callback interface for a Reference or by a mid process BPEL Receive: For example, the following composite would define such a correlation: reference name=’Outbound’ interface.wedl interface=http:xmlns.oracle.compcbpeldemowsdl.interface JMSOutbound_PortType callbackinterface=http:xmlns.oracle.compcbpeldemowsdl.interface JMSCallback_PortType binding.jca.operation=Consume config=SampleOutbound_adapter.jca The jca file must contain both JCA interaction and JCA activation. The correlation between the request and the response is done transparently by the JCA binding runtime. For a JMS use case, the third party application must copy the JMS message ID from the request message to the JMS CorrelationID of the response message. For the Oracle AQ Adapter and Oracle JMS Adapter use cases, if an external application copies the MessageId from the request Invoke message to the CorrelationId of the response Receive message, the adapter framework ensures that the BPEL correlation occurs.

2.15.1 CorrelationID of Receive Message Not Matching Invoke: Log Error Message

However, when the CorrelationId of the Receive message does not match any earlier Invoke message, the message is mapped to a BPEL conversation that does not actually exist. In this case, although the message is persisted in the database, you might see the SEVERE log message that Example 2–2 shows: Example 2–2 Log Error When CorrelationId of the Receive Does not Match any Earlier Invoke SEVERE: JCABinding= aqadapter aqadapterAdapter Service aqadapter was unable to perform delivery of inbound message to the composite ... due to: Cannot simply post callback message to the composite as there is no service element associated with the callback. Recommendation: addset the JCA referencebinding property rejectUncorrelatedMessages to true ... SEVERE: JCABinding= aqadapter Unable to createsave Composite Instance Fault due to: null

2.15.1.1 Rejecting Nonmatching Native Correlation IDs

You can explicitly alter the adapter framework behavior so that it rejects nonmatching native correlation IDs by adding the rejectUncorrelatedMessages service binding property to the composite.xml file as shown in Example 2–3 . 2-22 Oracle Fusion Middleware Users Guide for Technology Adapters Example 2–3 Setting the rejectUncorrelatedMessages Property reference name=ReqReply ui:wsdlLocation=ReqReply.wsdl interface.wsdl interface=http:xmlns.oracle.compcbpeladaptermqMQAsyncSol_ReplyQ_ NonRelatedMsgSOA_AsyncSol_ReplyQ_NonRelatedMsgReqReplywsdl.interfaceEnqueue_ ptt callbackInterface=http:xmlns.oracle.compcbpeladaptermqMQAsyncSol_ReplyQ_ NonRelatedMsgSOA_AsyncSol_ReplyQ_NonRelatedMsgReqReplywsdl.interfaceDequeue_ ptt binding.jca config=ReqReply_mq.jca property name=rejectUncorrelatedMessagestrueproperty binding.jca reference When rejectUncorrelatedMessages is set to true, uncorrelatable Receive messages are rejected by the adapter framework; that is, the messages are pushed back to the publishing JCA resource adapter. By default, this property is set to false. For more information, see: ■ Section 2.22, Error Handling ■ Section 8.2, Oracle JMS Adapter Features ■ Section 7.2.5, Normalized Message Support ■ Appendix A, Oracle JCA Adapter Properties .

2.16 Setting Payload Size Threshold

System resources are finite and have a threshold limit for processing. The Oracle SOA Suite, dependent on system resources, also has certain size limitations, largely due to the underlying resources beyond which the system cannot process incoming requests. For example, Oracle JCA Adapters can process large payloads but the Oracle BPEL PM consumes huge memory when processing large payloads, which can cause OutOfMemory conditions and affect the whole system. You must set the payload threshold for Oracle JCA Adapters to avoid errors such as OutOfMemory. Setting the payload threshold helps ensure that Oracle JCA Adapters process payloads that are less than the threshold limit and reject others that are not less than the threshold limit.

2.16.1 Payload Native Size

If the native size of the payload is available, then the pertinent adapters use the native size of the payload to limit the payload size below the threshold limit. For example, in the case of Oracle File Adapter, the native size size of file polled is available to the adapter, and if it is greater than the payload size threshold then the file is rejected. If the native size of payload is not available, for example, as is the case for the Oracle Socket Adapter, the adapter must calculate the native size of the payload internally. Native size can be determined internally if you use the native translation library to translate non-XML or parse serialized XMLs. The Oracle Database Adapter does not rely on the translation framework but has a special inbuilt handling mechanism to calculate the size of native messages.