JMS 激活规范 [设置]

JMS 激活规范与一个或多个消息驱动的 Bean 相关联,并给他们提供接收消息所必需的配置。

要在控制台中查看此页面,请单击下列其中一个操作途径:
  • 资源 -> JMS -> 激活规范 -> activation_specification_name
  • 资源 -> JMS -> JMS 提供程序 -> a_messaging_provider -> [其他属性] 激活规范 -> activation_specification_name
使用此面板浏览或更改所选 JMS 激活规范的配置属性,以与缺省消息传递提供程序配合使用。

如果希望使用消息驱动的 Bean 通过 Java EE 连接器体系结构 (JCA) 1.5 与缺省消息传递提供程序通信,请创建 JMS 激活规范。JCA 提供 WebSphere® Application Server 之类的应用程序服务器与企业信息系统之间的 Java 连接。它提供将 JMS 提供程序与 Java EE 应用程序服务器集成的标准化方式,并提供与企业系统交换数据的框架,其中数据是以消息形式传输的。

名称JNDI 名称目标 JNDI 名称认证别名之外的所有激活规范配置属性都会被相关联 EJB 2.1 或更高版本消息驱动的 Bean 的部署描述符中指定的相应激活配置属性覆盖。对于 EJB 2.0 消息驱动的 Bean,目标类型预订耐久性确认方式消息选择器属性被部署描述符中的对应元素覆盖。对于任一 Bean 类型,目标 JNDI 名称属性可被消息驱动的 Bean 绑定中指定的值覆盖。

激活规范属性会影响缺省消息传递提供程序如何选择消息驱动的 Bean 应用程序连接至的消息传递引擎。缺省情况下,该环境自动将应用程序连接至总线上的可用消息传递引擎。但是,可指定额外的配置详细信息来影响连接进程;例如,标识特殊引导服务器、将连接范围限制为某个可用消息传递引擎子组、改进可用性或性能或者确保顺序处理接收的消息。 有关执行此操作的原因和方式的信息,请参阅“JMS 应用程序连接至总线上的消息传递引擎的方式”主题。

“配置”选项卡

“配置”选项卡显示此对象的配置属性。这些属性值将被保存下来,即使停止并重新启动运行时环境也是如此。请参阅信息中心任务描述以获取关于如何将配置更改应用于运行时环境的信息。

常规属性

作用域

指定使应用程序服务器可使用此资源对象的最高拓扑级别。

信息
必需
数据类型 字符串

提供程序

指定 JMS 提供程序,它将启用基于 Java 消息服务 (JMS) 的异步消息传递。它提供了 J2EE 连接工厂,用于为特定 JMS 队列或主题目标创建连接。JMS 提供程序管理对象用于为相关 JMS 提供程序管理 JMS 资源。

信息
必需
数据类型 字符串

名称

资源的必需显示名称。

信息
必需
数据类型 字符串

JNDI 名称

资源的 JNDI 名称。

输入在与此激活规范相关联的消息驱动的 Bean 绑定中指定的 JNDI 名称。
信息
必需
数据类型 字符串

描述

资源的可选描述。

信息
必需
数据类型 文本区域

目标类型

消息驱动的 Bean 使用队列还是主题目标。

信息
必需
数据类型 下拉列表
范围
队列
消息驱动的 Bean 使用 JMS 队列。请在目标 JNDI 名称属性中指定 JMS 队列的 JNDI 名称。

主题
消息驱动的 Bean 使用 JMS 主题。请在目标 JNDI 名称属性中指定 JMS 主题的 JNDI 名称。

目标 JNDI 名称

目标的 JNDI 名称。

输入消息驱动的 Bean 用于在 JNDI 名称空间中查找 JMS 目标的 JNDI 名称。

目标类型 属性上选择目标的类型。

对于支持 JMS 的资源适配器,您必须将 javax.jms.Destinations 与某个激活规范相关联,以便该资源适配器能够为来自 JMS 目标的消息提供消息。在这种情况下,管理员应配置用于实现 javax.jms.Destination 接口的 J2C 受管对象并将其绑定至 JNDI。

