Start of Content Area

Background documentation Settings for the JMS Provider  Locate the document in its SAP Library structure

In JMS, provider-specific information is contained in administrated objects. QueueConnectionFactory and Queue are the objects relevant for the JMS adapter. Administrated objects such as these are either loaded dynamically (for example, from the local file system or from LDAP servers by using JNDI), or generated directly .

Loading Objects Dynamically

Existing administrable objects can be loaded from the local file system. The following two parameters can be used for this purpose:

      JMS.FileNameQueueConnectionFactory=<path/filename>

      JMS.FileNameQueue=<path/filename>

Generating Objects Directly

Since on the one hand, administrable objects do not always already exist, and on the other, no provider-specific characteristics should exist in the adapter (JMS interfaces are provider-independent, however, administrable objects are extremely provider-dependent), there is a additional, simple way to specify provider-specific data in the configuration of the JMS adapter. This makes the overall configuration easier and more flexible.

Below is a brief example of the general administration of QueueConnectionFactory and Queue using the example of SonicMQ and WebSphereMQ.

You select the JMS provider by specifying the implementing class of QueueConnectionFactory, for example:

This graphic is explained in the accompanying text

JMS.QueueConnectionFactoryImpl.classname=progress.message.jclient.QueueConnectionFactory (for SonicMQ)

JMS.QueueConnectionFactoryImpl.classname=com.ibm.mq.jms.MQQueueConnectionFactory (for WebSphereMQ)

The provider determines which messaging parameter is set, and how. For example, the provider address is set in the constructor of the QueueConnectionFactory for SonicMQ, while this is performed using a SetMethod for WebSphereMQ:

This graphic is explained in the accompanying text

JMS.QueueConnectionFactoryImpl.constructor=java.lang.String p49512:2506(for SonicMQ)

JMS.QueueConnectionFactoryImpl.method.setHostName=java.lang.String p49512:2506(for WebSphereMQ)

In addition, you need to set a number of provider-dependent parameters or flags. For example, for WebSphereMQ the information whether the provider should be contacted using JNI or TCP/IC (the former is the default setting, but is only possible on local machines). You set the connection type TCPIP using a constant, for example:

This graphic is explained in the accompanying text

JMS.QueueConnectionFactoryImpl.method.setTransportType=java.lang.Integer {com.ibm.mq.jms.JMSC.MQJMS_TP_CLIENT_MQ_TCPIP}

For Queues the same applies as for QueueConnectionFactories. For example, if you want to send a JMS message using WebSphereMQ, but the receiver only supports native WebSphereMQ messages, then the following configuration entry is recommended:

This graphic is explained in the accompanying text

JMS.QueueImpl.method.setTargetClient=java.lang.Integer {com.ibm.mq.jms.JMSC.MQJMS_CLIENT_NONJMS_MQ}

See the documentation of your JMS provider for more information about mandatory/optional settings.

 

 

 

End of Content Area