Writing your own message channel agents
WebSphere MQ allows you to write your own message channel agent (MCA) programs
or to install one from an independent software vendor. You might want to do
this to make WebSphere MQ interoperate over your own, proprietary communications
protocol or to send messages over a protocol that WebSphere MQ does not support.
(You cannot write your own MCA to interoperate with a WebSphere MQ-supplied MCA at
the other end.)
If you decide to use an MCA that was not supplied by WebSphere MQ, you need to
consider the following.
- Message sending and receiving
- You need to write a sending application that gets messages from wherever
your application puts them, for example from a transmission queue (see the WebSphere MQ Application Programming Reference book), and sends them out on a protocol with
which you want to communicate. You also need to write a receiving application
that takes messages from this protocol and puts them onto destination queues.
The sending and receiving applications use the message queue interface (MQI)
calls, not any special interfaces.
You need to ensure that messages are
delivered once and once only. Syncpoint coordination can be used to help with
this.
- Channel control function
- You need to provide your own administration functions to control channels.
You cannot use WebSphere MQ channel administration functions either for configuring
(for example, the DEFINE CHANNEL command) or monitoring (for example, DISPLAY
CHSTATUS) your channels.
- Initialization file
- You need to provide your own initialization file, if you require one.
- Application data conversion
- You will probably want to allow for data conversion for messages you
send to a different system. If so, use the MQGMO_CONVERT option on the MQGET
call when retrieving messages from wherever your application puts them, for example the transmission queue.
- User exits
- Consider whether you need user exits. If so, you can use the same interface
definitions that WebSphere MQ uses.
- Triggering
- If your application puts messages to a transmission queue, you can set
up the transmission queue attributes so that your sending MCA is triggered
when messages arrive on the queue.
- Channel initiator
- You may need to provide your own channel initiator.