有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

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


共 (1) 个答案

  1. # 1 楼答案

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

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

    DISPLAY CHSTATUS(CHAN)
    

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

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

    DISPLAY CHSTATUS(CHAN) CURSHCNV MAXSHCNV
    

    查看Java应用程序代码,查看是否在不需要时重复建立连接和/或不断开连接。在问题中张贴您的代码以获得进一步帮助