可将 J2C 受管对象配置为使用实现 setDestination(javax.jms.Destination) 方法的 ActivationSpec 类。在这种情况下,可指定目标 JNDI 名称(即,实现 javax.jms.Destination 的 J2C 受管对象的 JNDI 名称)。

在应用程序启动期间,当激活规范作为端点激活的一部分初始化时,服务器使用目标 JNDI 名称来查找目标受管对象,然后在激活规范实例上设置该对象。

信息
必需
数据类型 字符串

消息选择器

用于确定消息驱动的 Bean 所接收消息的 JMS 消息选择器。值是用于选择一小部分可用消息的字符串。语法基于由 JMS 规范描述的 SQL 92 条件表达式语法的子集。有关更多信息,请参阅信息中心。

例如:
JMSType='car' AND color='blue' AND weight>2500

选择器字符串可引用 JMS 消息头中的字段和消息属性中的字段。消息选择器不能引用消息体值。

Null 值(空字符串)表明没有消息选择器用于消息使用者。

信息
必需
数据类型 字符串

总线名

要连接的总线的名称。

输入要连接的服务集成总线的名称。这必须是定义 目标 JNDI 名称 属性所标识的目标的总线的名称。
信息
必需
数据类型 定制

确认方式

会话如何确认其接收的任何消息。

确认方式表明应该如何确认消息驱动的 Bean 接收的消息。
注:

删除消息时发送确认。

如果您有非事务性消息驱动的 Bean,那么系统会在 Bean 启动或完成时删除消息。如果 Bean 生成异常,因而无法完成时,系统会采取以下某项操作:
  • 如果系统配置为在 Bean 完成时删除消息,那么会将消息派遣到 Bean 的新实例,从而使消息有进行处理的其他机会。
  • 如果系统配置为在 Bean 启动时删除消息,那么该消息会丢失。

如果服务质量设置为最大努力非持久,那么在 Bean 启动时删除消息。对于所有其他服务质量,在 Bean 完成时删除消息。

信息
必需
数据类型 下拉列表
范围
自动确认
会话自动确认消息的传递。

复制成功自动确认
会话迟延确认消息的传递,这可以提高性能,但会导致消息驱动的 Bean 多次接收消息。

目标

标识了一组消息传递引擎的目标的名称。请使用“目标类型”属性来指定目标类型。

信息
必需
数据类型 字符串

目标类型

Target 属性中指定的目标的类型。

信息
必需
数据类型 下拉列表
范围
总线成员名称
总线成员的名称。此选项检索由指定的总线成员(应用程序服务器或服务器集群)主管的活动消息传递引擎。

定制消息传递引擎组名
一组构成自声明集群的定制消息传递引擎的名称。此选项检索已向所指定定制组注册的活动消息传递引擎。

消息传递引擎名称
消息传递引擎的名称。此选项检索可用于到达所指定消息传递引擎的可用端点。

目标重要性

此属性指定目标组的重要性。

信息
必需
数据类型 下拉列表
范围
首选
最好从目标组中选择消息传递引擎。如果目标组包含可用的消息传递引擎,那么将选择该消息传递引擎。如果目标组未包含可用的消息传递引擎,但在同一服务集成总线中有可用的消息传递引擎,那么将选择目标组外部的消息传递引擎。

必需
必须从目标组中选择消息传递引擎。如果目标组包含可用的消息传递引擎,那么将选择该消息传递引擎。如果目标组未包含可用的消息传递引擎,那么连接过程将失败。

目标入站传输链

应用程序连接至不在该应用程序所在进程中的消息传递引擎时应使用的入站传输链的名称。如果选择另一个进程中的消息传递引擎,那么仅当该消息传递引擎在运行所指定入站传输链的服务器中时,才可以建立连接。有关更多信息,请参阅信息中心。

如果所选消息传递引擎与应用程序在同一服务器中,那么将建立直接进程内连接并忽略此传输链属性。

