缺省消息传递提供程序统一连接工厂 [设置]

JMS 连接工厂用于创建与 JMS 目标的相关 JMS 提供程序的连接,以便进行点到点消息传递和发布/预订消息传递。请使用连接工厂管理对象来管理缺省消息传递提供程序的 JMS 连接工厂。

要在控制台中查看此页面,请单击下列其中一个操作途径:

  • 资源 -> JMS -> 连接工厂 -> factory_name
  • 资源 -> JMS -> JMS 提供程序 -> a_messaging_provider -> [其他属性] 连接工厂 -> factory_name
设置、浏览或更改 JMS 连接工厂的配置属性,以与缺省消息传递 JMS 提供程序配合使用。这些配置属性控制如何创建到关联的 JMS 队列和主题的连接。

缺省情况下,在服务器容器中使用此 JMS 连接工厂创建的连接(例如,与企业 Bean 的连接)将通过 Java Platform Enterprise Edition (Java EE) 连接器体系结构 (JCA) 连接池来进行共用。通过在管理控制台面板的“其他属性”部分中选择连接池属性,可以修改此连接工厂的连接池设置。

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

“配置”选项卡

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

常规属性

作用域

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

信息 值
必需 否
数据类型 字符串

提供程序

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

信息 值
必需 否
数据类型 字符串

名称

资源的必需显示名称。

信息 值
必需 是
数据类型 字符串

JNDI 名称

资源的 JNDI 名称。

信息 值
必需 是
数据类型 字符串

描述

资源的可选描述。

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

类别

对资源进行分类或分组时使用的可选类别字符串。

信息 值
必需 否
数据类型 字符串

总线名

要连接的服务集成总线的名称。

如果应用程序将建立与外部总线的连接,请输入本地总线的名称。
信息 值
必需 是
数据类型 定制

目标

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

执行连接相近搜索以选择适当的消息传递引擎之前,应选择属于指定目标组的消息传递引擎集合。然后,将连接相近搜索限制为仅对这些消息传递引擎进行。如果未指定目标组(缺省情况),那么在连接邻近度搜索期间将考虑总线中的所有消息传递引擎。

例如,如果将 目标类型 属性设置为 总线成员名称,那么 目标 属性会指定可从中选择合适的消息传递引擎的总线成员名称。

信息 值
必需 否
数据类型 字符串

目标类型

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

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

要指定非集群总线成员,必须将 Target 属性设置为 <Node01>.<server1>,例如 Node01.server1。对于集群总线成员来说,必须将 Target 属性设置为集群名。

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

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

目标重要性

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

此属性定义是否将连接邻近度搜索限制为仅对目标组中的消息传递引擎进行。
信息 值
必需 否
数据类型 下拉列表
范围
首选
最好从目标组中选择消息传递引擎。如果目标组包含可用的消息传递引擎,那么将选择该消息传递引擎。如果目标组未包含可用的消息传递引擎,但在同一服务集成总线中有可用的消息传递引擎,那么将选择目标组外部的消息传递引擎。
注: 即使首选目标可用,也可能会返回与非首选目标的连接。当对连接工厂启用了连接池时(缺省情况下,就是在服务器环境中使用 JMS 连接工厂)就会发生这种情况:
  • 当首选消息传递引擎不可用时,可以创建与非首选消息传递引擎的连接,并将该连接存储在连接池中。
  • 当应用程序下一次请求连接时就会接收到此合用的连接,即使首选消息传递引擎后来已变得可用,情况也将如此。
可修改连接池设置以定期废弃池中所有未使用的连接。清空连接池后,如果存在首选消息传递引擎,那么会与其建立连接。例如,将 ReapTime、AgedTimeout 和 UnusedTimeout 设置为 300 秒,并将 PurgePolicy 设置为 EntirePool。这会导致每 5 分钟就会刷新连接池一次,刷新之后,应用程序将选择首选消息传递引擎(如果有首选消息传递引擎可用的话)。
必需
必须从目标组中选择消息传递引擎。如果目标组包含可用的消息传递引擎,那么将选择该消息传递引擎。如果目标组未包含可用的消息传递引擎,那么连接过程将失败。

