IBM MQ custom channel for WCF endpoint URI address format

A web service is specified using a Universal Resource Identifier (URI) that provides location and connection details. The URI format depends on whether you are using the SOAP/JMS interface or the Non-SOAP/Non-JMS interface.

SOAP/JMS interface

The URI format that is supported in the IBM® MQ transport for SOAP permits a comprehensive degree of control over SOAP/ IBM MQ -specific parameters and options when accessing target services. This format is compatible with WebSphere® Application Server and with CICS®, facilitating the integration of IBM MQ with both those products.

The URI syntax is as follows:

 jms:/queue? name = value & name = value...
where name is a parameter name and value is an appropriate value, and the name = value element can be repeated any number of times with the second and subsequent occurrences being preceded by an ampersand (&).

For further information about setting URI properties, see URI syntax and parameters for Web service deployment

Parameter names are case-sensitive, as are names of IBM MQ objects. If any parameter is specified more than once, the final occurrence of the parameter takes effect meaning client applications can override parameter values by appending to the URI. If any additional unrecognized parameters are included, they are ignored.

If you store a URI in an XML string, you must represent the ampersand character as "&". Similarly, if a URI is coded in a script, take care to escape characters such as & which would otherwise be interpreted by the shell.

This is an example of a simple URI for an Axis service:

jms:/queue?destination=myQ&connectionFactory=()
&initialContextFactory=com.ibm.mq.jms.Nojndi
Here is an example of a simple URI for a .NET service:

jms:/queue?destination=myQ&connectionFactory=()&targetService=MyService.asmx
&initialContextFactory=com.ibm.mq.jms.Nojndi

Only the required parameters are supplied ( targetService is required for .NET services only), and connectionFactory is given no options.

In this Axis example, connectionFactory contains a number of options:

jms:/queue?destination=myQ@myRQM&connectionFactory=connectQueueManager(myconnQM)
binding(client)clientChannel(myChannel)clientConnection(myConnection)
&initialContextFactory=com.ibm.mq.jms.Nojndi
In this Axis example, the sslPeerName option of connectionFactory has also been specified. The value of sslPeerName itself contains name value pairs and significant embedded blanks:

jms:/queue?destination=myQ@myRQM&connectionFactory=connectQueueManager(myconnQM)
binding(client)clientChannel(myChannel)clientConnection(myConnection)
sslPeerName(CN=MQ Test 1,O=IBM,S=Hampshire,C=GB)
&initialContextFactory=com.ibm.mq.jms.Nojndi

NON-SOAP/Non-JMS interface

The URI format for the NON-SOAP/Non-JMS interface permits a comprehensive degree of control over IBM MQ -specific parameters and options when accessing target services.

The URI syntax is as follows:
wmq://example.com:1415/msg/queue/INS.QUOTE.REQUEST@MOTOR.INS ?ReplyTo=msg/queue/INS.QUOTE.REPLY@BRANCH452&persistence=MQPER_NOT_PERSISTENT

This IRI tells a service requester that it can use an IBM MQ TCP client-binding connection to a machine called example.com on port 1415 and put persistent request messages to a queue called INS.QUOTE.REQUEST on queue manager MOTOR.INS. The IRI specifies that the service provider puts replies to a queue called INS.QUOTE.REPLY on queue manager BRANCH452. The URI format is as specified for SupportPac MA93. See SupportPac MA93: IBM MQ - Service Definition for more details about the IBM MQ IRI specifications.