传输链表示在服务器中工作的网络协议堆栈。您指定的名称必须是主管消息传递引擎的服务器中可用的传输链之一,就像服务器 -> 服务器类型 -> WebSphere Application Server -> server_name -> [服务器消息传递] 消息传递引擎入站传输面板上列示的那样。系统提供了下列传输链,但您可以在此面板上定义自己的传输链。
InboundBasicMessaging
这是使用标准 TCP/IP 连接 (JFAP-TCP/IP) 的面向连接的协议。此协议支持两阶段事务(远程 XA)流,因此在客户机或服务器系统上运行的消息生产者或使用者可以参与此客户机或服务器系统上管理的全局事务。XA 流的具体用途是,支持从一个服务器上运行的应用程序访问第二个服务器上的消息传递引擎,进行此访问的原因可能是第一个服务器没有合适的消息传递引擎。如果使用远程 XA 流,那么在该应用程序的本地位置必须要有可用的事务协调程序。
InboundSecureMessaging
这是合并在 SSL 中的 InboundBasicMessaging 协议。
有关将此属性与连接工作负载管理的其他连接工厂属性配合使用的更多信息,请参阅“与总线的 JMS 连接的管理属性”主题。
信息
必需
数据类型 字符串

提供程序端点

用于连接至引导服务器的端点三元组(语法为“主机名:端口号:链名”)的列表,以逗号分隔各个端点三元组。例如,Merlin:7276:BootstrapBasicMessaging,Gandalf:5557:BootstrapSecureMessaging。

除非在本地单元中找不到指定总线,否则不会使用提供程序端点。消息驱动的 Bean (MDB) 应用程序会先尝试连接至本地单元中的指定总线。如果此尝试失败,那么提供程序端点用于允许应用程序使用来自远程单元的消息。

如果未指定主机名,那么 localhost 将用作缺省值。

如果未指定端口号,那么 7276 用作缺省值。

如果未指定协议,那么预定义链(如 BootstrapBasicMessaging)用作缺省值。

信息
必需
数据类型 文本区域

最大批处理大小

在一个消息批次中能够从消息传递引擎接收的最大消息数。

单个批次中连续传递给单个消息驱动的 Bean 实例的最大消息数。与设置为复制成功自动确认确认方式配合使用时,消息批处理尤其能够提高性能。如果必须在失败传递之间保留消息顺序,请将批次大小设置为 1
信息
必需
数据类型 整型
范围 1 到 2147483647

每个端点的最大并发 MDB 调用数

以并发方式将消息传递至的端点的最大数目。

增加此数字可提高性能,但是可增加任一时刻使用的线程数。如果必须在失败传送间保留消息排序,那么应将最大并行端点数设置为 1。仅当在其中使用消息驱动的 Bean 的目标并非分区目标时,消息排序才适用。分区目标用于集群中的工作负载分担场景。
信息
必需
数据类型 整型
范围 1 到 2147483647

在重复的消息失败时自动停止端点

这些参数使端点能够在连续失败消息数目达到指定限制时自动停止。这可帮助区分是消息自身问题(一个或两个消息失败)还是系统资源问题(导致多个连续失败消息)。

问题并非由未能处理的消息导致时,停止端点可以减少不必要地移至异常目标的消息的数目。

端点自动停止时,它在管理控制台面板上的状态显示为红色。必须通过单击恢复手动重新启动该端点。

在端点重新启动之后,就会重试导致端点停止的所有失败消息。如果消息仍然失败,那么会将他们移至异常目标(如果已配置该目标)。

启用

启用根据下面的参数自动停止端点。

信息
必需
数据类型 布尔值

连续失败消息阈值

连续失败消息数目达到配置的限制时,端点会自动停止。由于 MDB 中的处理依赖性,所处理的实际消息数目可能会超过此值。

除非启用 在重复的消息失败时自动停止端点 属性,否则不会启用此属性。

信息
必需
数据类型 整型

失败消息重试之间的延迟

MDB 无法处理但尚未达到其最大失败传递限制的任何消息将仅在此时间段(以毫秒计)过去后才会重试。除非将连续失败阈值和最大并行度设置为 1,否则在此时间段内可能会尝试传送其他消息。

设置失败消息重试之间的延迟可减少 MDB 停止前不必要地移至异常目标的消息的数目。为尽量减少移动的消息的数目,应将此延迟设置为高于消息达到目标之间的期望时间间隔的值。

