createWMQConnectionFactory 命令

通过使用 createWMQConnectionFactory 命令,可以在特定作用域为 IBM MQ MQ 消息传递提供程序创建连接工厂。

要运行此命令,请使用 wsadmin 脚本编制客户机的 AdminTask 对象。

[IBM i]wsadmin 脚本编制客户机是从 Qshell 运行的。有关更多信息,请参阅“配置 Qshell 以运行 WebSphere® Application Server 脚本”主题。

此命令仅适用于 WebSphere Application Server V7 和更高版本的应用程序服务器。请不要对先前版本使用此命令。

要获取可用的 IBM MQ 消息传递提供程序管理命令的列表以及每个命令的简短描述,请在 wsadmin 提示符处输入以下命令:

print AdminTask.help('WMQAdminCommands')

要获取有关给定命令的总体帮助,请在 wsadmin 提示符处输入以下命令:

print AdminTask.help('command_name')

在使用这些命令之后,保存对主配置所做的更改。例如,使用以下命令:

AdminConfig.save()

用途

通过使用 createWMQConnectionFactory 命令,可以在特定作用域创建 IBM MQ 消息传递提供程序连接工厂。

在下列任何一种情况下,均无法创建 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_CLIENTBINDINGS 的更多信息,请参阅对 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
此参数确定队列管理器进入停顿状态后对其进行的某些调用的行为。

此参数的值必须是 truefalse

true 表示,如果队列管理器处于停顿状态,那么对某些方法进行的调用将失败。如果应用程序检测到队列管理器正在停顿,那么该应用程序可以完成其正在进行的任务并关闭连接,从而允许该队列管理器停止。

false 表示,即使队列管理器处于停顿状态,也不会有任何方法失败。如果指定此值,那么应用程序将无法检测到队列管理器正在停顿。该应用程序可能会继续对队列管理器执行操作,从而导致该队列管理器无法停止。

缺省值为 true

-brokerCtrlQueue
此连接工厂预订主题时使用的代理控制队列的名称。

缺省值为 SYSTEM.BROKER.CONTROL.QUEUE

-brokerSubQueue
此连接工厂预订主题时用于获取预订消息的队列的名称。

缺省值是 SYSTEM.JMS.ND.SUBSCRIBER.QUEUE

-brokerCCSubQueue
从中为 ConnectionConsumer 检索非持久预订消息的队列的名称。

缺省值为 SYSTEM.JMS.ND.CC.SUBSCRIBER.QUEUE

-brokerVersion
此参数的值确定发布/预订操作所需的功能的级别。

有效值是 12

缺省值为 1

-msgSelection
此参数确定消息选择的发生位置。

有效值是 CLIENTBROKER

缺省值为 CLIENT

-subStore
此参数确定 IBM MQ 消息传递提供程序在何处存储与活动预订相关的持久数据。

有效值是 MIGRATEQUEUEBROKER

缺省值为 MIGRATE

-stateRefreshInt
这是以毫秒计的时间间隔,用于检测订户与队列管理器之间的连接是否中断的长时间运行事务将按此时间间隔执行刷新。仅当 -subStore 参数的值为 QUEUE 时,此参数才有意义。

此参数的值必须是正整数。

缺省值为 60,000

-cleanupLevel
BROKER 或 MIGRATE 预订存储器的清除级别。

有效值为 SAFENONEASPROPSTRONG

缺省值为 SAFE

-cleanupInterval
在后台执行两次发布/预订清除实用程序之间的时间间隔。

此参数的值必须是正整数。

缺省值为 3,600,000

-wildcardFormat
此参数确定将哪些字符解释为主题通配符。

有效值是 TopicChar

缺省值为 Topic

-sparseSubs
此参数控制 TopicSubscriber 对象的消息检索策略。

此参数的值必须是 truefalse

缺省值为 false

-brokerQmgr
正在运行代理的队列管理器的名称,前提是此队列管理器与连接工厂连接至的队列管理器不同。

没有缺省值。

