AMQ9513: Maximum number of channels reached MQ

If we get this error means max channels are reached . To see total channels used on the QMGR use below command

DISPLAY CHSTATUS(*) CURSHCNV

This command will give all the running channels to get the exact further modify the command like below

echo ” dis chs(*) CURSHCNV ” |runmqsc QM1 |grep “CHANNEL(” |wc -l

check if the channel max instances reached or Max channels reached and act accordingly .MAXINST can be found on the channel definition 

Unix the qm.ini is located at: /var/mqm/qmgrs/<QMGRNAME>/qm.ini

The queue manager attribute MaxChannels is set too low for the required number of client connections (default is 100) . See if MaxChannels are sufficient for the application if not increased based on the Load . change to this qm.ini require QMGR restart .

If you hit MaxChannels with a client application, you should be returned MQRC_CHANNEL_NOT_AVAILABLE (2537)/MQRC_MAX_CONNS_LIMIT_REACHED (2025)accompanied by AMQERR01.LOG message: AMQ9513: Maximum number of channels reached. There can also be limits on specific SVRCONN channels using MAXINST and MAXINSTC which will cause the same MQRC and error message.

To see this take a look at the DISPLAY CHSTATUS command. There is a status attribute CURSHCNV that shows the number currently being shared over that one SVRCONN instance.

To see the local connections use command:-
DISPLAY CONN(*) ALL WHERE(CHANNEL EQ ' ')
To see the remote connections use command:-
DISPLAY CONN(*) ALL WHERE(CHANNEL NE ' ')

How to calculate the values that we need to set MAXINST,MaxChannels

Max Channel CALCULATIONS for QMGR:
 Number of sending MCA channels:   #‌send    +
 Number of receiving MCA channels: #‌recv    +
 Total of all MAXINST (if used)             #‌clients +  ( or the value of echo " dis chs(*) CURSHCNV " |runmqsc QM1 |grep "CHANNEL(" |wc -l)

  -------------------------------------------------------------

 Set Max Channels to this:                      #‌total
calculating Channel instances specific for each channel

echo " dis chs(CL.SG) CURSHCNV" |runmqsc QM1 | grep "CHANNEL(" |wc -l
echo " dis chs(CL.MY) CURSHCNV" |runmqsc QM1 | grep "CHANNEL(" |wc -l
echo " dis chs(CL.IN) CURSHCNV" |runmqsc QM1 | grep "CHANNEL(" |wc -l
echo " dis chs(SYSTEM.ADMIN.SVRCONN) CURSHCNV" |runmqsc QM1 | grep "CHANNEL(" |wc -l
echo " dis chs(SYSTEM.AUTO.SVRCONN) CURSHCNV" |runmqsc QM1 | grep "CHANNEL(" |wc -l
echo " dis chs(SYSTEM.DEF.SVRCONN) CURSHCNV" |runmqsc QM1 | grep "CHANNEL(" |wc -l
The sum of the above equal to the following command
echo " dis chs(*) CURSHCNV " |runmqsc QM1 |grep "CHANNEL(" |wc -l

When we get the error based on the values we need to modify QMGR qm.ini MaxChannels or MAXINST on the channel to solve the issue .

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *