MQ:已达到通道的最大实例数

时间:2019-07-05 10:13:21

标签: java spring jms ibm-mq

我有一个连接到MQ的Java客户端,队列管理器抱怨The maximum number of instances, 50, of channel 'CHAN' was reached

在哪里以及如何在客户端代码或属性中找到由Java客户端创建的实例数?

1 个答案:

答案 0 :(得分:5)

您的应用程序每次连接到队列管理器都将导致一个新的通道连接(除非它共享连接-稍后再介绍)。如果您反复连接而没有断开连接,则可能会遇到您所描述的问题。

您可以使用以下MQSC命令(通过runmqsc工具发出)来查看队列管理器上的所有通道连接:-

DISPLAY CHSTATUS(CHAN)

在您的情况下,似乎SVRCONN通道已配置为仅允许50个连接,然后发出您看到的错误。这是在SVRCONN通道的名为MAXINSTC(或可能为MAXINST)的属性上配置的。

如果您的SVRCONN通道配置了SHARECNV设置为10,则在创建第二个SVRCONN实例之前,您可能可以在一个SVRCONN通道实例上共享10个连接。这可能意味着您实际上已经建立了500个连接,然后才达到50个限制。通过将上面的命令扩展为:-

,可以查看SVRCONN通道的特定实例上使用的连接数。
DISPLAY CHSTATUS(CHAN) CURSHCNV MAXSHCNV

查看您的Java应用程序代码,以查看是否在不需要和/或不断开连接时重复进行连接。将您的代码发布到问题中以获得更多帮助。