When process is a Messaging channel agent in Message channel, what's the MCA in MQI channels.?

637 views Asked by At

When we are defining the messages channels like SDR channel, we will have MCATYPE as PROCESS. So when ever the messages comes to the transmit queue, process will start the channel by acting as a agent ( MCA ).

AMQ8414: Display Channel details. CHANNEL(SYSTEM.DEF.SENDER) CHLTYPE(SDR) MCATYPE(PROCESS)

If so, what is the MCA in the case of MQI channels, how do channel will get started to let the messages process to application side?

2

There are 2 answers

0
Shashi On

MQI Channels are used for connecting client applications to a queue manager. The channel starts when MQCONN/MQCONNX (or it's OO equivalent in other languages like C++/C#/Java) API is called.

MQI Channels are of SVRCONN type. MCATYPE is not valid for SVRCONN channels. It's valid for Sender/Server/Request/Cluster-sender/Cluster-receiver channel types. More details here.

0
Morag Hughson On

MCATYPE has two possible values, PROCESS or THREAD. This tells the MQ product how to run the channel, ie, whether to run it as a PROCESS, i.e. a runmqchl process, or whether to run it as a thread of the pool processes, that is the amqrmppa process. This only applies to outbound channels, i.e. those which start or initiate the channel conversation. (It also applies to cluster-receivers for the sole purpose of building a cluster-sender channel from it, the attribute is not used by the cluster-receiver itself).

For inbound channel types it does not apply. The way to choose between thread and process for inbound channels is for threads, use the normal MQ Listener (this is the recommended way), and for processes, use inetd.

So for MQI Channels, that is the SVRCONN channel type, they will run as threads of the pool processes unless you use inetd. Using inetd is generally not recommended.

They get started by the listening process (either MQ listener or inetd) catching the socket creation, and handing it off to the process (amqrmppa or amqcrsta) to accept and receive data from.