Enterprise Java Bean 和基于 Web 的应用程序

在 Web 容器 (例如 Servlet) 中运行的 Enterprise JavaBean (EJB) 应用程序和应用程序使用 JMS 连接工厂来创建与 IBM® MQ 队列管理器的连接。

以下限制应用于 EJB 和基于 Web 的应用程序:
  • 在满足一定限制的情况下支持 CONNECTIONNAMELISTCCDTURL
  • 不支持 CLIENTRECONNECTOPTIONS

CONNECTIONNAMELIST 属性

如果 Java EE 环境为 JMS 连接提供连接池,请参阅 在连接池中使用 CONNECTIONNAMELIST 或 CCDT ,以获取有关这将如何影响 CONNECTIONNAMELIST 属性的行为的信息。

如果 Java EE 环境未提供 JMS 连接池。 应用程序以与 Java SE 应用程序相同的方式使用 CONNECTIONNAMELIST 属性。

如果应用程序与参与 XA 事务的事务 MDB 结合使用,并正在连接到多实例队列管理器,那么 CONNECTIONNAMELIST 必须同时包含活动和备用队列管理器实例的条目。

这意味着,如果环境需要执行事务恢复,那么 Java EE 环境可以访问队列管理器日志,无论环境在发生故障后重新连接到哪个队列管理器。

如果应用程序与独立队列管理器配合使用,那么 CONNECTIONNAMELIST 属性必须包含单个条目,以确保应用程序在发生故障后始终重新连接到在同一系统上运行的同一队列管理器。

CCDTURL 属性

如果 Java EE 环境为 JMS 连接提供了连接池,请参阅 在连接池中使用 CONNECTIONNAMELIST 或 CCDT ,以获取有关这将如何影响 CCDTURL 属性行为的信息。

如果 Java EE 环境未提供 JMS 连接池。 应用程序以与 Java SE 应用程序相同的方式使用 CCDTURL 属性。

如果应用程序与参与 XA 事务的事务 MDB 结合使用,并正在连接到“多实例队列管理器”,那么 CCDT 必须同时包含活动和备用队列管理器实例的条目。

这意味着,如果环境需要执行事务恢复,那么 Java EE 环境可以访问队列管理器日志,无论环境在发生故障后重新连接到哪个队列管理器。

如果应用程序与“独立队列管理器”结合使用,那么 CCDT 必须包含单个条目,以确保在发生故障之后,激活规范始终重新连接到同一系统上运行的同一队列管理器。

CLIENTRECONNECTOPTIONS 属性

对于在 Web 容器中运行的 EJB 或应用程序所使用的所有 JMS 连接工厂,必须将 CLIENTRECONNECTOPTIONS 属性设置为 DISABLED

对于需要自动重新连接到新队列管理器的应用程序,当它们使用的队列管理器发生故障时,它们需要实现自己的重新连接逻辑。 有关更多信息,请参阅 在 Java EE 应用程序中实现重新连接逻辑