Gateway as SOAP JMS Client
TIBCO API Exchange Gateway acts as a SOAP JMS client at the target side.
Request Destination at Target Side
When the Core Engine forwards the request to the target side, it uses the queue or topic name as configured in the Destination Name and Destination Type fields of the Services tab configuration of the Config UI to store the southbound request. The queue name for southbound requests can also be specified by the tibco.clientVar.ASG/Endpoint/SOAPJMS/DefaultTargetRequestQueue global variable in the ASG_CONFIG_HOME/asg.properties file. The queue name from this global variable is used only if the Destination Name field on the ROUTING > Target operations tab on the Config UI is empty.
Response Destination at Target Side
When the SOAP JMS transport is used at the southbound (target) side, the Core Engine uses the queue to store the southbound responses. This queue name is specified by the tibco.clientVar.ASG/facade/SOAPJMS/replyQueue global variable in the ASG_CONFIG_HOME/asg.properties file. The Core Engine sets the JMSReplyDestination as the value specified in the reply queue name to store the responses from the target operations.
When the SOAP JMS transport is used at the target side, the default queue names for request and response are as follows:
Request queue: asg.soap.forward
Response queue: asg.soap.forward.reply.0
- You can define and configure one JMS server at the target side to store the requests and responses at the target side.
- The response queue should exist on the JMS server at the target side when the Core Engine is started. If the Core Engine cannot find them on the JMS server, it throws an expection. When the Core Engine is started and the SOAP JMS channel is enabled, the Core Engine connects to the JMS server and starts listening to the configured queue during the engine startup.
The Core Engine uses a single JMS queue as the reply destination for all SOAPJMS requests sent by the engine. If multiple instances of the Gateway core engines (asg-core or asg-caching-core) are deployed, it is required that each instance must have a unique setting for the tibco.clientVar.ASG/Endpoint/SOAPJMS/TargetResponseQueue global variable. This ensures that the responses are returned to the correct Core Engine.