HTTP support
MQIPT supports HTTP tunneling. MQIPT can be configured so that the data packets it forwards are encoded as HTTP requests.
IBM MQ channels do not accept HTTP requests. Therefore a second MQIPT is required to receive the HTTP requests and convert them back into normal IBM MQ protocol packets. The second MQIPT strips off the HTTP header to convert the incoming packet back into a standard IBM MQ protocol packet, before passing it on to the destination queue manager.
When HTTP is being used between two instances of MQIPT, the TCP/IP connection on which the HTTP requests and replies flow is persistent and is kept open for the lifetime of the message channel. MQIPT does not close the TCP/IP connection between request/reply pairs.
If two instances of MQIPT are communicating through HTTP, it is possible that an HTTP request might stay outstanding for an extended period. An example is in a requester/server channel, when the server side is waiting for new messages to arrive on its transmission queue. The IBM MQ channel protocol provides a "heartbeat" mechanism, which requires the waiting end periodically to send heartbeat messages to its partner. The default channel heartbeat period is 5 minutes. MQIPT uses this heartbeat as the HTTP reply. Do not disable this channel heartbeat, or set it to an excessively high value, to avoid causing problems with timeouts in some firewalls.
MQIPT accepts HTTP traffic in chunked format, generated by an HTTP proxy or server.
Some HTTP proxies have their own properties for controlling persistent connections, for example, the number of requests that can be made on a persistent connection. The HTTP proxy must also support HTTP 1.1 protocol. When using the IBM WebSphere Caching Proxy, the following properties should be set:- MaxPersistenceRequest set to a high value (for example, 5000)
- PersistentTimeout set to a high value (for example, 12 hours)
- ProxyPersistence set to on
To maintain the one-to-one mapping of persistent connections across the Caching Proxy we must specify the UseSession field on the Proxy directive. For example, when using a default UriName on MQIPT1 and where MQIPT2 is listening on port address 1415:
MQIPT1 --> Caching Proxy --> MQIPT2update the ibmproxy.conf file with either:
Proxy http://mqipt2:1415/mqipt http://mqipt2:1415/mqipt UseSessionor
Proxy http://mqipt2:*/mqipt http://mqipt2:*/mqipt UseSession
See Configure an HTTP proxy for an example of using HTTP.
Parent topic: Configure IBM MQ Internet Pass-Thru