激活规范
对于激活规范,在满足一定限制的情况下支持 CONNECTIONNAMELIST 和 CCDTURL 属性,但不支持 CLIENTRECONNECTOPTIONS 属性。
安装在 Java EE 环境 (例如 WebSphere® Application Server) 中的消息驱动的 bean (MDB) 应用程序可以使用激活规范来处理 IBM® MQ 系统上的消息。
激活规范用于检测到达 IBM MQ 系统上的消息,然后将这些消息传递到 MDB 进行处理。 本部分处理激活规范如何监视 IBM MQ 系统。
MDB 还可以从其 onMessage() 方法内部与 IBM MQ 系统建立其他连接。
可以在 Enterprise JavaBeans 和基于 Web 的应用程序中找到有关这些连接如何使用自动客户机重新连接的详细信息。
CONNECTIONNAMELIST 属性
- QMANAGER 属性中指定的队列管理器
- CHANNEL 属性中提到的通道
- 来自 CONNECTIONNAMELIST 中第一个条目的主机名和端口信息
如果激活规范无法使用列表中的第一个条目连接到队列管理器,那么激活规范会继续使用第二个条目并依次尝试后续条目,直到建立了与队列管理器的连接,或者到达该列表末尾为止。
如果激活规范无法使用 CONNECTIONNAMELIST 中的任何条目连接到指定的队列管理器,那么激活规范将停止并且必须重新启动。
激活规范运行后,激活规范将从 IBM MQ 系统获取消息,并将消息传递到 MDB 进行处理。
如果在处理消息时队列管理器发生故障,那么 Java EE 环境会检测到故障并尝试重新连接激活规范。
激活规范在执行重新连接尝试时,会像以前一样使用 CONNECTIONNAMELIST 属性中的信息。
如果激活规范尝试 CONNECTIONNAMELIST 中的所有条目,但仍无法连接到队列管理器,那么激活规范将等待 IBM MQ 资源适配器属性 reconnectionRetryInterval 指定的时间段,然后重试。
IBM MQ 资源适配器属性 reconnectionRetryCount 定义在停止激活规范之前进行的连续重新连接尝试次数,并且需要手动重新启动
激活规范重新连接到 IBM MQ 系统后, Java EE 环境将执行所需的任何事务清除,并继续将消息传递到 MDB 进行处理。
为了使事务清除正常工作, Java EE 环境必须能够访问失败的队列管理器的日志。
如果激活规范与参与 XA 事务的事务 MDB 结合使用,并正在连接到多实例队列管理器,那么 CONNECTIONNAMELIST 必须同时包含活动和备用队列管理器实例的条目。
这意味着,如果环境需要执行事务恢复,那么 Java EE 环境可以访问队列管理器日志,无论环境在发生故障后重新连接到哪个队列管理器。
如果事务 MDB 与独立队列管理器配合使用,那么 CONNECTIONNAMELIST 属性必须包含单个条目,以确保激活规范在发生故障后始终重新连接到同一系统上运行的同一队列管理器。
CCDTURL 属性
启动时,激活规范尝试使用客户机通道定义表 (CCDT) 中的第一个条目连接到 QMANAGER 属性中指定的队列管理器。
如果激活规范无法使用该表中的第一个条目连接到队列管理器,那么激活规范会继续使用第二个条目并依次尝试后续条目,直到建立了与队列管理器的连接,或者到达该表末尾为止。
如果激活规范无法使用 CCDT 中的任何条目连接到指定的队列管理器,那么激活规范将停止并且必须重新启动。
激活规范运行后,激活规范将从 IBM MQ 系统获取消息,并将消息传递到 MDB 进行处理。
如果在处理消息时队列管理器发生故障,那么 Java EE 环境会检测到故障并尝试重新连接激活规范。
激活规范在执行重新连接尝试时,会像以前一样使用 CCDT 属性中的信息。
如果激活规范尝试 CCDT 中的所有条目,但仍无法连接到队列管理器,那么激活规范将等待 IBM MQ 资源适配器属性 reconnectionRetryInterval 指定的时间段,然后重试。
IBM MQ 资源适配器属性 reconnectionRetryCount 定义在停止激活规范之前进行的连续重新连接尝试次数,并且需要手动重新启动
激活规范重新连接到 IBM MQ 系统后, Java EE 环境将执行所需的任何事务清除,并继续将消息传递到 MDB 进行处理。
为了使事务清除正常工作, Java EE 环境必须能够访问失败的队列管理器的日志。
如果激活规范与参与 XA 事务的事务 MDB 结合使用,并正在连接到多实例队列管理器,那么 CCDT 必须同时包含活动和备用队列管理器实例的条目。
这意味着,如果环境需要执行事务恢复,那么 Java EE 环境可以访问队列管理器日志,无论环境在发生故障后重新连接到哪个队列管理器。
如果事务 MDB 与独立队列管理器结合使用,那么 CCDT 必须包含单个条目,以确保在发生故障之后,激活规范始终重新连接到同一系统上运行的同一队列管理器。
确保已为 CCDT 上的 AFFINITY 属性设置缺省值 PREFERRED (用于激活规范) ,以便与同一活动队列管理器建立连接。
CLIENTRECONNECTOPTIONS 属性
激活规范提供自己的重新连接功能。 提供的功能允许规范在连接到的队列管理器发生故障时自动重新连接到 IBM MQ 系统。
因此,不支持 IBM MQ classes for JMS 提供的自动客户机重新连接功能。
对于 Java EE中使用的所有激活规范,必须将 CLIENTRECONNECTOPTIONS 属性设置为 DISABLED 。