目标入站传输链

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

这些传输链指定可以用来与客户机应用程序所连接的应用程序服务器通信的通信协议。

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

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

提供程序端点

用于连接至引导服务器的端点三元组(语法为“主机名:端口号:链名”)的列表,以逗号分隔各个端点三元组。例如,Merlin:7276:BootstrapBasicMessaging,Gandalf:5557:BootstrapSecureMessaging。如果未指定主机名,那么缺省值为 localhost。如果未指定端口号,那么缺省值为 7276。如果未指定链名,那么缺省值为 BootstrapBasicMessaging。有关更多信息,请参阅信息中心。

仅当在应用程序服务器外部运行的客户机应用程序或者另一单元中服务器上的应用程序要使用此连接工厂来连接到对此连接工厂指定的目标服务集成总线时,才需要修改此属性。

为了使用缺省消息传递提供程序的 JMS 目标,应用程序将连接到目标服务集成总线上目标被指定给的消息传递引擎。例如,JMS 队列被指定给服务集成总线上的队列目标。

在应用程序服务器外部运行的客户机应用程序 - 例如,在客户机容器中或在 WebSphere® Application Server 环境外部运行 - 不能直接在目标总线中找到合适的消息传递引擎来连接。同样,在一个单元中的服务器上运行以连接到另一单元中的目标总线的应用程序在目标总线中无法直接找到要连接的适当消息传递引擎。

在这些方案中,客户机(或者另一总线中的服务器)必须通过作为目标总线成员的引导服务器来完成引导过程。引导服务器是运行 SIB 服务的应用程序服务器,但它不需要运行任何消息传递引擎。引导服务器将选择正在应用程序服务器中运行并且支持必需的目标传输链的消息传递引擎。为了能够执行引导过程,必须在客户机使用的连接工厂中配置一个或多个提供程序端点。

引导服务器使用特定的端口和引导传输链。该端口是主管链路远程端的消息传递引擎的 SIB_ENDPOINT_ADDRESS(如果启用了安全性,那么为 SIB_ENDPOINT_SECURE_ADDRESS)。该端口与主机名一起构成引导服务器的端点地址。

应用程序使用的 JMS 连接工厂的属性控制着对适当消息传递引擎的选择以及应用程序连接至所选消息传递引擎的方式。
  • 如果未提供安全凭证,那么缺省情况下
    • 如果未指定主机,那么将使用 localhost
    • 如果未指定端口,那么将使用端口 7276
    • 如果未指定引导通道链,那么将使用名为 BootstrapBasicMessaging 的引导传输链
  • 如果提供了安全凭证,那么缺省情况下
    • 如果未指定主机,那么将使用 localhost
    • 如果未指定端口,那么将使用端口 7286
    • 如果未指定引导通道链,那么将使用名为 BootstrapBasicMessaging 的引导传输链
[IBM i] 注: 对于 IBM® i 平台,必须(至少)将缺省主机名从 localhost 更改为 your.server.name。

如果要让应用程序使用具有另一个端点地址的引导服务器,那么需要对客户机应用程序使用的 JMS 连接工厂的提供程序端点属性指定所需的端点地址。您可以指定一个或多个引导服务器端点地址。

必须在每个由应用程序服务器外部的应用程序使用的 JMS 连接工厂中指定引导服务器端点地址。为了避免必须指定过多的引导服务器,您可以提供几台具有高可用性的服务器来作为专用引导服务器。然后,您只需要对每个连接工厂指定少量的引导服务器。

