WebSphere MQ

Overview

IBM WebSphere MQ, formerly known as MQSeries, is a messaging integration product that provides reliable, secure and, optionally, transactional message delivery. Enterprise Server for .NET uses the WebSphere MQ .NET managed code client to allow application programs to interact with an MQ server. However, as the WebSphere MQ .NET managed code client only provides a class library interface and not the traditional MQI (MQ programming interface), the MQI is implemented within Enterprise Server for .NET to allow applications that use the MQI to be able to run unchanged.

Supported Versions of the WebSphere MQ .NET Managed Code Client

  • WebSphere MQ 7.5.0.3 or later
  • WebSphere MQ 8.0 or later
Note: If two or more versions of the WebSphere MQ .NET managed code client have been installed side-by-side, Enterprise Server for .NET will load and use the most recent version.
The following features are not available to a WebSphere MQ .NET managed code client (please see IBM documentation for more details):
  • Channel compression
  • SSL support (now available in WebSphere MQ 8.0)
  • Channel exit chaining

MQI

The following MQI verbs, with some parameter restrictions, are supported by Enterprise Server for .NET:
Verb Parameter Support
MQBACK Hconn Full
CompCode Full
Reason Full
MQBEGIN Hconn Full
BeginOptions Ignored
CompCode Full
Reason Full
MQCLOSE Hconn Full
CompCode Full
Hobj Full
Options Full
Reason Full
MQCMIT Hconn Full
CompCode Full
Reason Full
MQCONN QMgrName Full
Hconn Full
CompCode Full
Reason Full
MQCONNX QMgrName Full
ConnectOpts
  • ClientConnOffset and ClientConnPtr fields used to address MQCD structure. The MQCD StrucId, Version, ChannelName, ChannelType and ConnectionName fields are honored, all other MQCD fields are ignored
  • All other fields ignored
Hconn Full
CompCode Full
Reason Full
MQDISC Hconn Full
CompCode Full
Reason Full
MQGET Hconn Full
Hobj Full
MsgDesc Full
GetMsgOpts
  • StrucId, Version, Options, WaitInterval, ResolvedQName, MatchOptions, GroupStatus, SegmentStatus and Segmentation fields are honored
  • All other fields are ignored
BufferLength Full
Buffer Full
DataLength Full
CompCode Full
Reason Full
MQINQ Hconn Full
Hobj Full
SelectorCount Full
Selectors Full
IntAttrCount Full
IntAttrs Full
CharAttrLength Full
CharAttrs Full
CompCode Full
Reason Full
MQOPEN Hconn Full
ObjDesc
  • StrucId, Version, ObjectName, ObjectQmgrName, DynamicName and AlternateUserId fields are honored
  • ObjectType of type MQOT_Q (i.e. queue) supported. All other object types are unsupported
  • All other fields are ignored
Options Full
Hobj Full
CompCode Full
Reason Full
MQPUT Hconn Full
Hobj Full
MsgDesc Full
PutMsgOpts
  • StrucId, Version, Options, Context, KnownDestCount, UnknownDestCount, InvalidDestCount, ResolvedQname and ResolvedQmgrName fields are honored
  • All other fields are ignored
BufferLength Full
Buffer Full
CompCode Full
Reason Full
MQPUT1 Hconn Full
ObjDesc
  • StrucId, Version, ObjectName, ObjectQmgrName, DynamicName and AlternateUserId fields are honored
  • ObjectType of type MQOT_Q (i.e. queue) supported. All other object types are unsupported
  • All other fields are ignored
MsgDesc Full
PutMsgOpts
  • StrucId, Version, Options, Context, KnownDestCount, UnknownDestCount, InvalidDestCount, ResolvedQname and ResolvedQmgrName fields are honored
  • All other fields are ignored
BufferLength Full
Buffer Full
CompCode Full
Reason Full
MQSET Hconn Full
Hobj Full
SelectorCount Full
Selectors Full
IntAttrCount Full
IntAttrs Full
CharAttrLength Full
CharAttrs Full
CompCode Full
Reason Full
Note: The level of MQI support listed above is for the verbs and their interfaces as defined by the IBM documentation for the WebSphere MQ 7.5.0.3 and 8.0 releases. Any changes or extensions to these verbs made by IBM in later versions of WebSphere MQ are not currently supported.

Configuration

Both CICS and JES regions can be fully configured for MQ using the Enterprise Server for .NET Administration UI. If necessary, you can configure the MQ client externally via environment variables and/ or app.config files. However, if the MQ client is configured externally, you should bear the following in mind:
  • External configuration will apply to all regions
  • Each machine in a scale-out will require the environment variables set with the same MQ configuration for the seelistener.exe, w3wp.exe and seesep.exe (used when debugging) processes
  • Each machine in a scale-out will require the app.config files for seelistener.exe and seesep.exe (used when debugging) and web.config for w3wp.exe set with the same MQ configuration

A CICS region requires an MQ XA resource definition to be created using the XA Resource Definitions Editor, and its name specified in the region start-up file using the Region Startup File Editor. The MQ XA resource definition allows the MQ queue manager name, channel name and connection name to be specified. If trigger monitors are to be used, a listener channel for each trigger monitor needs to be configured using the Listener Configuration Editor. Each trigger monitor configuration requires the name of the MQ initiation queue to be specified.

A JES region requires the MQ channel and connection names, used when an application attempts to connect to a queue manager using the MQCONN or MQCONNX APIs, to be specified in the region start-up file using the Region Startup File Editor.