Oracle JMS Adapter Integration with Oracle Mediator

Oracle JCA Adapter for JMS 8-3 interface=http:xmlns.oracle.compcbpeladapterjmsutf8jcamessageencoding jms_inboundwsdl.interfaceConsume_Message_ptt binding.jca config=jms_inbound_jms.jca property name=jca.message.encoding type=xs:string many=false override=mayGBKproperty binding.jca service The following code snippet is an example of setting values in the composite.xml file for message encoding for an outbound reference: reference name=jms_outbound ui:wsdlLocation=jms_outbound.wsdl interface.wsdl interface=http:xmlns.oracle.compcbpeladapterjmsutf8jcamessageencoding jms_outboundwsdl.interfaceProduce_Message_ptt binding.jca config=jms_outbound_jms.jca property name=jca.message.encoding type=xs:string many=false override=mayGBKproperty binding.jca reference ■ Supports the JMS message selector Supports the JMS message selector for performing filtering while subscribing to JMS topics and queues. This parameter is based on the SQL 92 language for filtering messages based on fields present in the JMS header and properties section. ■ Is DOM2 compliant The Oracle JMS Adapter can process and generate document objects that are compliant with DOM2 specification. ■ Supports normalized message. Header manipulation and propagation is a key business integration messaging requirement. Oracle BPEL PM, Mediator, Oracle JCA, and Oracle B2B rely extensively on header support to solve customers integration needs. For example, a user can preserve a file name from the source directory to the target directory by propagating it through message headers. Another example: the outbound Oracle JMS Adapter facilitates asynchronous requestresponse by propagating the correlationId and the JMSReplyTo address as JMS headers. In Oracle BPEL PM and Mediator, users can access, manipulate, and set headers with varying degrees of UI support. For more information, see Section 2.15, Oracle BPEL Process Manager Correlation Support Within Adapters . Propagating Headers in a Normalized Message: Normalized Message is simplified to have only two parts, properties and payload.Typically, properties are name-value pairs of scalar types. To fit the existing complex headers into properties, they will be flattened into scalar types. Manipulating Headers in Design-Time: The user experience while manipulating headers in design time is simplified, because the complex properties are predetermined. In Mediator or Oracle BPEL designer, you can manipulate the headers with some reserved key words. For 8-4 Oracle Fusion Middleware Users Guide for Technology Adapters example, in Mediator designer, you can access an inbound Oracle File Adapter, fileName header by using the following expression: nmproperty.InboundFileHeaderType.fileName However, this method does not address the properties that are dynamically generated based on your input. For example, in the Oracle AQ Adapter Wizard, you are allowed to propagate some of the fields from an AQ object as headers. Based on this user choice, the header definitions are generated. These definitions are not predetermined and hence cannot be accounted for in the list of predetermined property definitions. The user cannot design header manipulation of the dynamic properties before they are defined. To address this limitation, you must generate all the necessary services composite entry points and references. This restriction applies only to those services that are expected to generate dynamic properties. Once dynamic properties are generated, they must be captured in some given location for each composite. Only then can the user manipulate the dynamic properties in the Oracle Mediator or Oracle BPEL designer. ■ Supports specifying a durable JMS subscriber ■ Supports persistent and nonpersistent modes of a JMS publisher ■ Does not support connection retry functionality for MQ provider ■ Does not support outbound retry functionality for AQJMS on Solaris ■ The JMS API specifies three types of acknowledgments that can be sent by the JMS publisher: – DUPS_OK_ACKNOWLEDGE, for consumers that are not concerned about duplicate messages – AUTO_ACKNOWLEDGE, in which the session automatically acknowledges the receipt of a message – CLIENT_ACKNOWLEDGE, in which the client acknowledges the message by calling the messages acknowledge method ■ Supports tracking message size The Oracle JMS Adapter is message size aware. The Oracle JMS Adapter calculates the message size and reports the size back to the JCA Binding Component. The API, related to size, exposed by the JCA Binding Component can be used for reporting purposes. ■ Supports MapMessage Data Type A MapMessage is used to send a set of name-value pairs where names are strings and values are Java primitive types. The entries can be accessed sequentially or Note: When you use the Oracle JMS Adapter to connect to an AQ-JMS provider, and if the database that hosts the AQ destination is 10.1.0.4, then the adapter retry mechanism on the outbound direction will fail to reconnect to the database server if the database server goes down. This is because of a client JDBC issue with ojdbc14.jar. To resolve this you must download the 10.1.0.4 JDBC drivers and use them in the mid tier by replacing the libraries, specifically ojdbc14.jar in MIDTIER_ORACLE_HOMEjdbc. For a detailed explanation about how to resolve this issue, refer to Metalink Note 317385.1.