createWMQActivationSpec 命令

通过使用 createWMQActivationSpec 命令,可以在特定作用域为 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()

用途

通过使用 createWMQActivationSpec 命令,可以在特定作用域创建 IBM MQ 消息传递提供程序激活规范。

在下列任何一种情况下,均无法创建 IBM MQ 消息传递提供程序激活规范:
  • 在同一作用域中,已存在同名的 IBM MQ 消息传递提供程序激活规范。
  • JNDI 名称与 WebSphere Application Server JNDI 中的另一条目发生冲突。
您通过指定下列任何参数来创建基于 CCDT 的激活规范:
  • -ccdtUrl
  • -ccdtQmgrName
如果未指定下列任何参数,那么将创建通用激活规范:
  • -ccdtUrl
  • -ccdtQmgrName

目标对象

要在其中创建 IBM MQ 消息传递提供程序激活规范的 IBM MQ 消息传递提供程序的范围。

必需参数

-name
指定给此 IBM MQ 消息传递提供程序激活规范的管理名称。
-jndiName
用于将此对象与 WebSphere Application Server JNDI 绑定的名称和位置。
-destinationJndiName
IBM MQ 消息传递提供程序队列或主题类型目标的 JNDI 名称。如果使用此激活规范来部署 MDB,那么将从此目标获取 MDB 的消息。
-destinationType
通过 -destinationJndiName 参数指定的目标的类型。
请输入下列其中一个值:
  • javax.jms.Queue
  • javax.jms.Topic

没有缺省值。

可选参数

-description
对此激活规范指定的管理描述。
-ccdtUrl
对于此激活规范,访问 IBM MQ 时使用的客户机通道定义表的 URL。

使用此参数来创建 ccdtURL 激活规范。

请不要将此参数与下列参数一起指定:-qmgrName-qmgrType-qmgrHostname-qmgrPortNumber , -qmgrSvrconnChannel-localAddress

-ccdtQmgrName
这是队列管理器名称,用于从客户机通道定义表中选择一个或多个条目。

如果已将 -transportType 指定为 clientbindingsThenClient,那么必须指定此参数。

请不要将此参数与下列参数一起指定:-qmgrName-qmgrType-qmgrHostname-qmgrPortNumber , -qmgrSvrconnChannel-localAddress

-qmgrName
对于此激活规范,这是与 IBM MQ 连接时使用的队列管理器的名称。

使用此参数来创建通用激活规范。

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

-wmqTransportType
此参数确定对于此激活规范,与 IBM MQ 建立连接的方式。

使用此参数来创建通用激活规范。

请输入下列其中一个区分大小写的值:
  • BINDINGS
  • BINDINGS_THEN_CLIENT
  • CLIENT

BINDINGS_THEN_CLIENT 是缺省值。

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

