|
The following topics describe the JMS Binding Component. About the JMS Binding Component About the JMS Binding ComponentThe JMS Binding Component is a JSR 208-compliant JBI runtime component that implements the Java Business Integration component interfaces. It provides JMS protocol transport for inbound and outbound messages. The components "interact" with one another through the use of message exchanges that are coordinated by the Normalized Message Router (NMR). JMS BC as a Service ProviderIn the case of outbound message flow, where the JMS Binding Component is being “invoked” by other components and engines, the JMS Binding Component acts as a JMS service. In this role, the JMS Binding Component converts a normalized message, that it receives as part of the message exchange from other components, to a JMS message. After the JMS message is created as a result of the message conversion, the JMS message is sent to a JMS destination. JMS BC as a Proxy ConsumerIn the case of inbound message flow, where the JMS Binding Component consumes the services of other components and engines, the JMS Binding Component acts as an external JMS proxy consumer. In this role, the JMS Binding Component converts the JMS message that it receives from a JMS service to a normalized message. The normalized message is then sent, as part of the message exchange, to another component as a service request. JMS Binding Component FeaturesFeatures of the JMS Binding Component include:
Installing the JMS Binding ComponentThe JMS Binding Component is not packaged with the JBI runtime delivered with the Java EE 5 SDK or with NetBeansTM 5.5 Enterprise Pack. You can install the JBI runtime components and NetBean Module from the following link: http://java.sun.com/integration/openesb/download.jsp Configuring the Design-Time ComponentsConfiguring the JMS BC design-time components means configuring the JMS WSDL extensibility elements. JMS WSDL extensibility elements are used to specify JMS binding specific configurations. Extensibility elements contain information for constructing the JMS message by specifying the message parts, message formats, properties mapping, and other message related information necessary for the JMS Binding Component to properly map message exchanges to JMS messages, and vice versa. The JMS WSDL extensibility elements also contain information which the JMS Binding Component uses to establish connections and sessions with the JMS. Various properties affecting the delivery of JMS messages are also included in the JMS WSDL extensibility elements. You can configure three extensibility element groups for the JMS Binding Component: JMS ConnectivityThe JMS
The following is a sample usage of the JMS <port binding="y:binding" name="jmsOutOnlyTestEndpoint"> <jms:address connectionURL="mq://localhost:7676" username="admin" password="admin"/> </port> About the
The query string is optional; it contains properties for both the JMS server and the JMSJCA connector that are used by the JMS Binding Component. Supported JMS Providers The following is a list of supported JMS providers:
JMS DeliveryThe JMS extensibility elements for configuring JMS delivery are divided
into two subgroups: JMS Message Sending and Message Mapping Elements As a service provider, the JMS Binding Component uses the information
from these elements to create a JMS session and producer for sending
JMS messages to a JMS destination. The information is located or "bound
at" the operation's input or output element. This JMS extensibility
element name is called The send element has two sub-elements named: The
The following is a sample usage of the JMS send extensibility element defined in the binding operation's input for a "one way" send.
<binding name="binding" type="y:portType">
<jms:binding/>
<operation name="oneway">
<jms:operation/>
<input>
<jms:send>
<jms:sendSenderDefinition destination="OutTestDestination"
destinationType="Topic"
transaction="NoTransaction"
disableMessageTimeStamp="true"
noLocal="true"
deliveryMode="NON_PERSISTENT"
timeToLive="10000" priority="4"
clientID="OutTestClientID">
</jms:sendSenderDefinition>
<jms:sendMessageDefinition messageType="TextMessage"
use="literal"
parts="body">
</jms:sendMessageDefinition>
</jms:send>
</input>
</operation>
</binding>
JMS Message Receiving and Message Mapping Elements As a service consumer, the JMS Binding Component uses the information
from this category of elements to set up endpoint delivery
of messages from JMS. This information is contained at the JMS binding
operation's input or output element. The extensibility element name
is called This element has two sub-elements named: The
The
The following is a sample usage of the JMS receive extensiblity element defined in the binding operation's input for a "one way" receive. <binding name="bindingJMSIn"
type="tns:portTypeJMSIn">
<jms:binding></jms:binding>
<operation name="operationJMSIn">
<jms:operation />
<input name="input">
<jms:receive>
<jms:receiveReceiverDefinition destination="MsgSelectorTestDestination"
destinationType="Queue"
transaction="NoTransaction"
acknowledgementMode="AUTO_ACKNOWLEDGE"
messageSelector="JMSCorrelationID='88888888' AND JMSType='SUN'>
</jms:receiveReceiverDefinition>
<jms:receiveMessageDefinition messageType="TextMessage" use="literal" part="partJMS">
</jms:receiveMessageDefinition>
</jms:receive>
</input>
</operation>
</binding>
WSDL Message Part MappingThe following sub-elements are used by both the JMS Message User Properties to WSDL Message Parts Mapping The mapping of the JMS message user properties to the WSDL message
parts and vice-versa are defined using the properties sub-element of
either the
The following is a sample usage of the JMS properties and property extensiblity elements:
<jms:sendMessageDefinition messageType="TextMessage" use="literal" parts="partBody">
<jms:properties>
<jms:property part="partPropString" propertyType="string" name="AppStringProperty"></jms:property>
<jms:property part="partPropBoolean" propertyType="boolean" name="AppBooleanProperty"></jms:property>
<jms:property part="partPropShort" propertyType="short" name="AppShortProperty"></jms:property>
<jms:property part="partPropInt" propertyType="int" name="AppIntProperty"></jms:property>
<jms:property part="partPropLong" propertyType="long" name="AppLongProperty"></jms:property>
<jms:property part="partPropFloat" propertyType="float" name="AppFloatProperty"></jms:property>
</jms:properties>
</jms:sendMessageDefinition>
JMS MapMessage WSDL Message Parts Mapping In the case where the exchange involves a JMS MapMessage type, the
JMS
The following is a sample usage of the JMS mapmessageparts and mappart extensibility elements:
<jms:receiveMessageDefinition messageType="MapMessage" use="literal">
<jms:mapmessageparts>
<jms:mappart part="partBoolean" type="boolean" name="BooleanMapEntry"></jms:mappart>
<jms:mappart part="partChar" type="char" name="CharMapEntry"></jms:mappart>
<jms:mappart part="partDouble" type="double" name="DoubleMapEntry"></jms:mappart>
<jms:mappart part="partFloat" type="float" name="FloatMapEntry"></jms:mappart>
<jms:mappart part="partInt" type="int" name="IntMapEntry"></jms:mappart>
<jms:mappart part="partLong" type="long" name="LongMapEntry"></jms:mappart>
<jms:mappart part="partShort" type="short" name="ShortMapEntry"></jms:mappart>
<jms:mappart part="partString" type="string" name="StringMapEntry"></jms:mappart>
</jms:mapmessageparts>
JMS Binding and JMS Operation Extensibility Elements The JMS binding and JMS operation extensibility elements are empty elements that serve as markers, allowing the JMS Binding component to gather JMS "binding" information described by the other JMS extensibility elements. The following is a sample usage of the JMS binding extensibility element:
<binding name="bindingJMSOneWayOut"
type="tns:portTypeOneWayOut">
<jms:binding></jms:binding>
...
</binding>
The following is a sample usage of the JMS operation extensibility element:
<binding name="bindingJMSOneWayOut"
type="tns:portTypeOneWayOut">
<jms:binding></jms:binding>
<operation name="operationOneWayOut">
<jms:operation />
<input name="input">
...
</binding>
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||