modifySIBJMSActivationSpec 命令
使用 modifySIBJMSActivationSpec 命令在特定范围更改缺省消息传递提供程序的 JMS 激活规范的属性。
要运行该命令,请使用 wsadmin 脚本编制客户机的 AdminTask 对象。
wsadmin
脚本编制客户机通过 Qshell 运行.
有关更多信息,请参阅 使用 wsadmin 脚本编制配置 Qshell 以运行 WebSphere 脚本.
- 要获取 Jython 中可用服务集成总线 JMS 命令的列表以及每个命令的简要描述,请在
wsadmin 提示符处输入以下命令:
print AdminTask.help('SIBJMSAdminCommands')
- 要获取有关给定命令的总体帮助,请在 wsadmin 提示符处输入以下命令:
print AdminTask.help('command_name')
AdminConfig.save()
用途
该命令更改 JMS 激活规范的属性。
目标对象
要在其中修改 JMS 激活规范的缺省消息传递提供程序的范围。
必需参数
无。
可选参数
- -name
- 指定给此激活规范的管理名称。
- -jndiName
- 在与此激活规范相关联的消息驱动的 Bean 的绑定中指定的 JNDI 名称。
- -description
- 激活规范的可选描述。
- -destinationType
- 使用此参数来确定消息驱动的 Bean 是使用 JMS 队列还是 JMS 主题。选择下列其中一个值:
- 队列
- 消息驱动的 Bean 使用 JMS 队列。请在目标 JNDI 名称属性中指定 JMS 队列的 JNDI 名称。
- 主题
- 消息驱动的 Bean 使用 JMS 主题。请在目标 JNDI 名称属性中指定 JMS 主题的 JNDI 名称。
- -destinationJndiName
- 消息驱动的 Bean 使用的目标 JMS 队列或主题的 JNDI 名称。
- -destinationLookup
- 消息驱动的 Bean 使用的目标 JMS 队列或主题的 JNDI 名称。目标 JNDI 名称和目标查找名称参数的用途相同,都是用来在配置中存储目标 JNDI 名称。虽然这两个字段都不是必需的,但您必须确保至少其中一个字段具有值。当 destinationLookup 和 destinationJndiName 参数都具有值时,destinationLookup 参数优先于 destinationJndiName 参数。
- -connectionFactoryLookup
- 连接工厂查找的 JNDI 名称。
- -messageSelector
- string
- -busName
- 输入与其建立连接的服务集成总线的名称。它必须是对其定义 -destinationJndiName 属性所标识的目标的总线名称。
- -acknowledgeMode
- 确认方式表明应该如何确认消息驱动的 Bean 接收的消息。选择下列其中一个值:
- 自动确认
- 会话自动确认消息的传递。
- 复制成功自动确认
- 会话迟延确认消息的传递,这可以提高性能,但会导致消息驱动的 Bean 多次接收消息。
- -target
- -targetType
- -target 属性中命名的类型。选择下列其中一个值:
- 总线成员名称
- 总线成员的名称。此选项检索由指定的总线成员(应用程序服务器或服务器集群)主管的活动消息传递引擎。
- 定制消息传递引擎组名
- 一组构成自声明集群的定制消息传递引擎的名称。此选项检索已向所指定定制组注册的活动消息传递引擎。
- 消息传递引擎名称
- 消息传递引擎的名称。此选项检索可用于到达所指定消息传递引擎的可用端点。
- -targetSignificance
- 选择下列其中一个值:
- 首选
- 最好从目标组中选择消息传递引擎。如果目标组包含可用的消息传递引擎,那么将选择该消息传递引擎。如果目标组未包含可用的消息传递引擎,但在同一服务集成总线中有可用的消息传递引擎,那么将选择目标组外部的消息传递引擎。
- 必需
- 必须从目标组中选择消息传递引擎。如果目标组包含可用的消息传递引擎,那么将选择该消息传递引擎。如果目标组未包含可用的消息传递引擎,那么连接过程将失败。
- -targetTransportChain
如果所选消息传递引擎与应用程序在同一服务器中,那么将建立直接进程内连接并忽略此传输链属性。
传输链表示在服务器中工作的网络协议堆栈。您指定的名称必须是主管消息传递引擎的服务器中可用的传输链之一,就像面板上列示的那样。系统提供了下列传输链,但您可以在此面板上定义自己的传输链。- InboundBasicMessaging
- 这是使用标准 TCP/IP 连接 (JFAP-TCP/IP) 的面向连接的协议。此协议支持两阶段事务(远程 XA)流,因此在客户机或服务器系统上运行的消息生产者或使用者可以参与此客户机或服务器系统上管理的全局事务。XA 流的具体用途是,支持从一个服务器上运行的应用程序访问第二个服务器上的消息传递引擎,进行此访问的原因可能是第一个服务器没有合适的消息传递引擎。如果使用远程 XA 流,那么在该应用程序的本地位置必须要有可用的事务协调程序。
- InboundSecureMessaging
- 这是合并在 SSL 中的 InboundBasicMessaging 协议。
- -providerEndPoints
- 使用 host_name:port_number:chain_name
语法的端点三元组的逗号分隔列表,用于连接至引导服务器。例如,Merlin:7276:BootstrapBasicMessaging,Gandalf:5557:BootstrapSecureMessaging。
除非在本地单元中找不到指定总线,否则不会使用提供程序端点。MDB 应用程序先尝试连接至本地单元中的指定总线。如果此尝试失败,那么提供程序端点用于允许应用程序使用来自远程单元的消息。
如果未指定主机名,那么 localhost 将用作缺省值。
如果未指定端口号,那么 7276 用作缺省值。
如果未指定协议,那么预定义链(如 BootstrapBasicMessaging)用作缺省值。
- -authenticationAlias
-
Java™ Platform Enterprise Edition (Java EE) 连接器体系结构 (JCA) 认证别名指定用于对 JMS 提供程序认证新连接创建操作的用户标识和密码。
- -maxBatchSize
- 单个批次中连续传递给单个消息驱动的 Bean 实例的最大消息数。与设置为复制成功自动确认的确认方式配合使用时,消息批处理尤其能够提高性能。如果必须在失败传递之间保留消息顺序,请将批次大小设置为 1。
- -maxConcurrency
-
增加此数字可提高性能,但是可增加任一时刻使用的线程数。如果必须在失败传送间保留消息排序,那么应将最大并行端点数设置为 1。仅当在其中使用消息驱动的 Bean 的目标并非分区目标时,消息排序才适用。分区目标用于集群中的工作负载分担场景。
- -subscriptionDurability
- 通常,同一时刻仅一个应用程序可以有特定持久预订的使用者。该属性可以使您重设该行为,以启用持久预订来拥有多个同时的使用者。选择下列其中一个值:
- 持久
- 当消息驱动的 Bean 不可用时,消息传递提供程序存储消息;当消息驱动的 Bean 再次可用时,消息传递提供程序传递消息。
- 非持久
- 当消息驱动的 Bean 不可用时,消息传递提供程序不存储和重新传递消息。
- -subscriptionName
-
每个 JMS 持久预订由预订名称(在此属性上指定)标识。JMS 连接还具有一个关联的客户机标识(在客户机标识属性上指定),用来将连接及其对象与 JMS 提供程序为客户机维护的持久预订的消息列表相关联。
此预订名称在给定的客户机标识中必须唯一。
- -clientId
-
指定的值是客户机(消息驱动的 Bean)的唯一标识。客户机标识用于将客户机连接与消息传递提供程序为客户机保留的消息(在持久预订中)列表相关联。当客户机在不可用后再次可用时,消息传递提供程序使用客户机标识重新传递为正确客户机存储的消息。
- -durableSubscriptionHome
-
管理员可通过此消息传递引擎的发布点管理持久预订的运行时状态。
- -shareDurableSubscriptions
通常,同一时刻只能有一个会话具有特定持久预订的主题订户。此属性允许您重设此行为,以使持久预订能够同时有多个使用者,服务器集群中每个应用程序服务器上具有一个。
选择下列其中一个值:- 在集群中
- 允许从服务器集群内建立连接时共享持久预订。
- 总是共享
- 可以在各连接之间共享持久预订。
- 从不共享
- 从不在各连接之间共享持久预订。
- -shareDataSourceWithCmp
True | False
此选项用作任务的一部分,以使容器管理的持久性 (CMP) 实体 Bean 能够共享消息传递引擎的数据存储器所使用的数据库连接。估计此选项可能会将整体消息吞吐量的性能提高 15%,但只能用于连接到消息传递引擎所在应用程序服务器的实体 Bean。 不得对使用文件存储库作为其数据存储的消息传递引擎启用此选项。
有关使用此选项的更多信息,请参阅启用 CMP 实体 Bean 和消息传递引擎数据存储器以共享数据库连接。
- -readAhead
指定给使用者的消息被锁定在服务器上,并且不能被此目标的任何其他使用者使用。指定给使用者但在该使用者关闭前未被使用的消息随后在服务器上被解锁,这样其他使用者就可以接收那些消息。
通过对 JMS 目标设置提前读取属性,可以对各个 JMS 目标覆盖此属性。
选择下列其中一个值:- 已启用
- 消息传递提供程序抢先将消息指定给使用者。此优化措施能够缩短满足使用者请求所耗用的时间。
- 已禁用
- 消息传递提供程序不会抢先将消息指定给使用者。
- 缺省值
- 消息传递提供程序抢先将消息指定给非持久预订和非共享持久预订的使用者。即,仅当只存在一个使用者时才启用提前读取优化功能。
- -forwarderDoesNotModifyPayloadAfterSet
- true | false(缺省值 false)
- 使用此激活规范重新发送最初接收的消息的应用程序必须遵循以下规则:
- 应用程序可替换 JMS 对象消息中的数据对象,前提是尚未在消息中设置该数据对象。在消息中设置数据对象后,应用程序不会修改或替换该数据对象。
- 应用程序只会通过使用对 writeBytes(byte[]) 的单次调用来替换 JMS 字节消息中的字节数组,前提是尚未在消息中设置字节数组。在消息中设置字节数组后,应用程序不会修改或替换该字节数组。
- -consumerDoesNotModifyPayloadAfterGet
- true | false(缺省值 false)
- 使用此激活规范接收消息的应用程序必须遵循以下规则: 该应用程序未修改从 JMS 对象消息获取的数据对象。该数据对象被视为只读对象。
- -alwaysActivateAllMDBs
- True | False
仅当 MDB 应用程序在属于应用程序的目标总线的服务器上运行时,才使用此属性。MDB 在不属于目标总线的服务器上运行时,此属性不起作用。
如果 MDB 在属于目标总线的服务器上运行,那么启用此选项允许 MDB 应用程序处理消息,不管该服务器是否同时主管正在运行的消息传递引擎都是如此。如果未启用此选项,那么在未运行本地 ME 的服务器上的 MDB 应用程序不会处理消息。
对于连接至集群总线成员的 MDB 应用程序,还可使用此选项启用下列任一其他配置:- 集群中的所有服务器可从 MDB 应用程序接收消息以充分利用集群中的处理能力。
- 一次只有一个服务器能从 MDB 应用程序接收消息以确保顺序处理消息。
有关更多信息,请参阅如何在集群中连接消息驱动的 Bean。
- -retryInterval
- -userName
- Java 2 连接器安全性要使用的用户标识。
- -password
- Java 2 连接器安全性要使用的密码。
- -WAS_EndpointInitialState
- 此属性确定注册端点时是否激活端点。如果此属性设置为 ACTIVE,那么在消息驱动的 Bean 使用该激活规范与 JMS 目标进行连接时,将立即使用来自该目标的消息。
此参数的值必须是 ACTIVE 或 INACTIVE。
示例
- 以下示例显示使用 Jython 来修改激活规范:
wsadmin>AdminTask.modifySIBJMSActivationSpec(“myjmsas(cells/ 9994GKCNode01Cell/nodes/ 9994GKCNode01|resources.xml#J2CActivationSpec_1098726667851)”, [“-jndiName”, “jms/jmsas4q1”, “-description”, “JMS activation specification for myqueue1”, “-destinationJndiName”, “jms/myqueue1”]) “myjmsas(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml# J2CActivation Spec_1098726667851)”
- 以下示例显示使用 Jacl 来修改激活规范:
wsadmin>$AdminTask modifySIBJMSActivationSpec myjmsas(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml# J2CActivationSpec_1098726667851) {-jndiName jms/jmsas4q1 -description “JMS activation specification for myqueue1” -destinationJndiName jms/myqueue1} myjmsas(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml# J2CActivation Spec_1098726667851)
- 以下示例使用 Jython 通过激活 WAS_EndpointInitialState 可选参数来修改激活规范:
wsadmin>attrs = “[[name “WAS_EndpointInitialState”] [required “false”] [type “java.lang.String”] [value “ACTIVE”]]” wsadmin>AdminConfig.getid(“/Node:myNode01”) “myNode01(cells/myCell01/nodes/myNode01|node.xml#Node_1)” wsadmin>AdminTask.listSIBJMSActivationSpecs(“myNode01(cells/myCell01/nodes/myNode01|node.xml#Node_1)”) “newas(cells/myCell01/nodes/myNode01|resources.xml#J2CActivationSpec_1298546034140)” wsadmin>AdminConfig.create(“J2EEResourceProperty”, “testas(cells/myCell01/nodes/myNode01|resources.xml#J2CActivationSpec_1298546034140)”, attrs) “WAS_EndpointInitialState(cells/myCell01/nodes/myNode01|resources.xml#J2EEResourceProperty_1298546239332)”