The ways in which the Web Services Invocation Framework (WSIF)
interacts with the Java Message Service (JMS), and the steps you need to take
to enable a service to be invoked through JMS by a WSIF client application.
Before you begin
This topic assumes that you chose and configured a JMS provider when you installed
WebSphere Application Server (either the JMS provider that is embedded in
WebSphere Application Server, or another provider such as WebSphere MQ). If
not, do so now as described in
Choosing a messaging provider.
About this task
Here are the ways in which the Web Services Invocation Framework
(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 MQSeries and in some other JMS implementations, messages are persistent
by default, and the default temporary queue is of type temporary dynamic and
cannot have persistent messages written to it. Therefore your JMS listener
can fail to write a persistent response message to the temporary replyTo queue.
Note:
- If you are using MQSeries, you need to create a temporary model queue
that is of type permanent dynamic, then pass this model as the tempmodel of
your queue connection factory. This will ensure that persistent messages are
written to a temporary replyTo queue that is of type permanent dynamic.
- If your client is running on an application server that is migrated from
WebSphere Application Server Version 5 to Version 6, you might get basic authentication
errors and therefore need to modify your security settings. For more information
see Web Services Invocation Framework troubleshooting tips.
To enable a service to be invoked through JMS by a WSIF client application,
complete the following steps:
Procedure
- Use the administrative console to create and
configure a queue connection factory and a queue destination as described
in Configuring resources for the default messaging provider or Configuring JMS resources for a generic
messaging provider.
- Use the administrative console to add the new queue destination
to the list of JMS Server destination names for your application server. Ensure
that the Initial State is started.
- Put the JNDI names of the queue destination and queue connection
factory, as well as your JNDI configuration, in the WSDL file.