除非启用 在重复的消息失败时自动停止端点 属性,否则不会启用此属性。

信息
必需
数据类型 整型
范围 时间以毫秒计。值 0 指示重试之间没有延迟。

预订持久性

JMS 主题预订是持续预订还是非持续预订。

通常,同一时刻仅一个应用程序可以有特定持久预订的使用者。该属性可以使您重设该行为,以启用持久预订来拥有多个同时的使用者。
信息
必需
数据类型 下拉列表
范围
持久
当消息驱动的 Bean 不可用时,消息传递提供程序存储消息;当消息驱动的 Bean 再次可用时,消息传递提供程序传递消息。

非持久
当消息驱动的 Bean 不可用时,消息传递提供程序不存储和重新传递消息。

预订名称

持久主题预订所需的预订名。在使用持久主题预订时,这是必填字段。

每个 JMS 持久预订由预订名称(在此属性上指定)标识。JMS 连接还具有一个关联的客户机标识(在客户机标识属性上指定),用来将连接及其对象与 JMS 提供程序为客户机维护的持久预订的消息列表相关联。

此预订名称在给定的客户机标识中必须唯一。

信息
必需
数据类型 字符串

客户机标识

使用此激活规范创建的所有连接上持久主题预订所需的 JMS 客户机标识。

指定的值是客户机(消息驱动的 Bean)的唯一标识。客户机标识用于将客户机连接与消息传递提供程序为客户机保留的消息(在持久预订中)列表相关联。当客户机在不可用后再次可用时,消息传递提供程序使用客户机标识重新传递为正确客户机存储的消息。
信息
必需
数据类型 字符串

持续预订点

一个消息传递引擎的名称,该消息传递引擎用于存储传递到根据此 JMS 激活规范创建的对象的持续预订的消息。在使用持久主题预订时,必须填写此字段。

管理员可通过此消息传递引擎的发布点管理持久预订的运行时状态。
信息
必需
数据类型 字符串

通过引用传递消息有效内容

发送大型对象消息或字节消息时,序列化、反序列化和复制消息有效内容的内存和处理器使用成本可能会很高。如果对连接工厂或激活规范启用通过引用传递消息有效内容属性,请通知缺省消息传递提供程序覆盖 JMS 1.1 规范并可能要减少或绕过此数据复制。
警告:
将定义这些属性所绕过的 JMS 规范的一部分,以确保消息数据完整性。 使用这些属性的任何 JMS 应用程序必须严格遵循“通过引用传递消息有效内容的原因及时间”主题中描述的规则,否则会有丢失数据完整性的风险。

使用此激活规范接收消息的应用程序必须遵循以下规则:

  • 该应用程序未修改从 JMS 对象消息获取的数据对象。该数据对象被视为只读对象。

启用后,通过此激活规范接收到的对象消息仅在绝对必要时才会让系统序列化其消息数据。应用程序必须将从这些消息获取的数据视为只读。

信息
必需
数据类型 布尔值

使用此激活规范重新发送最初接收的消息的应用程序必须遵循以下规则:

  • 应用程序可替换 JMS 对象消息中的数据对象,前提是尚未在消息中设置该数据对象。在消息中设置数据对象后,应用程序不会修改或替换该数据对象。
  • 应用程序只会通过使用对 writeBytes(byte[]) 的单次调用来替换 JMS 字节消息中的字节数组,前提是尚未在消息中设置字节数组。在消息中设置字节数组后,应用程序不会修改或替换该字节数组。

启用后,通过此激活规范转发的并且其有效内容已修改的对象/字节消息的数据在设置到消息中时不会被复制,并且系统仅在绝对必要时才会序列化消息数据。一旦数据设置到消息中,发送这类消息的应用程序就不能修改数据。

信息
必需
数据类型 布尔值

共享持久预订

控制是否在服务器集群成员的连接之间共享持续预订。

通常,同一时刻只能有一个会话具有特定持久预订的主题订户。此属性允许您重设此行为,以使持久预订能够同时有多个使用者,服务器集群中每个应用程序服务器上具有一个。

