I did not know about this.

With WebSphere MQ v6, IBM introduced something called the ".NET Monitor" feature.  The .NET Monitor, in MQ, is similar to a WebSphere MQ "trigger monitor."

The doc says, developers can create .NET components and register them with the .NET Monitor.  When a message is received on a monitored queue, The .NET Monitor will instantiate the component, and hand it the message, in the form of an MQMessage object.(The component also gets the MQQueueManager, and MQQueue)  All the developer has to do is implement the IMQObjectTrigger interface, which is defined in the assembly <MQDIR>\bin\amqmdnm.dll.  The interface has just one method:

void Execute(MQQueueManager qmgr, MQQueue queue, MQMessage message, string param);

The .NET Monitor feature of MQ v6 facilitates interop, because the incoming MQ Message can be sent by *anything*, including a CICS/COBOL program, a Java/WebSphere application, a C++ system, or whatever.

Good to know.