注: 配置与非缺省引导服务器的连接时,请对端点地址指定所需的值并使用冒号作为分隔符。
例如,对于主机 boothost1 上分配了非安全端口 7278 并使用缺省传输链 BootstrapBasicMessaging 的服务器:
boothost1:7278:BootstrapBasicMessaging
或
boothost1:7278
而对于主机 boothost2 上分配了安全端口 7289 并使用预定义传输链 BootstrapTunneledSecureMessaging 的服务器:
boothost2:7289:BootstrapTunneledSecureMessaging
端点地址的语法如下所示:
[ [host_name] [ ":" [port_number] [ ":" chain_name] ] ]
其中:
host_name
是运行服务器的主机的名称。可以指定 IP 地址。对于 IPv6 地址,请将 host_name 括在方括号 ([]) 中,如以下示例所示:
[2002:914:fc12:179:9:20:141:42]:7276:BootstrapBasicMessaging
. 如果未指定值,那么缺省值是 localhost。
[IBM i] 注: 对于 IBM i 平台,必须(至少)将缺省主机名从 localhost 更改为 your.server.name。
port_number
如果指定了此参数,那么它是主管链路远程端的消息传递引擎的下列其中一个地址:
  • 如果未启用安全性,那么为 SIB_ENDPOINT_ADDRESS
  • 对于安全连接,如果启用了安全性,那么为 SIB_ENDPOINT_SECURE_ADDRESS。

如果未指定 port_number,那么缺省值是 7276。

要使用管理控制台查找其中任一值,请单击服务器 -> 服务器类型 -> WebSphere Application Server -> server_name -> [通信] 端口。

chain_name
是用来连接至引导服务器的预定义引导传输链的名称。如果未指定此名称,那么将使用缺省值 BootstrapBasicMessaging。

提供了下列预定义引导传输链:

BootstrapBasicMessaging
此传输链与服务器传输链 InboundBasicMessaging (JFAP-TCP/IP) 相对应
BootstrapSecureMessaging
此传输链与服务器传输链 InboundSecureMessaging (JFAP-SSL-TCP/IP) 相对应
BootstrapTunneledMessaging
在可以使用此引导传输链之前,必须在引导服务器上定义相应的服务器传输链。(请参阅服务器 -> 服务器类型 -> WebSphere Application Server -> server_name -> [服务器消息传递] 消息传递引擎入站传输。)此传输链将建立 JFAP 隧道并使用 HTTP 包装器。
BootstrapTunneledSecureMessaging
在可以使用此引导传输链之前,必须在引导服务器上定义相应的服务器传输链。(请参阅服务器 -> 服务器类型 -> WebSphere Application Server -> server_name -> [服务器消息传递] 消息传递引擎入站传输。)此传输链将建立 JFAP 隧道并使用 HTTP 包装器。

指定 host_name : chain_name 而不是 host_name : : chain_name(带有两个冒号)是不正确的。可以不输入任何内容,也可以输入以下任何内容:"a"、"a:"、":7276"、"::chain" 等等。如果未指定值,就会应用缺省值,但您必须用“:”将各个字段分隔开。

如果要提供多台引导服务器,那么标识所有必需的端点地址。请用逗号字符将各个端点地址分隔开。例如,要使用先前示例中的服务器:
boothost1:7278:BootstrapBasicMessaging, 
  boothost2:7289:BootstrapTunneledSecureMessaging, 
  [2002:914:fc12:179:9:20:141:42]:7276:BootstrapBasicMessaging
信息 值
必需 否
数据类型 文本区域

连接邻近度

可接受连接请求的消息传递引擎与引导消息传递引擎的邻近度。

当客户机发出客户机连接请求时,将根据以下逻辑对必需的总线进行处理:
  • 如果指定了目标组,那么连接到第一个满足下列目标类型条件的消息传递引擎:
    • 服务器 在同一服务器中查找消息传递引擎。
    • 集群 在同一服务器中查找消息传递引擎,然后在同一集群中的其他服务器上进行查找。
    • 主机 在同一服务器中查找消息传递引擎,然后在同一集群中的其他服务器上进行查找,然后在同一主机中的其他服务器上进行查找。
    • 总线 在同一服务器中查找消息传递引擎,然后在同一集群中的其他服务器上进行查找,然后在同一主机中的其他服务器上进行查找,然后在同一总线中查找任何其他消息传递引擎。
  • 如果未指定目标组,或者指定了目标组但是找不到合适的消息传递引擎,并且目标重要性为首选,那么连接到第一个满足下列目标类型条件的消息传递引擎:
    • 服务器 在同一服务器中查找消息传递引擎。
    • 集群 连接失败。
    • 主机 在同一服务器中查找消息传递引擎,然后在同一主机中的其他服务器上进行查找。
    • 总线 在同一服务器中的目标组中查找消息传递引擎,然后在同一主机中的其他服务器上进行查找,然后在同一总线中查找任何其他消息传递引擎。