应仅在支持服务器集群的 WebSphere Application Server 环境中将此选项从其缺省值进行更改。

信息
必需
数据类型 下拉列表
范围
在集群中
允许从服务器集群内建立连接时共享持久预订。

总是共享
可以在各连接之间共享持久预订。

从不共享
从不在各连接之间共享持久预订。

与 CMP 共享数据源

允许 JMS 与容器管理的持久性 (CMP) 实体 Bean 共享连接。

此选项用作任务的一部分,以使容器管理的持久性 (CMP) 实体 Bean 能够共享消息传递引擎的数据存储器所使用的数据库连接。此选项估计能够将整体消息吞吐量的潜在性能提高 15%,但只能用于连接到消息传递引擎所在应用程序服务器的实体 Bean。

有关使用此选项的更多信息,请参阅“启用 CMP 实体 bean 和消息传递引擎数据存储器以共享数据库连接”主题。

信息
必需
数据类型 布尔值

提前读取

预读是一种优化措施,即抢先将消息指定给使用者。此优化措施能够缩短满足使用者请求所耗用的时间。

指定给使用者的消息被锁定在服务器上,并且不能被此目标的任何其他使用者使用。指定给使用者但在该使用者关闭前未被使用的消息随后在服务器上被解锁,这样其他使用者就可以接收那些消息。

通过对 JMS 目标设置提前读取属性,可以对各个 JMS 目标覆盖此属性。

信息
必需
数据类型 下拉列表
范围
缺省值
消息传递提供程序抢先将消息指定给非持久预订和非共享持久预订的使用者。即,仅当只存在一个使用者时才启用提前读取优化功能。

已启用
消息传递提供程序抢先将消息指定给使用者。此优化措施能够缩短满足使用者请求所耗用的时间。

已禁用
消息传递提供程序不会抢先将消息指定给使用者。

始终激活所有服务器中的 MDB

仅当 MDB 应用程序在属于应用程序的目标总线的服务器上运行时,才使用此属性。MDB 在不属于目标总线的服务器上运行时,此属性不起作用。

如果 MDB 在属于目标总线的服务器上运行,那么启用此选项允许 MDB 应用程序处理消息,不管该服务器是否同时主管正在运行的消息传递引擎都是如此。如果未启用此选项,那么在未运行本地 ME 的服务器上的 MDB 应用程序不会处理消息。

对于连接至集群总线成员的 MDB 应用程序,还可使用此选项启用下列任一其他配置:
  • 集群中的所有服务器可从 MDB 应用程序接收消息以充分利用集群中的处理能力。
  • 一次只有一个服务器能从 MDB 应用程序接收消息以确保顺序处理消息。
要允许集群中的所有服务器从 MDB 应用程序接收消息,请选择此选项。为了一次仅允许一个服务器从 MDB 应用程序接收消息,请检查此选项是否未被选中并在目标上选择独占接收选项。

有关更多信息,请参阅“集群中的消息驱动的 Bean 的连接方式”主题。

信息
必需
数据类型 布尔值

重试时间间隔

尝试连接至消息传递引擎操作之间的延迟(以秒计),适合初始连接以及建立更好连接的任何后续尝试。

信息
必需
数据类型 整型
范围 1 到 2147483647

认证别名

J2C 认证别名的名称,此别名用于对服务集成总线连接进行组件管理的认证。

Java Platform Enterprise Edition (Java EE) 连接器体系结构 (JCA) 认证别名指定用于对 JMS 提供程序认证新连接创建操作的用户标识和密码。

如果使用认证别名字段,那么不得指定用户名和密码定制属性。设置为应用程序部署的一部分的认证别名属性优先于对激活规范管理对象设置的属性。

仅当认证别名被写至采用未加密格式的文件中时(即使是为了事务恢复记录),才会使用安全服务来保护真正的用户名和密码。

在应用程序启动期间,当激活规范作为端点激活的一部分初始化时,服务器使用认证别名来从安全性检索真正的用户名和密码,然后在激活规范实例上设置该用户名和密码。

信息
必需
数据类型 下拉列表


文件名: SIBJMSActivationSpec_DetailForm.html