Asynchronously Invoking an In-Out Operation
Integration Server provides limited support for using a web service connector to asynchronously execute an In-Out operation with a SOAP/JMS binding. Keep the following information in mind when using a web service connector to execute an In-Out operation asynchronously:
For the web service connector, you must pass
jms.async=true into the
transportHeaders input parameter.
To instruct
Integration Server to write the request message for an asynchronous request/reply to the client side queue when the JMS provider is not available, the JMS binder must be configured to use the client side queue.
When a web service connector sends an asynchronous request, it executes to completion without populating any response headers for the
transportInfo/responseHeaders output parameter
Even though a web service connector does not wait for a SOAP response when invoked asynchronously, it will execute the response handlers assigned to the consumer web service descriptor. Because the
messageContext that is available to handler services will not contain a response message, handler services that operate on the response message will not provide much, if any, benefit. However, in an asynchronous request/reply, it might be useful to execute response handler services that perform activities such as cleaning up request handler invocation.
To retrieve the SOAP response to an asynchronous request from the provider, you need to create a custom solution to receive and process the response. This might include using a standard JMS trigger to receive the request from the reply destination and then invoking a trigger service that uses the
pub.soap* services to process the SOAP message. You could also create an on-demand message consumer using the
pub.jms* services to receive the message and then using the
pub.soap* services to process the SOAP message.
Using a JMS trigger or message consumer to receive the response bypasses any response handlers or policies applied to the SOAP response, including any WS-SecurityPolicy. The SOAP response does not undergo any processing provided by the response handlers or policies attached to the consumer web service descriptor. Any response messages that require decryption or authentication will not be usable. Consequently, do not use an asynchronous request/reply to invoke an In-Out operation to which the WS-SecurityPolicy is applied