The JMS providers - configure the client and server
To enable a service to be invoked through JMS by a WSIF client application, complete these steps:
- Create a JMS queue for WSIF to send to the request message to.
Note: This can be done using MQSeries Explorer or an equivalent tool from your JMS implementation package.
- Create a JNDI definition for that JMS queue and a JNDI queue connection factory.
Note: If you are using WebSphere MQ, you can use the the jmsadmin tool.
- Put the JNDI names of the queue and queue connection factory, as well as your JNDI configuration, in the WSDL file.
You should also be aware of these specific ways in which WSIF interacts with JMS:
- Only input JMS properties are supported.
- WSIF needs two queues when invoking an operation: one for the request message and one for the reply. The replyTo queue is by default a temporary queue which WSIF creates on behalf of the application. You can specify a permanent queue by setting the JMSReplyTo property to the JNDI name of a queue.
- WSIF uses the default values for properties set by the JMS implementation. However, in WebSphere MQ and some other JMS implementations, messages are by default persistent, and the default temporary queue is temporary dynamic, and cannot have persistent messages written to it. Your JMS listener may fail to write a persistent response message to the temporary replyTo queue.
Note: If you are using WebSphere MQ, you need to create a temporary model queue which is permanent dynamic, then pass this model as the tempmodel of your queue connection factory. This ensures that persistent messages can be written to the permanent dynamic temporary replyTo queue.