You need to configure the sender JMS adapter to send JMS messages to the Integration Engine or the PCK.
There can only be one sender agreement for the defined communication channel.
Under Transport Protocol , select the JMS provider:
SonicMQ JMS Provider
WebSphereMQ (non-JMS)
Access JMS Provider with JNDI
(Read) JMS Provider Administered Objects from File
Access JMS Provider Generically
The Message Protocol is JMS 1.x .
Select the Adapter Engine on the Integration Server, or select a non-centrally installed Adapter Engine.
This selection is not available in the PCK.
Defining Connection Parameters
Select the Source tab page.
If you want to connect to a JMS topic, select the Enable Topic Support checkbox.
Depending on the transport protocol you have selected, enter the JMS provider connection parameters.
Defining SonicMQ JMS Provider Settings
Defining WebSphereMQ (MQ Series) JMS Provider Settings
Defining JMS Provider Settings for JNDI Access
Specifying Files for Administrable Objects of the JMS Provider
To make additional settings or replace the default settings, select Set Additional JMS Parameters or Replace Default Settings and enter the parameters and values in the table.
For example, you can set the following parameters and values:
JMSMessageClass with value com.ibm.jms.JMSMessage
JMS.Messagè.method.setStringProperty with value java.lang.String XAppId, java.lang.String myapp
Defining Initial Context Properties
Specify the Initial context properties name and value in the table. Before SAP NetWeaver PI 7.20 release, initial context properties could be specified in the Additional Parameters table. Now this can be specified as:
Name |
Value |
propertyName |
propertyValue |
Both propertyName and propertyValue are Strings.
This table is available only if you select the Transport Protocol as JNDI JMS Provider Lookup .
Defining JMS Settings
Select the Processing tab page.
If you want to use a transactional JMS session, select Transactional JMS Session .
The transactional JMS Session is the default setting and is recommended. If you do not use this setting, then the message delivery is not guaranteed. The message can be lost in such a case.
Following processing of a message, a transactional session ends either with a COMMIT, or in the case of an error, with a ROLLBACK.
Enter the User and the Password with confirmation for accessing the JMS Queue/Topic .
Under JMS Message Selector , specify conditions that a JMS message in the specified JMS queue must fulfill to be processed by the sender adapter.
For more information about the JMS message selector, see java.sun.com/j2ee/sdk_1.3/techdocs/api/index.html under javax.jms and Message .
Defining Correlation Settings
Determine which algorithm is to be used to create the message ID of a new PI message.
The ID must be a Globally Unique Identifier (GUID) according to ISO 11578.
If the message ID is not a GUID, message processing fails. If the ID is not unique, this can result in message duplicates. This can also lead to a GUIDFormatException.
Set the P I Message IDTo :
GUID (Recommended Value)
JMSMessageID (Uniqueness Is JMS-Provider-Dependent)
JMSCorrelationID (Uniqueness Is JMS-Sender-Dependent)
JMSProperty (Uniqueness Is JMS-Sender-Dependent)
Enter the JMS Property Name . This value is set for the PI message ID.
If the JMSCorrelationID or JMSProperty are not set in the JMS message, a message ID is generated automatically.
If you have selected JMSMessageID, JMSCorrelationID, or JMSProperty and entered a JMS message ID in these fields, select Remove 'ID:' Marker from JMSMessageID indicator.
The JMS specification stipulates that each JMS message ID starts with 'ID'. However, this conflicts with ISO-11578.
Set PI Conversation ID (ConversationID) To :
No value
The PI Conversation ID is not set.
JMSMessageID (Uniqueness Is JMS-Provider-Dependent)
JMSCorrelationID (Uniqueness Is JMS-Sender-Dependent)
JMSProperty (Uniqueness Is JMS-Sender-Dependent)
Enter the JMS Property Name . This value is set for the PI message ID.
Stored JMSCorrelationID of request
The saved JMSCorrelationID of the request is used.
Defining the Duplicate Handling Settings
If you want to set an alert for the duplicate messages, select Enable Duplicate Handling , then perform the following substeps.
Enter Duplicate Message Threshold to set a value, beyond which an alert will be raised for the duplicate messages.
If you enter a value n for duplicate message threshold, an alert will be raised for the n+1 duplicate message.
If you want to disable the channel (that is to stop further processing of messages) after the duplicate threshold is exceeded, select Disable Channel If Threshold Exceeded
If you want the duplicate messages received from different channels (that is JMS Messages with the same Message ID) to be processed as a distinct JMS messages and not as duplicate messages, select Prefix Channel ID to JMS Message ID
You use this option only for channels connecting to JMS Queue.
This is a default function for channels connecting to JMS Topic.
Defining the Connector Settings
If you want to receive messages from the JMS Provider using message listener, select Use Message Listener Based Connector .
If you want to receive messages from the JMS provider using message polling, then perform the following substeps.
Enter the Message Poll Interval (msecs) to specify the time period between the calls to receive messages from the JMS provider destinations.
Enter the Message Receive Wait Time (msecs) to specify the timeout value specified to the receive() call used for receiving messages from JMS Provider destinations.
This is default approach to receive messages from the JMS provider.
Message Polling based approach for receiving messages from JMS Provider destinations is the recommended approach.
Defining PI Settings
Select the Mapping of Message :
If you want the JMS payload to contain the entire message, choose Entire Message = JMS Payload .
If you only want the JMS payload to contain the payload of the message, choose Message Payload = JMS Payload .
In the Quality of Service drop-down, choose the type of quality of service (QoS) and perform the following sub-steps:.
In the Queue ID field, enter the queue ID.
This option is available only for the Exactly Once in Order QoS.
In the Processing J2EE Cluster Server (Cluster ID) field, enter the cluster ID of the node on which you want the JMS adapter to process the message.
If you do not specify the cluster ID, the JMS adapter executes the message on the first available node in the cluster.
This option is not applicable for channels that connect to JMS queues and have an Exactly Once QoS.
Channels connecting to JMS topics are active on only one node irrespective of the QoS configuration.
For more information, see Quality of Service
To check for duplicate messages, IDs must be saved in the database. To prevent the database from getting unnecessarily large, these IDs are deleted after a certain amount of time.
Under Time Period for Duplicate Check for EO(IO) (secs) , specify when the IDs are to be deleted.
For example, if you check message monitoring daily, deletion can take place after one day.
Defining Error Handling Settings
Under Wait After Message Error (msecs) , enter the number of milliseconds that the adapter must wait when a processing error occurs, before further messages are processed.
In transactional processing, it can make sense to specify a certain time period, for example, because messages with errors remain in the queue following a ROLLBACK.
Under Wait Before Reconnect (msecs) , specify a period of time after which an attempt is made to reestablish a connection following a connection error on the JMS side.
If you enter -1, no attempt is made to reestablish the connection.
Your JMS provider must support the registration of an ExceptionListener for this.
Defining Adapter-Specific Message Attributes
Select the Advanced tab page.
To save adapter attributes in the message header of the PI message, select Set Adapter-Specific Message Attributes .
To apply the following attributes in the PI message header, set the corresponding indicators:
JMS Message Correlation ID : (technical name: DCJMSCorrelationID )
JMS Message Delivery Mode : (technical name: DCJMSDeliveryMode )
JMS Message Destination : (technical name: DCJMSDestination )
JMS Message Expiration : (technical name: DCJMSExpiration )
JMS Message ID : (technical name: DCJMSMessageID )
JMS Message Priority : (technical name: DCJMSPriority )
JMS Message Redelivered Flag : (technical name DCJMSRedelivered )
JMS Message ReplyTo Destination : (technical name: DCJMSReplyTo )
JMS Message Time Stamp : (technical name: DCJMSTimestamp )
JMS Message Type : (technical name: DCJMSType )
Used JMS Message Selector : (technical name: DCJMSMessageSelector )
Used JMS Message Queue: (technical name: DCJMSMessageQueue )
JMS User : (technical name: DCJMSUser )
If you want to set additional JMS message attributes, select Specify Additional JMS Message Properties (Maximum of 100).
In the table, enter the names of the JMS message properties whose values are to be included in the message header of the PI message.
The technical names of the additional attributes are DCJMSMessageProperty0 , DCJMSMessageProperty1, ..., DCJMSMessageProperty9.
You can enter more than ten properties in the table. However, only the first ten can be used for routing.
The attribute namespace for the adapter is http://sap.com/xi/XI/System/ JMS .
Defining the Adapter Status
Set the adapter to Active to enable messages to be exchanged.
Defining Additional Parameters
Specify the additional parameter Names and parameter Values in the table.
For example, if you are connecting to a third party JMS provider you can enter the client ID and its corresponding value for each channel. However, these are specific to the third-party provider.
For more information , see the documentation of the third-party provider.