createSIBJMSConnectionFactory 命令
使用 createSIBJMSConnectionFactory 命令在特定范围为缺省消息传递提供程序创建新 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 名称。
- -busName
- 输入与其建立连接的服务集成总线的名称。它必须是对其定义 -destinationJndiName 属性所标识的目标的总线名称。
可选参数
- -type
- queue | topic
- type 参数用于指定要创建的连接工厂的类型。要创建队列连接工厂,请将此参数设置为 queue。要创建主题连接工厂,请将此参数设置为 topic。不要设置该参数以创建通用连接工厂。
- -category
- 对资源进行分类或分组时使用的可选类别字符串。
- -description
- text
- -logMissingTransactionContext
- True | False
- -manageCachedHandles
- True | False
- -clientID
- id
- -userName
- name
- -password
- password
- -target
-
执行连接相近搜索以选择适当的消息传递引擎之前,应选择属于指定目标组的消息传递引擎集合。然后,将连接相近搜索限制为仅对这些消息传递引擎进行。如果未指定目标组(缺省情况),那么在连接邻近度搜索期间将考虑总线中的所有消息传递引擎。 例如,如果将 目标类型 属性设置为 总线成员名称,那么 目标 属性会指定可从中选择合适的消息传递引擎的总线成员名称。
- -targetType
- 选择下列其中一个值:
- 总线成员名称
- 总线成员的名称。此选项检索由指定的总线成员(应用程序服务器或服务器集群)主管的活动消息传递引擎。
要指定非集群总线成员,-target 属性必须设置为 node_name.server_name,例如,Node01.server1。对于集群总线成员,-target 属性必须设置为集群名称。
- 定制消息传递引擎组名
- 一组构成自声明集群的定制消息传递引擎的名称。此选项检索已向所指定定制组注册的活动消息传递引擎。
- 消息传递引擎名称
- 消息传递引擎的名称。此选项检索可用于到达所指定消息传递引擎的可用端点。
- -targetSignificance
此属性定义是否将连接邻近度搜索限制为仅对目标组中的消息传递引擎进行。
选择下列其中一个值:- 首选
- 最好从目标组中选择消息传递引擎。如果目标组包含可用的消息传递引擎,那么将选择该消息传递引擎。如果目标组未包含可用的消息传递引擎,但在同一服务集成总线中有可用的消息传递引擎,那么将选择目标组外部的消息传递引擎。注: 即使首选目标可用,也可能会返回与非首选目标的连接。如果已对 ConnectionFactory 启用连接池(这是您在服务器环境中使用 JMS ConnectionFactory 时的缺省情况),那么可能会发生此情况:
- 当首选消息传递引擎不可用时,可以创建与非首选消息传递引擎的连接,并将该连接存储在连接池中。
- 当应用程序下一次请求连接时就会接收到此合用的连接,即使首选消息传递引擎后来已变得可用,情况也将如此。
- 必需
- 必须从目标组中选择消息传递引擎。如果目标组包含可用的消息传递引擎,那么将选择该消息传递引擎。如果目标组未包含可用的消息传递引擎,那么连接过程将失败。
- -targetTransportChain
-
这些传输链指定可以用来与客户机应用程序所连接的应用程序服务器通信的通信协议。
如果所选消息传递引擎与应用程序在同一服务器中,那么将建立直接进程内连接并忽略此传输链属性。
传输链表示在服务器中工作的网络协议堆栈。您指定的名称必须是主管消息传递引擎的服务器中可用的传输链之一,就像面板上列示的那样。系统提供了下列传输链,但您可以在此面板上定义自己的传输链。- InboundBasicMessaging
- 这是使用标准 TCP/IP 连接 (JFAP-TCP/IP) 的面向连接的协议。此协议支持两阶段事务(远程 XA)流,因此在客户机或服务器系统上运行的消息生产者或使用者可以参与此客户机或服务器系统上管理的全局事务。XA 流的具体用途是,支持从一个服务器上运行的应用程序访问第二个服务器上的消息传递引擎,进行此访问的原因可能是第一个服务器没有合适的消息传递引擎。如果使用远程 XA 流,那么在该应用程序的本地位置必须要有可用的事务协调程序。
- InboundSecureMessaging
- 这是合并在 SSL 中的 InboundBasicMessaging 协议。
- -providerEndPoints
- -connectionProximity
- Bus | Host | Cluster | Server
- -durableSubscriptionHome
- me_name
- -nonPersistentMapping
- BestEffortNonPersistent | ExpressNonPersistent | ReliableNonPersistent | ReliablePersistent | AssuredPersistent | AsSIBDestination | None
- -persistentMapping
- BestEffortNonPersistent | ExpressNonPersistent | ReliableNonPersistent | ReliablePersistent | AssuredPersistent | AsSIBDestination | None
- -readAhead
- Default | AlwaysOn | AlwaysOff
- -tempQueueNamePrefix
- prefix
- -tempTopicNamePrefix
- prefix
- -shareDurableSubscriptions
- AsCluster | AlwaysShared | NeverShared
“通过引用传递消息有效内容”属性:
- -producerDoesNotModifyPayloadAfterSet
- true | false(缺省值 false)
- 使用此连接工厂发送消息的应用程序必须遵循以下规则:
- 应用程序不会修改 JMS 对象消息中包含的数据对象。
- 应用程序通过使用对 writeBytes(byte[]) 的单次调用来填充 JMS 字节消息,并且在消息中设置字节数组后不会对其进行修改。
- -consumerDoesNotModifyPayloadAfterGet
- true | false(缺省值 false)
- 使用此连接工厂接收消息的应用程序必须遵循以下规则: 该应用程序未修改从 JMS 对象消息获取的数据对象。该数据对象被视为只读对象。
警告:
将定义这些属性所绕过的 JMS 规范的一部分,以确保消息数据完整性。 使用这些属性的所有 JMS 应用程序必须严格遵循“通过引用传递消息有效内容的原因及时间”主题中描述的规则,否则会有丢失数据完整性的风险。
- -authDataAlias
- alias_name
- -shareDataSourceWithCMP
- True | False
- -xaRecoveryAuthAlias
- alias_name
示例
注: 在以下示例中,以 wsadmin> 开始的代码块显示了由用户输入的代码。不是以 wsadmin> 开始的行显示控制台所返回的代码。
- 使用 Jython:
wsadmin>AdminConfig.getid(“/Node:9994GKCNode01” )
“9994GKCNode01(cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1)”
wsadmin>AdminTask.createSIBJMSConnectionFactory(“9994GKCNode01(cells/ 9994GKCNode01Cell/nodes/9994GKCNode01|node.xml)”, [“-name”, “jmscf1”, “-jndiName”, “jms/jmscf1”, “-busName”, “abus”])
“jmscf1(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml# J2CConnectionFactory_1098733325084)”
wsadmin>AdminTask.createSIBJMSConnectionFactory(“9994GKCNode01(cells/ 9994GKCNode01Cell/nodes/9994GKCNode01|node.xml)”, [“-name”, “jmsqcf2”, “-jndiName”, “jms/jmsqcf1”, “-busName”, “abus”, “-type”, “queue”])
“jmsqcf2(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml# J2CConnectionFactory_1098733675578)”
- 使用 Jacl:
wsadmin>$AdminConfig getid /Node:9994GKCNode01
9994GKCNode01(cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1)
wsadmin>$AdminTask createSIBJMSConnectionFactory 9994GKCNode01(cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1) {-name jmscf1 -jndiName jms/jmscf1 -busName abus}
jmscf1(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml# J2CConnectionFactory_1098733325084)
wsadmin>$AdminTask createSIBJMSConnectionFactory 9994GKCNode01(cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1) {-name jmsqcf2 -jndiName jms/jmsqcf1 -busName abus -type queue}
jmsqcf2(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml# J2CConnectionFactory_1098733675578)