有关将此属性与连接工作负载管理的其他连接工厂属性配合使用的更多信息,请参阅“与总线的 JMS 连接的管理属性”主题。

信息 值
必需 否
数据类型 下拉列表
范围
总线
可以连接至同一总线中的多个消息传递引擎。

集群
可以连接至同一服务器集群中的多个消息传递引擎。

主机
可以连接至同一主机中的多个消息传递引擎。

服务器
可以连接至同一应用程序服务器中的多个消息传递引擎。

客户机标识

使用此连接工厂创建的所有连接上持久主题预订所需的 JMS 客户机标识。如果应用程序正在执行持久发布/预订,那么此标识是必需的。

信息 值
必需 否
数据类型 字符串

持续预订点

一个消息传递引擎的名称,该消息传递引擎用于存储传递到根据此 JMS 连接工厂创建的对象的持续预订的消息。

信息 值
必需 否
数据类型 定制

非持久消息可靠性

对使用此连接工厂发送的非持久 JMS 消息应用的可靠性。

您可以将 JMS 应用程序发送的消息的目标的传递可靠性选项更改为非持久。缺省值为快速非持久,但您可以选择多个其他选项,包括那些具有持久特征的选项。其中,保证持久性最可靠。有关更多信息,请参阅“消息可靠性级别 - JMS 传送方式及服务集成服务质量”主题。
信息 值
必需 否
数据类型 下拉列表
范围
最大努力非持久
当消息传递引擎停止或发生故障时,将废弃消息。如果用于发送消息的连接变为不可用或者系统资源不足,也可能会废弃消息。

易捷非持久
当消息传递引擎停止或发生故障时,将废弃消息。如果用于发送消息的连接变为不可用,也可能会废弃消息。

可靠非持久
当消息传递引擎停止或发生故障时,将废弃消息。

可靠持久
当消息传递引擎发生故障时,可能会废弃消息。

有保证的持久
不废弃消息。

作为总线目标
使用为总线目标配置的传递选项。

持久消息可靠性

对使用此连接工厂发送的持久 JMS 消息应用的可靠性。

您可以将 JMS 应用程序发送的消息的目标的传递可靠性选项更改为持久。缺省值为可靠持久,但您可以选择多个其他选项,包括那些具有非持久特征的选项,其中最大努力非持久最不可靠。有关更多信息,请参阅“消息可靠性级别 - JMS 传送方式及服务集成服务质量”主题。
要点: 如果将 JMS 应用程序发送的消息的传递可靠性选项由其中一个持久消息可靠性选项(保证持久性和可靠持久)更改为其中一个非持久消息可靠性选项(最大努力非持久、快速非持久和可靠非持久),那么在某些情况下有丢失消息的风险。例如,当服务器重新启动时,或者当工作负载繁重时,就有丢失消息的风险。
信息 值
必需 否
数据类型 下拉列表
范围
最大努力非持久
当消息传递引擎停止或发生故障时,将废弃消息。如果用于发送消息的连接变为不可用或者系统资源不足,也可能会废弃消息。

易捷非持久
当消息传递引擎停止或发生故障时,将废弃消息。如果用于发送消息的连接变为不可用,也可能会废弃消息。

可靠非持久
当消息传递引擎停止或发生故障时,将废弃消息。

可靠持久
当消息传递引擎发生故障时,可能会废弃消息。

有保证的持久
不废弃消息。

作为总线目标
使用为总线目标配置的传递选项。

提前读取

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

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

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

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

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

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

临时队列名称前缀

使用此连接工厂的应用程序创建的临时队列的名称前缀,限长 12 个字符。

信息 值
必需 否
数据类型 字符串

临时主题名称前缀

使用此连接工厂的应用程序创建的临时主题的名称前缀,限长 12 个字符。

信息 值
必需 否
数据类型 字符串

共享持久预订

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

