Show TOC Start of Content Area

Procedure documentation Configuring the Sender JMS Adapter  Locate the document in its SAP Library structure


You need to configure the sender JMS adapter to send JMS messages to the Integration Engine or the PCK.


There can be exactly one sender agreement for the defined communication channel.

More information: Sender Agreement in Integration Server/ PCK, under Obligatory Sender Agreements



       1.      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

       2.      The Message Protocol is JMS 1.x.

       3.      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

       4.      Select the Source tab page.

       5.      Depending on the transport protocol you have selected, you make specifications for the respective JMS provider.

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

Defining Generic Access to the JMS Provider

       6.      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

JMS.Message.method.setStringProperty with value java.lang.String XAppId, java.lang.String myapp

Defining JMS Settings

       7.      Select the Processing tab page.

       8.      If you want to use a transactional JMS session, select Transactional JMS Session.

Following processing of a message, a transactional session ends either with a COMMIT, or in the case of an error, with a ROLLBACK.

       9.      Enter theUser and the Password with confirmation for accessing the JMS Queue.

   10.      Under JMS Message Selector, specify conditions that a JMS message in the specified JMS queue must fulfill to be processed by the sender adapter.

Link to external website

For more information about the JMS message selector, see under javax.jms and Message.

Defining Correlation Settings

   11.      Determine which algorithm is to be used to create the message ID of a new PI message.

The ID must be a GUID (Globally Unique Identifier) 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 PI Message ID To:

§         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.

For information about the ConversationID, see: Parts of an PI Message, under ConversationID and RefToMessageID.

Defining PI Settings

   12.      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.

   13.      Under Quality of Service, specify how a message is to be processed by the Integration Engine/PCK.

For Quality of Service Exactly Once In Order, enter:

¡        Queue ID

¡        Specify the Processing J2EE Cluster Server (Cluster ID).

This specification stops queue-jumping in the JMS queue.

The valid cluster ID is located on the J2EE server – Administrator under Server.


If you do not enter the cluster ID, the EOIO channel is activated automatically on a different working node. This configuration ensures node failover by the adapter in a clustered environment.

See: Quality of Service, the BE variant is not relevant for the JMS adapter.

   14.      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

   15.      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.

   16.      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

   17.      Select the Advanced tab page.

   18.      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 10).

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 are taken into account.

The attribute namespace for the adapter is

Defining the Adapter Status

   19.      Set the adapter to Active to enable messages to be exchanged.

Defining Additional Parameters

   20.      Specify the additional parameter Names and parameter Values in the table.

End of Content Area