createWMQConnectionFactory 命令
通过使用 createWMQConnectionFactory 命令,可以在特定作用域为 IBM MQ MQ 消息传递提供程序创建连接工厂。
要运行此命令,请使用 wsadmin 脚本编制客户机的 AdminTask 对象。
wsadmin 脚本编制客户机是从 Qshell 运行的。有关更多信息,请参阅“配置 Qshell 以运行 WebSphere® Application Server 脚本”主题。
此命令仅适用于 WebSphere Application Server V7 和更高版本的应用程序服务器。请不要对先前版本使用此命令。
print AdminTask.help('WMQAdminCommands')
print AdminTask.help('command_name')
AdminConfig.save()
用途
通过使用 createWMQConnectionFactory 命令,可以在特定作用域创建 IBM MQ 消息传递提供程序连接工厂。
- 在同一作用域中,已存在同名的 IBM MQ 消息传递提供程序连接工厂。
- JNDI 名称与 WebSphere Application Server JNDI 中的另一条目发生冲突。
目标对象
要在其中创建 IBM MQ 消息传递提供程序连接工厂的 IBM MQ 消息传递提供程序的范围。
必需参数
- -name
- 指定给此 IBM MQ 消息传递提供程序连接工厂的管理名称。
- -jndiName
- 用于将此对象绑定到 WebSphere Application Server JNDI 的名称和位置。
- -type
- 使用此参数来确定是要创建统一连接工厂、队列连接工厂还是主题连接工厂。
请输入下列其中一个值:
- CF
- QCF
- TCF
CF 是缺省值。
如果指定 QCF,那么不能指定下列任何参数:- -brokerCtrlQueue
- -brokerSubQueue
- -brokerCCSubQueue
- -brokerVersion
- -brokerPubQueue
- -tempTopicPrefix
- -pubAckWindow
- -subStore
- -stateRefreshInt
- -cleanupLevel
- -sparesSubs
- -wildcardFormat
- -brokerQmgr
- -clonedSubs
- -msgSelection
如果指定 TCF,那么不能指定下列任何参数:- -msgRetention
- -rescanInterval
- -tempQueuePrefix
- -modelQueue
- -replyWithRFH2
可选参数
- -description
- 对此连接工厂指定的管理描述。
- -ccdtUrl
- 对于此连接工厂,访问 IBM MQ 时使用的客户机通道定义表的 URL。
使用此参数来创建 ccdtURL 连接工厂。
请不要将此参数与下列参数一起指定:-qmgrName、-qmgrHostname、-qmgrPortNumber、-qmgrSvrconnChannel、–wmqTransportType 或 -localAddress。
- -ccdtQmgrName
- 这是队列管理器名称,用于从客户机通道定义表中选择一个或多个条目。
请不要将此参数与下列参数一起指定:-qmgrName、-qmgrHostname、-qmgrPortNumber、-qmgrSvrconnChannel、–wmqTransportType 或 -localAddress。
- -qmgrName
- 对于此连接工厂,这是与 IBM MQ 连接时使用的队列管理器的名称。
使用此参数来创建一般连接工厂。
请不要将此参数与下列参数一起指定:-ccdtUrl 或 -ccdtQmgrName。
- -wmqTransportType
- 此参数确定对于此连接工厂,与 IBM MQ 建立连接的方式。
使用此参数来创建一般连接工厂。
请输入下列其中一个值:- BINDINGS
- BINDINGS_THEN_CLIENT
- CLIENT
缺省值是 BINDINGS_THEN_CLIENT。
请不要将此参数与下列参数一起指定:-ccdtUrl 或 -ccdtQmgrName。
有关配置传输类型 BINDINGS_THEN_CLIENT 或 BINDINGS 的更多信息,请参阅对 IBM MQ 消息传递提供程序配置本机库信息。
- -qmgrHostname
- 对于此连接工厂,在尝试以客户机方式连接到 IBM MQ 时使用的主机名。这必须是有效的 TCP/IP 主机名或 IPv4/IPv6 地址。
缺省值为本地主机。
请不要将此参数与下列参数一起指定:-ccdtUrl 或 -ccdtQmgrName。
有关将 -qmgrHostname 参数与 -connectionNameList 参数一起设置的信息,请参阅 -connectionNameList 参数的描述。
- -qmgrPortNumber
- 对于此连接工厂,在尝试以客户机方式连接到 IBM MQ 时使用的端口号。
请在 1 至 65536(也包含这两个数)范围内输入整数值。
缺省值为 1414。
请不要将此参数与下列参数一起指定:-ccdtUrl 或 -ccdtQmgrName。
有关将 -qmgrPortNumber 参数与 -connectionNameList 参数一起设置的信息,请参阅 -connectionNameList 参数的描述。
- -connectionNameList
- 这是连接名称列表,它指定当您希望连接工厂连接至多实例队列管理器时要使用的主机名和端口详细信息。注: 必须只使用 -connectionNameList 参数来允许连接至多实例队列管理器。如果使用 -connectionNameList 参数来连接至非多实例队列管理器,那么会破坏事务完整性。
必须按下列格式以主机名和端口的逗号分隔列表的形式输入 -connectionNameList 参数:
host(port),host(port)
对于 host,请输入有效的 TCP/IP 主机名、IPv4 或 IPv6 地址。
对于 port,请输入 1 与 65536(包括 1 和 65535)之间的整数值。对 port 指定值是可选的。未指定值时,port 缺省为 1414。
例如:localhost(1234),remotehost1(1234),remotehost2
指定 -connectionNameList 参数时,-qmgrHostname 和 -qmgrPortNumber 参数将自动设置为连接名称列表中第一个条目的主机名和端口号。此参数的值覆盖您先前在 -qmgrHostname 和 -qmgrPortNumber 参数中指定的任何值。
在上面的示例中,这意味着 -qmgrHostname 将是 localhost,-qmgrPortNumber 将是 1234。
-connectionNameList 参数仅在 WebSphere Application Server V8.0 或更高版本中使用时才有效。对于在服务器或节点作用域中定义的 IBM MQ 消息传递提供程序连接工厂,如果该激活规范正在版本低于 V8.0 的 WebSphere Application Server 中运行,那么尝试指定 -connectionNameList 参数会在您运行下列命令时导致出现错误消息:- createWMQConnectionFactory
- modifyWMQConnectionFactory
如果基于连接名称列表的 IBM MQ 消息传递提供程序连接工厂由正在运行版本低于 V8.0 的 WebSphere Application Server 的应用程序客户机或服务器使用,那么不会使用 -connectionNameList 信息。而是将使用在 -qmgrHostname 和 –qmgrPortNumber 中指定的值,并且这些值将根据 connectionNameList 参数中的第一个条目设置为相关的值。
不能将 connectionNameList 参数与 -ccdtUrl 或 -ccdtQmgrName 参数一起指定。
注: 如果将 -connectionNameList 参数与集中管理的 SSL 配置配合使用,那么用于选择适当 SSL 配置的主机名和端口号信息将基于连接名称列表中的第一个条目,而无论实际使用了列表中的哪个条目来连接至队列管理器。这是因为,对于给定的服务器连接通道,多实例队列管理器的每个实例应该使用相同的 SSL 配置,而无论实际上正在运行哪个实例。有关多实例队列管理器的更多信息,请参阅 IBM MQ 信息中心。
- -containerAuthAlias
- 这是容器管理的认证别名,此别名已对单元定义,其中的安全性凭证用于与 IBM MQ 建立连接。
- -componentAuthAlias
- 这是组件管理的认证别名,此别名已对单元定义,其中的安全性凭证用于与 IBM MQ 建立连接。
- -clientId
- 用于通过此连接工厂启动的连接的客户机标识。
- -providerVersion
- 此参数确定队列管理器的最低版本和能力。请输入具有下列其中一种格式的值:
- n
- n.n
- n.n.n
- n.n.n.n
其中,n 是大于或等于零的整数。
例如,6.0.0.0。
- -sslCrl
- 此参数指定 LDAP 服务器列表,这些服务器用于在此连接工厂与 IBM MQ 建立基于 SSL 的连接时提供证书撤销信息。
- -sslResetCount
- 当此连接工厂与队列管理器建立 SSL 连接时,将使用此参数。此参数确定复位用于 SSL 会话的对称加密密钥之前传输的字节数。
请输入 0 到 999,999,999 范围内的值。
缺省值为 0。
- -sslPeerName
- 当此连接工厂与队列管理器建立 SSL 连接时,将使用此参数。此值将与对等方的证书中包含的专有名称进行比较。
- -rcvExit
- 这是接收出口类名的列表,以逗号进行分隔。
- -rcvExitInitData
- 要传递到接收出口的初始化数据。
除非指定了 -rcvExit 参数,否则请不要指定此参数。
- -sendExit
- 这是发送出口类名的列表,以逗号进行分隔。
- -sendExitInitData
- 要传递到发送出口的初始化数据。
除非指定了 -sendExit 参数,否则请不要指定此参数。
- -secExit
- 安全性出口类名。
- -secExitInitData
- 要传递到安全性出口的初始化数据。
除非指定了 -secExit 参数,否则请不要指定此参数。
- -compressHeaders
- 此参数确定是否对消息头进行压缩。请输入下列其中一个值:
- NONE
- SYSTEM
缺省值为 NONE。
- -compressPayload
- 此参数确定是否对消息有效内容进行压缩。请输入下列其中一个值:
- NONE
- RLE
- ZLIBFAST
- ZLIBHIGH
缺省值为 NONE。
- -msgRetention
- 此参数确定连接使用者是否将不需要的消息保留在输入队列中。
请输入下列其中一个值:
- YES
- NO
其中,YES 指定连接使用者将不需要的消息保留在输入队列中,NO 指定根据消息的处置选项来处置消息。
缺省值为 YES。
- -pollingInterval
- 此属性只有在客户机容器中才适用。
- 此参数是以毫秒计的最大时间间隔,如果会话中的每个消息侦听器在其队列中都没有合适的消息,那么在此时间过后,每个消息侦听器都将再次尝试从其队列中获取消息。如果频繁发生没有合适的消息可供会话中的任何消息侦听器使用这一情况,请考虑增大此参数的值。
缺省值为 5000。
- -rescanInterval
- 当点到点域中的消息使用者使用消息选择器来选择所要接收的消息时,JMS 客户机将在 IBM MQ
队列中按该队列的 MsgDeliverySequence 属性所确定的顺序来搜索合适的消息。该客户机找到合适的消息并将其传递给使用者后,该客户机将从它在该队列中所处的当前位置开始继续搜索下一条合适的消息。该客户机将继续以此方式执行搜索,直到到达队列末尾或者直到此
-rescanInterval 参数的值所确定的时间间隔(以毫秒计)耗尽为止。在这两种情况下,该客户机都将返回到该队列开头以继续执行搜索,并且新的时间间隔开始。
此参数必须是正整数值。
缺省值为 5000。
- -ccsid
- 要对连接使用的编码字符集标识 (CCSID)。
此参数的值必须是正整数。有关更多详细信息,请参阅IBM MQ 消息传递提供程序连接工厂高级属性。
缺省值为 819。
- -failIfQuiescing
- 此参数确定队列管理器进入停顿状态后对其进行的某些调用的行为。
此参数的值必须是 true 或 false。
true 表示,如果队列管理器处于停顿状态,那么对某些方法进行的调用将失败。如果应用程序检测到队列管理器正在停顿,那么该应用程序可以完成其正在进行的任务并关闭连接,从而允许该队列管理器停止。
false 表示,即使队列管理器处于停顿状态,也不会有任何方法失败。如果指定此值,那么应用程序将无法检测到队列管理器正在停顿。该应用程序可能会继续对队列管理器执行操作,从而导致该队列管理器无法停止。
缺省值为 true。
- -brokerCtrlQueue
- 此连接工厂预订主题时使用的代理控制队列的名称。
缺省值为 SYSTEM.BROKER.CONTROL.QUEUE。
- -brokerSubQueue
- 此连接工厂预订主题时用于获取预订消息的队列的名称。
缺省值是 SYSTEM.JMS.ND.SUBSCRIBER.QUEUE。
- -brokerCCSubQueue
- 从中为 ConnectionConsumer 检索非持久预订消息的队列的名称。
缺省值为 SYSTEM.JMS.ND.CC.SUBSCRIBER.QUEUE。
- -brokerVersion
- 此参数的值确定发布/预订操作所需的功能的级别。
有效值是 1 和 2。
缺省值为 1。
- -msgSelection
- 此参数确定消息选择的发生位置。
有效值是 CLIENT 和 BROKER。
缺省值为 CLIENT。
- -subStore
- 此参数确定 IBM MQ 消息传递提供程序在何处存储与活动预订相关的持久数据。
有效值是 MIGRATE、QUEUE 和 BROKER。
缺省值为 MIGRATE。
- -stateRefreshInt
- 这是以毫秒计的时间间隔,用于检测订户与队列管理器之间的连接是否中断的长时间运行事务将按此时间间隔执行刷新。仅当 -subStore 参数的值为 QUEUE 时,此参数才有意义。
此参数的值必须是正整数。
缺省值为 60,000。
- -cleanupLevel
- BROKER 或 MIGRATE 预订存储器的清除级别。
有效值为 SAFE、NONE、ASPROP 和 STRONG。
缺省值为 SAFE。
- -cleanupInterval
- 在后台执行两次发布/预订清除实用程序之间的时间间隔。
此参数的值必须是正整数。
缺省值为 3,600,000。
- -wildcardFormat
- 此参数确定将哪些字符解释为主题通配符。
有效值是 Topic 或 Char。
缺省值为 Topic。
- -sparseSubs
- 此参数控制 TopicSubscriber 对象的消息检索策略。
此参数的值必须是 true 或 false。
缺省值为 false。
- -brokerQmgr
- 正在运行代理的队列管理器的名称,前提是此队列管理器与连接工厂连接至的队列管理器不同。
没有缺省值。
- -clonedSubs
- 此参数确定同一持久主题订户的两个或两个以上实例能否同时运行。
此参数的值必须是 ENABLED 或 DISABLED。
缺省值为 DISABLED。
- -customProperties
- 此参数指定要传递到 IBM MQ 消息传递提供程序连接工厂实现的定制属性。通常情况下,定制属性用于设置连接工厂的属性,该连接工厂不直接通过 WebSphere 管理接口受到支持。将使用名称和值表步骤参数指定每个定制属性。因为这些步骤都是表步骤,所以两个参数的顺序是固定的,因此必须始终先指定名称,然后指定值:
- 使用 Jython:[name value]
- 使用 Jacl:{name value}
- -qmgrSvrconnChannel
- 连接到 IBM MQ 时使用的 SVRCONN 通道。
使用此参数来创建显式定义的连接工厂。
缺省值为 SYSTEM.DEF.SVRCONN。
请不要将此参数与下列参数一起指定:-ccdtUrl 或 -ccdtQmgrName。
- -support2PCProtocol
- 此参数确定此连接工厂是否充当能够参与分布式两阶段落实处理的资源。
此参数的值必须是 True 或 False。
缺省值 True 表示此连接工厂充当能够参与分布式两阶段落实处理的资源。
- -modelQueue
- 这是一个 IBM MQ 模型队列的名称,在创建 JMS 临时目标时,将使用此队列的定义作为基础。
缺省值是 SYSTEM.DEFAULT.MODEL.QUEUE。
- -tempQueuePrefix
- 要对用于表示 JMS 临时队列类型目标的 IBM MQ 临时队列应用的前缀。
没有缺省值。
- -tempTopicPrefix
- 要对所生成的临时主题名称应用的前缀。仅对于连接工厂或主题连接工厂而言,此参数才有效。
没有缺省值。
- -replyWithRFH2
- 此参数确定,将应答消息发送到从未包含 RFH V2 头的消息中获取的应答队列时,是否在该应答消息中包括 RFH V2 头。
此参数的值必须是 ALWAYS 或 AS_REPLY_DEST。
缺省值是 AS_REPLY_DEST。
- -brokerPubQueue
- 这是一个队列的名称,在使用基于队列的代理功能时,将把发布消息发送到此队列。
缺省值为 SYSTEM.BROKER.DEFAULT.STREAM。
- -pubAckInterval
- 在发送征求确认的发布之前发送至基于队列的代理的发布数量。
此参数的值必须是大于零的正整数。
缺省值为 25。
- -sslType
- 此参数确定将 SSL 加密功能应用于与队列管理器的网络连接时使用的配置(如果有)。
此参数的值必须是 CENTRAL、SPECIFIC 或 NONE。
缺省值为 NONE。
除非此参数设置为 SPECIFIC 值,否则 sslConfiguration 参数无效。
- -sslConfiguration
- 使用 SSL 来保护与队列管理器的网络连接时使用的 SSL 配置的名称。
此参数的值必须与 SSL 配置相对应。
除非将参数 -sslType 指定为 SPECIFIC 值,否则请不要指定此参数。
- -localAddress
- 此参数指定下列任意一项或全部:
- 本地网络接口
- 本地端口或本地端口范围
请不要将此参数与下列参数一起指定:-ccdtUrl 或 -ccdtQmgrName。
- -mappingAlias
- 这是 JAAS 映射别名,用于确定与 IBM MQ 建立连接时要使用的安全性凭证。
缺省值是 DefaultPrincipleMapping。
- -xaRecoveryAuthAlias
- 这是认证别名,将从中获取凭证并使用这些凭证来连接至 IBM MQ 以进行 XA 恢复。
没有缺省值。
最小连接工厂定义
以下示例通过指定数目最少的参数来创建连接工厂。由于未指定的参数将采用缺省值,因此,使用此连接工厂的应用程序应该与安装在同一节点上的队列管理器共存。
- 使用 Jython:
wsadmin>AdminConfig.getid("/Node:9994GKCNode01")
9994GKCNode01(cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1)
wsadmin>AdminTask.createWMQConnectionFactory("9994GKCNode01(cells/ 9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1)", ["-name cf1 -jndiName 'jms/cf/cf2' -type CF"])
cf1(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml# MQConnectionFactory_1205322636000)
- 使用 Jacl:
wsadmin>$AdminConfig getid /Node:9994GKCNode01
9994GKCNode01(cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1)
wsadmin>$AdminTask createWMQConnectionFactory 9994GKCNode01(cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1) {-name cf1 -jndiName "jms/cf/cf1" -type CF}
cf1(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml# MQConnectionFactory_1205322636000)
显式定义的连接工厂
以下示例创建一个连接工厂,用户必须为此连接工厂指定并维护所有用于与 IBM MQ 建立连接的参数。
- 使用 Jython:
wsadmin>AdminConfig.getid("/Node:9994GKCNode01")
9994GKCNode01(cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1)
wsadmin>AdminTask.createWMQConnectionFactory("9994GKCNode01(cells/ 9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1)", ["-name cf2 -jndiName 'jms/cf/cf2' -type CF -description 'Must remember to keep each of these connection factories in sync with the IBM MQ queue manager to which they refer' -qmgrName QM1 -qmgrHostname 192.168.0.22 -qmgrPortNumber 1415 -qmgrSvrconnChannel QM1.SVRCONN"])
cf2(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml# MQConnectionFactory_120532263601)
- 使用 Jacl:
wsadmin>$AdminConfig getid /Node:9994GKCNode01
9994GKCNode01(cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1)
wsadmin>$AdminTask createWMQConnectionFactory 9994GKCNode01(cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1) {-name cf2 -jndiName "jms/cf/cf2" -type CF -description "Must remember to keep each of these connection factories in sync with the IBM MQ queue manager to which they refer" -qmgrName QM1 -qmgrHostname 192.168.0.22 -qmgrPortNumber 1415 -qmgrSvrconnChannel QM1.SVRCONN}
cf2(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml# MQConnectionFactory_120532263601)
指定了 CCDT 的连接工厂定义
以下示例将创建一个连接工厂,此连接工厂使用 CCDT 来找到所要连接的队列管理器。
- 使用 Jython:
wsadmin>AdminConfig.getid("/Node:9994GKCNode01")
9994GKCNode01(cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1)
wsadmin>AdminTask.createWMQConnectionFactory("9994GKCNode01(cells/ 9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1)", ["-name cf3 -jndiName 'jms/cf/cf3' -type CF -ccdtUrl 'http://myccdt:9080/ccdt/amqclchl.tab' -ccdtQmgrName QM3"])
cf3(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml# MQConnectionFactory_120532263606)
- 使用 Jacl:
wsadmin>$AdminConfig getid /Node:9994GKCNode01
9994GKCNode01(cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1)
wsadmin>$AdminTask createWMQConnectionFactory 9994GKCNode01(cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1) {-name cf3 -jndiName "jms/cf/cf3" -type CF -ccdtUrl "http://myccdt:9080/ccdt/amqclchl.tab" -ccdtQmgrName QM3}
cf3(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml# MQConnectionFactory_120532263606)