通常,同一时刻只能有一个会话具有特定持久预订的主题订户。该属性可以使您重设该行为,以启用持久预订来拥有多个同时的使用者。
信息 值
必需 否
数据类型 下拉列表
范围
在集群中
允许从服务器集群内建立连接时共享持久预订。

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

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

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

发送大型对象消息或字节消息时,序列化、反序列化和复制消息有效内容的内存和处理器使用成本可能会很高。 如果对连接工厂或激活规范启用通过引用传递消息有效内容属性,请通知缺省消息传递提供程序覆盖 JMS 1.1 规范并可能要减少或绕过此数据复制。

警告:
将定义这些属性所绕过的 JMS 规范的一部分,以确保消息数据完整性。 使用这些属性的任何 JMS 应用程序必须严格遵循“通过引用传递消息有效内容的原因及时间”主题中描述的规则,否则会有丢失数据完整性的风险。

使用此连接工厂发送消息的应用程序必须遵循以下规则:

  • 应用程序不会修改 JMS 对象消息中包含的数据对象。
  • 应用程序通过使用对 writeBytes(byte[]) 的单次调用来填充 JMS 字节消息,并且在消息中设置字节数组后不会对其进行修改。

启用后,连接至总线的消息产生应用程序使用此连接工厂发送的对象/字节数消息在设置时不会复制他们的数据,并且系统仅在绝对必要时才会序列化消息数据。一旦数据设置到消息中,发送这类消息的应用程序就不能修改数据。

信息 值
必需 否
数据类型 布尔值

使用此连接工厂接收消息的应用程序必须遵循以下规则:

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

启用后,连接至此连接工厂的消息使用应用程序所接收的对象消息仅在绝对必要时才会让系统序列化其消息数据。应用程序必须将从这些消息获取的数据视为只读。

信息 值
必需 否
数据类型 布尔值

记录缺少的事务上下文

获取连接时,容器是否记录缺少事务上下文。

Java EE 编程模型表明连接应该总是具有事务上下文。然而,某些应用程序没有与相关联的事务上下文。

如果选择此属性,那么将记录所创建的没有事务上下文的连接。

信息 值
必需 否
数据类型 布尔值

管理高速缓存的句柄

容器是否应该跟踪高速缓存的句柄(句柄保存在 Bean 的实例变量中)。

选择此选项来跟踪处理管理,对于调试很有用。然而,如果在运行时使用,那么跟踪处理可能导致性能大幅下降。
信息 值
必需 否
数据类型 布尔值

与 CMP 共享数据源

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

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

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

信息 值
必需 否
数据类型 布尔值

用于 XA 恢复的认证别名

指定别名,在进行事务恢复时,连接工厂将使用此别名来向 EIS 认证。

选择此别名,在事务恢复处理期间使用。

此属性提供已对 WebSphere Application Server 定义的 JCA 认证数据条目别名的列表。您可以选择在 XA 恢复处理期间用来进行认证的数据条目别名。

如果已对相关联的服务集成总线启用了安全性,那么请选择指定了用于进行 XA 恢复的用户标识和密码的别名,该别名在 WebSphere Application Server 的用户注册中心中有效。如果启用了总线安全性并且将要使用 XA 事务,那么必须设置此属性。

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

映射配置别名

指定此连接工厂使用的 Java 认证和授权服务 (JAAS) 映射配置的别名。

仅当组件资源引用上没有 loginConfiguration 时,才会使用此字段。登录配置的规范以及组件资源引用的关联属性确定当资源认证值为“容器”时容器管理的认证策略。如果指定了 DefaultPrincipalMapping 登录配置,那么相关联的属性将是一个 JAAS - J2C 认证数据条目别名。请参阅相关项 JAAS - J2C 认证数据条目以定义新的别名。

信息 值
必需 否
数据类型 下拉列表
容器管理的认证别名

此别名指定用户标识和密码,他们将在进行容器管理的认证时用于认证与 JMS 提供程序的连接。仅在 res-auth 值是 container 并且部署应用程序时未设置认证别名的情况下才会使用此设置。

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

其他属性

连接池属性
连接池设置的可选集合。


文件名: SIBJMSConnectionFactory_DetailForm.html