Rejecting Nonmatching Native Correlation IDs

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. ADAPTER Life-Cycle Management 2-23

2.16.1.1 Setting the Payload Threshold

You can set the payload threshold by using the knob exposed by Oracle JCA Adapters. The knob can be set in the composite.xml file as a binding property for the adapter service, as shown in the following sample: binding.jca config=getMsg_mq.jca property name=payloadSizeThreshold type=xs:string many=false override=may1000property binding.jca

2.16.1.2 Limitations on Payload Size Enforcement

Where the native size of the payload is not available and if the specific adapter does not use the native translation library, you cannot enforce the payload size threshold limit. For example, in case of xml-debatching, where the Oracle File and FTP Adapters pass a chunk of file content and the actual native size is not known, payload size threshold limit cannot be used. Also, where there are serialized XML payloads and where XDK parser that lacks the feature to calculate native size is used for parsing instead of the native translation library, you cannot use payload size threshold limit. XSD and Opaque translator scenarios can only be handled in adapters where the payload size is deterministic. For more information on the scenarios that are supported for specific Oracle JCA Adapters, refer to Table 2–2 .

2.16.1.2.1 Changing Global Payload Size to a Finite Value

Also, you can set the global property for capping payload size to change the default value of payloadSizeThreshold from indefinite to a finite number. In this case, where you set the default value of payloadSizeThreshold to a finite number, even if you do not explicitly configure a value for the payloadSizeThreshold property for a particular inbound adapter endpoint, the global default takes effect. If you specify the global default along with the value in composite.xml, then the value specified in composite.xml overrides the global value. You can modify this global property using the MBeans browser Adapter Mbean of the Oracle Enterprise Manager. This change takes immediate effect for all current and future endpoints Caution: In case of debatching with error recovery, payload size threshold must be used carefully. Payload size violations might lead to unwarranted rejections while skipping the stream in case of erroneous records. Table 2–2 Scenarios Supported for Oracle JCA Adapters Case Oracle File and FTP Adapters Oracle JMS Adapter Oracle MQ Series Adapter Oracle AQ Adapter Oracle Database Adapter NXSD Yes Yes Yes Yes Not applicable XSD Yes Yes Yes No Yes Opaque Yes Yes Yes No Not applicable DTD No No No No Not applicable