IBM MQ classes for Java 中的连接池

IBM® MQ classes for Java 允许合用备用连接以供复用。

IBM MQ classes for Java 为处理与 IBM MQ 队列管理器的多个连接的应用程序提供了其他支持。 当连接不再需要时,该连接不会被破坏,而是被聚集到池中,以便以后复用。 对于串行连接到任意队列管理器的应用程序和中间件,这可以大幅提升性能。

IBM MQ 提供了缺省连接池。 应用程序可以通过 MQEnvironment 类注册和注销令牌,从而激活或取消激活此连接池。 如果在 IBM MQ classes for Java 构造 MQQueueManager 对象时池处于活动状态,那么它将搜索此缺省池并复用任何合适的连接。 发生 MQQueueManager.disconnect() 调用时,基础连接将返回到池中。

或者,应用程序可以针对特定用途构造 MQSimpleConnectionManager 连接池。 之后,应用程序可以在构造 MQQueueManager 对象期间指定该池,也可以将该池传递到 MQEnvironment,以作为缺省连接池使用。

为了防止连接使用太多资源,您可以限制 MQSimpleConnectionManager 对象可以处理的连接总数,也可以限制连接池的大小。 如果 JVM 中的连接需求存在冲突,那么设置限制就非常有用。

缺省情况下,getMaxConnections() 方法将返回值“0”,这意味着 MQSimpleConnectionManager 对象可以处理的连接数量没有限制。 您可以使用 setMaxConnections() 方法设置限制。 如果设置了限制,那么在达到该限制后,进一步连接请求可能会导致抛出 MQException,并出现原因码 MQRC_MAX_CONNS_LIMIT_REACHED。