有关配置传输类型先绑定后客户机绑定的更多信息,请参阅对 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),remotehost(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 参数会在您运行下列命令时导致出现错误消息:
  • createWMQActivationSpec
  • modifyWMQActivationSpec
如果您在限于单元或集群范围的 IBM MQ 激活规范上指定 -connectionNameList 参数,那么可以将它用于运行 WebSphere Application Server V7.0 的节点。具体行为由节点的修订包级别确定:
  • 对于在 WebSphere Application Server V7.0 FP7 或更高版本级别运行的节点,激活规范会使用 -connectionNameList 参数来连接至多实例队列管理器。
  • 对于在 WebSphere Application Server V7.0 FP7 以前修订包级别运行的节点,会输出类似以下示例的警告消息:
    [29/09/10 12:15:27:468 BST] 00000018 J2CUtilityCla W   
    J2CA0008W: Class com.ibm.mq.connector.inbound.ActivationSpecImpl used by resource 
    cells/L3A3316Node01Cell/resources.xml#J2CResourceAdapter_1284547647859 did not contain 
    method setConnectionNameList. Processing continued.
    您可以忽略此消息。

不能将 -connectionNameList 参数与 -ccdtUrl-ccdtQmgrName 参数一起指定。

注: 如果将 -connectionNameList 参数与集中管理的 SSL 配置配合使用,那么用于选择适当 SSL 配置的主机名和端口号信息将基于 -connectionNameList 中的第一个条目,而无论实际使用了列表中的哪个条目来连接至队列管理器。这是因为,对于给定的服务器连接通道,多实例队列管理器的每个实例应该使用相同的 SSL 配置,而无论实际上正在运行哪个实例。

有关多实例队列管理器的更多信息,请参阅 IBM MQ 信息中心。

-authAlias
这是一个认证别名,当此激活规范需要与 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

-rescanInterval
当点到点域中的消息使用者使用消息选择器来选择所要接收的消息时,JMS 客户机将在 IBM MQ 队列中按该队列的 MsgDeliverySequence 属性所确定的顺序来搜索合适的消息。该客户机找到合适的消息并将其传递给使用者后,该客户机将从它在该队列中所处的当前位置开始继续搜索下一条合适的消息。该客户机将继续以此方式执行搜索,直到到达队列末尾或者直到此 -rescanInterval 参数的值所确定的时间间隔(以毫秒计)耗尽为止。在这两种情况下,该客户机都将返回到该队列开头以继续执行搜索,并且新的时间间隔开始。

此参数必须是正整数值。

缺省值为 5000

-ccsid
要对连接使用的编码字符集标识 (CCSID)。

此参数的值必须是正整数,并且必须是 IBM MQ 所支持的其中一个 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

缺省值为 Char

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

此参数的值必须是 truefalse

缺省值为 false

-brokerQmgr
运行代理的队列管理器的名称。
-clonedSubs
此参数确定同一持久主题订户的两个或两个以上实例能否同时运行。

此参数的值必须是 ENABLEDDISABLED

缺省值为 DISABLED

-qmgrSvrconnChannel
连接到 IBM MQ 时使用的 SVRCONN 通道。

使用此参数来创建显式定义的激活规范。

缺省值为 SYSTEM.DEF.SVRCONN

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

-brokerCCDurSubQueue
这是一个队列的名称,连接使用者将从此队列中接收持久预订消息。

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

-maxPoolSize
服务器会话池中由连接使用者使用的最大服务器会话数。

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

缺省值为 10

-messageSelector
一种消息选择器表达式,它指定要传递哪些消息。

此参数的值必须是空字符串或有效的 SQL 92 语句。

-poolTimeout
一段时间(以毫秒计),在这段时间内,未使用的服务器会话在由于不活动而被关闭之前,将在服务器会话池中保持打开状态。

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

缺省值为 300,000

-startTimeout
一段时间(以毫秒计),在安排了传递某个消息的工作后,必须在这段时间内开始将该消息传递至 MDB。如果这段时间已经过去,那么会将该消息回滚至队列。

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

缺省值为 10,000

-subscriptionDurability
此参数确定是使用持久预订还是非持久预订将消息传递至预订主题的 MDB。

此参数的值必须是 DurableNondurable

缺省值为 Nondurable

-subscriptionName
持久预订的名称。
-customProperties
此参数指定要传递到 IBM MQ 消息传递提供程序激活规范实现的定制属性。通常,定制属性用于设置并非直接通过 WebSphere 管理接口受支持的激活规范属性。
将使用名称和值表步骤参数指定每个定制属性。因为这些步骤都是表步骤,所以两个参数的顺序是固定的,因此必须始终先指定名称,然后指定值:
  • 使用 Jython:[name value]
  • 使用 Jacl:{name value}

例如,-WAS_EndpointInitialState 是可以与 -customProperties 参数配合使用的定制属性。-WAS_EndpointInitialState 的值必须是 ACTIVEINACTIVE-WAS_EndpointInitialState 确定注册端点时是否激活端点。如果此参数设置为 ACTIVE,那么在消息驱动的 Bean 使用该激活规范与 JMS 目标进行连接时,将立即使用来自该目标的消息。

对于通过 J2CMessageEndpoint MBean 进行的后续激活或取消激活,应该忽略此参数。

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

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

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

此参数的值必须是 CENTRALSPECIFICNONE

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

缺省值为 NONE

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

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

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

没有缺省值。

-stopEndpointIfDeliveryFails
此参数指定,当消息传递失败次数达到 failureDeliveryCount 属性所指定的次数时,是否应该将端点停止。

此参数的值必须是 truefalse

缺省值为 true

-failureDeliveryCount
此参数指定在将端点暂挂之前允许的连续传递故障次数。仅当 stopEndpointIfDeliveryFails 设置为 true 时,才会使用此值。

此参数的值必须是非负整数。

缺省值为 0,这表示在端点第一次失败时将其停止。

必需激活规范定义

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

以下示例通过指定数目最少的参数来创建激活规范。由于未指定的参数将采用缺省值,因此,使用此激活规范部署的 MDB 与安装在同一节点上的通用队列管理器共存。

  • 使用 Jython:
    wsadmin>AdminConfig.getid("/Node:9994GKCNode01")  
    9994GKCNode01(cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1)
     
    wsadmin>AdminTask.createWMQActivationSpec("9994GKCNode01(cells/9994GKCNode01Cell/
    nodes/9994GKCNode01|node.xml#Node_1)", ["-name spec1 -jndiName jms/as/spec1
     -destinationJndiName jms/queues/q1 -destinationType javax.jms.Queue"]) 
    spec1(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml#
    J2CActivationSpec_1098737234986)
  • 使用 Jacl:
    wsadmin>$AdminConfig getid /Node:9994GKCNode01  
    9994GKCNode01(cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1)
     
    wsadmin>$AdminTask createWMQActivationSpec 
    9994GKCNode01(cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1) 
    {-name spec1 -jndiName jms/as/spec1 -destinationJndiName jms/queues/q1 
    -destinationType javax.jms.Queue} 
    spec1(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml#
    J2CActivationSpec_1098737234986)
  • 以下示例通过使用 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>theActSpec = AdminTask.createWMQActivationSpec("myNode01(cells/myCell01/nodes/myNode01|node.xml#Node_1)", 
    '-name testas -jndiName testas -destinationJndiName testq -destinationType javax.jms.Queue 
    -customProperties [[WAS_EndpointInitialState Active]]')

显式激活规范定义

以下示例创建一个激活规范,用户必须为此激活规范指定并维护所有用于与 IBM MQ 建立连接的参数。

  • 使用 Jython:
    wsadmin>AdminConfig.getid("/Node:9994GKCNode01")
    9994GKCNode01(cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1)
    wsadmin>AdminTask.createWMQActivationSpec("9994GKCNode01(cells/9994GKCNode01Cell/
    nodes/9994GKCNode01|node.xml#Node_1)", ["-name spec2 -jndiName 'jms/as/spec2'
     -destinationJndiName 'jms/topics/t2' -destinationType javax.jms.Topic
     -description 'Must remember to keep each of these activation specifications in
     sync with the IBM MQ queue manager to which they refer' -qmgrName QM1
     -qmgrHostname 192.168.0.22 -qmgrPort 1415 -qmgrSvrconnChannel QM1.SVRCONN"])
    spec2(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml#
    J2CActivationSpec_1098737234987)
  • 使用 Jacl:
    wsadmin>$AdminConfig getid /Node:9994GKCNode01
    9994GKCNode01(cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1)
    wsadmin>$AdminTask createWMQActivationSpec 
    9994GKCNode01(cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1) 
    {-name spec2 -jndiName "jms/as/spec2" -destinationJndiName "jms/topics/t2" 
    -destinationType javax.jms.Topic -description "Must remember to keep each 
    of these activation specifications in sync with the IBM MQ queue manager 
    to which they refer" -qmgrName QM1 -qmgrHostname 192.168.0.22 -qmgrPort 1415 
    -qmgrSvrconnChannel QM1.SVRCONN}
    spec2(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml#
    J2CActivationSpec_1098737234987)

指定了 CCDT 的激活规范定义

以下示例创建一个激活规范,此激活规范使用 CCDT 来找到所要连接的队列管理器。

  • 使用 Jython:
    wsadmin>AdminConfig.getid("/Node:9994GKCNode01/")
    Node01(cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1)")
    wsadmin>AdminTask.createWMQActivationSpec("9994GKCNode01(cells/9994GKCNode01Cell/
    nodes/9994GKCNode01|node.xml#Node_1)", ["-name spec3 -jndiName 'jms/as/spec3'
     -destinationJndiName 'jms/queue/q3' -destinationType javax.jms.Queue
     -ccdtUrl 'http://myccdt:9080/ccdt/amqclchl.tab' -ccdtQmgrName QM3"])
    spec3(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml#
    J2CActivationSpec_1098737234988)
  • 使用 Jacl:
    wsadmin>$AdminConfig getid /Node:9994GKCNode01
    9994GKCNode01(cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1)
    wsadmin>$AdminTask createWMQActivationSpec 
    9994GKCNode01(cells/9994GKCNode01Cell/nodes/9994GKCNode01|node.xml#Node_1)
    {-name spec3 -jndiName "jms/as/spec3" -destinationJndiName "jms/queue/q3" 
    -destinationType javax.jms.Queue -ccdtUrl "http://myccdt:9080/ccdt/
    amqclchl.tab" -ccdtQmgrName QM3}
    spec3(cells/9994GKCNode01Cell/nodes/9994GKCNode01|resources.xml#
    J2CActivationSpec_1098737234988)

在将 -WAS_EndpointInitialState 定制属性设置为 Active 的情况下创建激活规范

  • 以下示例通过使用 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>theActSpec = AdminTask.createWMQActivationSpec("myNode01(cells/myCell01/nodes/myNode01|node.xml#Node_1)", 
    '-name testas -jndiName testas -destinationJndiName testq -destinationType javax.jms.Queue 
    -customProperties [[WAS_EndpointInitialState Active]]')

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



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