Show TOC

Configuring the Sender JMS AdapterLocate this document in the navigation structure

Use

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

Prerequisites

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

Procedure
  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

  1. Select the Source tab page.

  2. If you want to connect to a JMS topic, select the Enable Topic Support checkbox.

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

    Defining Generic Access to the JMS Provider

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

    Example

    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

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

    Note

    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

  1. Select the Processing tab page.

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

    Note

    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.

  3. Enter the User and the Password with confirmation for accessing the JMS Queue/Topic .

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

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

    1. Enter Duplicate Message Threshold to set a value, beyond which an alert will be raised for the duplicate messages.

      Example

      If you enter a value n for duplicate message threshold, an alert will be raised for the n+1 duplicate message.

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

    Note
    • 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.

    1. Enter the Message Poll Interval (msecs) to specify the time period between the calls to receive messages from the JMS provider destinations.

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

    Note
    • 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

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

  2. In the Quality of Service drop-down, choose the type of quality of service (QoS) and perform the following sub-steps:.

    1. In the Queue ID field, enter the queue ID.

      Note

      This option is available only for the Exactly Once in Order QoS.

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

      Note

      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

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

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

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

  1. Select the Advanced tab page.

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

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

Example

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.