-clonedSubs
此参数确定同一持久主题订户的两个或两个以上实例能否同时运行。

此参数的值必须是 ENABLEDDISABLED

缺省值为 DISABLED

-customProperties
此参数指定要传递到 IBM MQ 消息传递提供程序连接工厂实现的定制属性。通常情况下,定制属性用于设置连接工厂的属性,该连接工厂不直接通过 WebSphere 管理接口受到支持。
将使用名称和值表步骤参数指定每个定制属性。因为这些步骤都是表步骤,所以两个参数的顺序是固定的,因此必须始终先指定名称,然后指定值:
  • 使用 Jython:[name value]
  • 使用 Jacl:{name value}
-qmgrSvrconnChannel
连接到 IBM MQ 时使用的 SVRCONN 通道。

使用此参数来创建显式定义的连接工厂。

缺省值为 SYSTEM.DEF.SVRCONN

请不要将此参数与下列参数一起指定:-ccdtUrl-ccdtQmgrName

-support2PCProtocol
此参数确定此连接工厂是否充当能够参与分布式两阶段落实处理的资源。

此参数的值必须是 TrueFalse

缺省值 True 表示此连接工厂充当能够参与分布式两阶段落实处理的资源。

-modelQueue
这是一个 IBM MQ 模型队列的名称,在创建 JMS 临时目标时,将使用此队列的定义作为基础。

缺省值是 SYSTEM.DEFAULT.MODEL.QUEUE

-tempQueuePrefix
要对用于表示 JMS 临时队列类型目标的 IBM MQ 临时队列应用的前缀。

没有缺省值。

-tempTopicPrefix
要对所生成的临时主题名称应用的前缀。仅对于连接工厂或主题连接工厂而言,此参数才有效。

没有缺省值。

-replyWithRFH2
此参数确定,将应答消息发送到从未包含 RFH V2 头的消息中获取的应答队列时,是否在该应答消息中包括 RFH V2 头。

此参数的值必须是 ALWAYSAS_REPLY_DEST

缺省值是 AS_REPLY_DEST

-brokerPubQueue
这是一个队列的名称,在使用基于队列的代理功能时,将把发布消息发送到此队列。

缺省值为 SYSTEM.BROKER.DEFAULT.STREAM

-pubAckInterval
在发送征求确认的发布之前发送至基于队列的代理的发布数量。

此参数的值必须是大于零的正整数。

缺省值为 25

-sslType
此参数确定将 SSL 加密功能应用于与队列管理器的网络连接时使用的配置(如果有)。

此参数的值必须是 CENTRALSPECIFICNONE

缺省值为 NONE

除非此参数设置为 SPECIFIC 值,否则 sslConfiguration 参数无效。

-sslConfiguration
使用 SSL 来保护与队列管理器的网络连接时使用的 SSL 配置的名称。

此参数的值必须与 SSL 配置相对应。

除非将参数 -sslType 指定为 SPECIFIC 值,否则请不要指定此参数。

-localAddress
此参数指定下列任意一项或全部:
  • 本地网络接口
  • 本地端口或本地端口范围

请不要将此参数与下列参数一起指定:-ccdtUrl-ccdtQmgrName

-mappingAlias
这是 JAAS 映射别名,用于确定与 IBM MQ 建立连接时要使用的安全性凭证。

缺省值是 DefaultPrincipleMapping

-xaRecoveryAuthAlias
这是认证别名,将从中获取凭证并使用这些凭证来连接至 IBM MQ 以进行 XA 恢复。

没有缺省值。

最小连接工厂定义

注: 在以下示例中,以 wsadmin> 开始的代码块显示了由用户输入的代码。不是以 wsadmin> 开始的行显示控制台所返回的代码。

以下示例通过指定数目最少的参数来创建连接工厂。由于未指定的参数将采用缺省值,因此,使用此连接工厂的应用程序应该与安装在同一节点上的队列管理器共存。

  • 使用 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)

指示主题类型的图标 参考主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rmj_wmq_jmscf_create
文件名:rmj_wmq_jmscf_create.html