createSIBDestinations 命令

使用 createSIBDestinations 命令为服务集成总线创建新总线目标。

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

[IBM i][IBM i]wsadmin 脚本编制客户机从 Qshell 运行

为服务集成总线的命令提供了命令行帮助:
  • 要获取 Jython 中可用服务集成总线命令的列表以及每个命令的简短描述,请在 wsadmin 提示符处输入以下命令:

    print AdminTask.help('SIBAdminCommands')

  • 有关特定命令的概述帮助,请在 wsadmin 提示符处输入以下命令:

    print AdminTask.help('command_name')

使用该命令后,使用以下命令将更改保存到主配置。

AdminConfig.save()

用途

createSIBDestinations 命令为服务集成总线创建多个新总线目标,这些目标全部具有相同属性。 如果创建的目标是别名目标,那么它们全部以同一目标为目标。 使用此命令,新的总线目标也可以本地化为 WebSphere® MQ 服务器总线成员。

目标对象

服务集成总线。

必需参数

-bus
要在其上创建总线目标的服务集成总线的名称。 要列示现有总线的名称,请使用 listSIBuses 命令。
-nameList
识别这些目标以便于管理的标识列表。
-type
指示要创建的总线目标的类型。
Alias
别名目标,它提供应用程序与用来存放消息的底层目标总线目标之间的抽象级别。 应用程序与别名目标进行交互,因此,可以在不必更改应用程序的情况下更改目标总线目标。
外部目标,它标识另一条总线上的目标,并使一条总线上的应用程序能够直接访问另一条总线上的目标。
端口
表示与外部主管的目标 Web Service 进行通信的出站服务的特定消息和传输绑定。
队列
用于点到点消息传递的队列。
TopicSpace
用于进行发布/预订消息传递的主题空间。
WebService
表示外部主管的目标 Web Service。

条件参数

无。

可选参数

-cluster
要将总线目标指定给集群总线成员,请指定集群的名称。 不要指定 -node-server -wmqServer 参数。
-node
要将总线目标指定给服务器总线成员,请指定运行该服务器的节点的名称以及该服务器的名称。 不要指定 -cluster-wmqServer 参数。
-server
要将总线目标指定给服务器总线成员,请指定运行该服务器的节点的名称以及该服务器的名称。 不要指定 -cluster-wmqServer 参数。
-wmqServer
要将总线目标分配给 IBM MQ 队列,请指定分配了目标的 WebSphere MQ 服务器总线成员的名称 (此参数) 和用于存储发送到目标的消息的 IBM MQ 队列的名称 ( -wmqQueueName 参数)。 将-wmqServer 参数设置为创建 WebSphere MQ 服务器时提供的名称。 将 -wmqQueueName 参数设置为由 IBM MQ 管理分配给 IBM MQ 队列的名称。 请勿指定 -cluster-node-server 参数。
-aliasBus
如果要创建别名目标,请指定别名映射的源总线名称。
-targetBus
如果要创建别名目标,请指定别名目标映射至的总线的名称。
-targetName
如果要创建别名目标,请指定别名目标映射至的目标的名称。
-foreignBus
如果要创建外部目标,请指定外部总线的名称。
-description
指定总线目标的描述以用于管理。
-reliability
指定生产者应用程序未设置显式可靠性时要指定给对这些目标产生的消息的可靠性级别。 服务集成支持 5 个可靠性级别(又称为传送选项或服务质量):
BEST_毫不持久
在消息传递引擎停止或失败时废弃消息。 如果用于发送消息的连接变为不可用或者系统资源不足,也可能会废弃消息。
EXPRESS_NONPERSISTENT
在消息传递引擎停止或失败时废弃消息。 如果用于发送消息的连接变为不可用,也可能会废弃消息。
RELIABLE_NONPERSISTENT
在消息传递引擎停止或失败时废弃消息。
RELIABLE_PERSISTENT
当消息传递引擎发生故障时,可能会废弃消息。
ASSURED_PERSISTENT
消息不会遭到废弃。
注: 更高级别的可靠性对性能的影响更大。

有关服务集成可靠性级别的更多信息,请参阅 消息可靠性级别-JMS 交付方式和服务集成质量

-maxReliability
指定生产者应用程序指定的值可接受的最大可靠性级别。 服务集成支持 5 个可靠性级别(又称为传送选项或服务质量):
BEST_毫不持久
EXPRESS_NONPERSISTENT
RELIABLE_NONPERSISTENT
RELIABLE_PERSISTENT
ASSURED_PERSISTENT

有关服务集成可靠性级别的更多信息,请参阅 消息可靠性级别-JMS 交付方式和服务集成质量

-nonPersistentReliability

指定要与服务集成从 IBM MQ 网络接收的非持久 IBM MQ 消息配合使用的服务集成服务质量。 IBM MQ 网络中的消息具有自己的服务质量级别。 此级别是持久非持久。 当服务集成应用程序接收到这些消息时,将根据其 IBM MQ 服务质量级别为其分配服务质量级别的服务集成质量。

对于接收到的非持久 IBM MQ 消息,缺省服务集成服务质量为 RELIABLE_NONPERSISTENT。 如果选择覆盖缺省值,那么您可能要选择一个其他非持久服务集成服务质量(BEST_EFFORT_NONPERSISTENTEXPRESS_NONPERSISTENT)。 但是,可选择下列五个可能的服务集成服务质量中的任何一个:
BEST_毫不持久
EXPRESS_NONPERSISTENT
RELIABLE_NONPERSISTENT
RELIABLE_PERSISTENT
ASSURED_PERSISTENT

有关更多信息,请参阅 将 JMS 交付选项和消息可靠性映射到 IBM MQ 持久性值

-persistentReliability

指定要与服务集成从 IBM MQ 网络接收的持久 IBM MQ 消息配合使用的服务集成服务质量。 IBM MQ 网络中的消息具有自己的服务质量级别。 此级别是持久非持久。 当服务集成应用程序接收到这些消息时,将根据其 IBM MQ 服务质量级别为其分配服务质量级别的服务集成质量。

对于接收到的持久 IBM MQ 消息,缺省服务集成服务质量为 ASSURED_PERSISTENT。 如果选择覆盖缺省值,那么您可能要选择另一持久服务集成服务质量 (RELIABLE_PERSISTENT)。 但是,可选择下列五个可能的服务集成服务质量中的任何一个:
BEST_毫不持久
EXPRESS_NONPERSISTENT
RELIABLE_NONPERSISTENT
RELIABLE_PERSISTENT
ASSURED_PERSISTENT

有关更多信息,请参阅 将 JMS 交付选项和消息可靠性映射到 IBM MQ 持久性值

-overrideOfQOSByProducerAllowed TRUE | FALSE
控制生产者与目标之间的消息流的服务质量。 选择该选项以使用生产者指定的服务质量,而不是为目标定义的质量。
-defaultPriority number
当生产者未设置优先级时,指定给发送到此目标的消息的缺省优先级。
-maxFailedDeliveries number
尝试处理消息的最大失败次数。 在尝试此失败次数之后,会将消息从预期目标转发到它的异常目标。 指定 02147483647范围内的值。 值为 0(零)意味着如果第一次尝试时不能传递消息,那么就像 -exceptionDestination 参数定义的那样,或者将该消息转发至异常目标,或者废弃该消息。
-exceptionDestination
使用这些属性来定义无法传递至此目标的任何消息所发生的情况。
缺省情况下,无法传递到此目标的所有消息都将重新路由到将此目标分配到的消息传递引擎 (_SYSTEM.Exception.Destination.messaging_engine_name)。 使用此参数覆盖缺省值。 您可以设置此目标的特定异常目标,也可以通过输入空字符串 ("") 指定不将不可传送消息发送至异常目标,在此情况下,最大失败传送计数不起作用。
注: 无法传递的消息可能会阻止处理等待传递到同一目标的其他消息。
您可以使用此选项并且不指定任何异常目标,以保存消息订购。
-sendAllowed TRUE | FALSE
取消选中此选项(将其设置为 FALSE)以使生产者无法将消息发送至这些目标。
  • 对于非调解目标的队列点或调解目标的调解点,如果取消选中此选项,那么新消息(来自连接的生产者或转发自另一个目标)将重新定向至任何可用的消息点。 如果没有消息点可用,那么已被接受到总线中的消息以及来自连接的生产者的新消息将被总线保留,直到消息点变为可用为止。 该操作的唯一例外是:目标仅有唯一的消息点(队列点或调解点,这取决于目标是调解还是非调解的),其中生产者连接至相同的消息传递引擎。 在此情况下,每次进行发送调用时都会生成异常消息。 异常消息指示已对唯一的现有位置禁止发送。 生产者如常打开,如果重新选择此位置的允许发送属性(重置为 TRUE),那么发送调用会成功。
  • 对于调解目标的队列点,如果取消选中此选项,那么来自调解实例的消息将重新定向至任何可用的消息点。 如果没有可用的消息点,那么总线会保留消息直到某个消息点变为可用。 对于任何调解实例 (即,在具有调解点的任何服务器上) ,如果同一服务器托管队列点,并且该队列点是目标的唯一队列点,那么调解将更改为 stopped on error 状态。
-receiveAllowed TRUE | FALSE
清除此选项(将它设置为 false),使得使用者无法从此目标接收消息。 对于消息点,如果清除此选项,那么任何打开的使用者都会更改状态,如果使用者请求消息,那么将生成异常。 可以继续发送消息,并且在消息点上积累它们。
-receiveExclusive TRUE | FALSE
选择此选项(将它设置为 true)以仅允许一个使用者连接到目标。 如果选择此选项,那么一次只有一个使用者能够连接至队列目标的每个队列点。 如果一个使用者已连接至某个队列点,那么尝试连接至该队列点的后续使用者会被拒绝。
-maintainStrictMessageOrder TRUE | FALSE
如果选择此选项(将其设置为 TRUE),那么会保留生产者将消息发送至目标时使用的顺序。
在运行时,此属性优先于其他配置属性值。 有关在运行时覆盖的配置属性的信息,请参阅 对总线目标进行严格消息排序
-topicAccessCheckRequired
如果访问主题时需要进行授权检查,请添加此选项。
-replyDestination
附加到发送给此目标的消息的任何非空反向路由路径的目标名。 此属性旨在与应答消息的调解配合使用。 有关使用此属性的更多信息,请参阅 配置目标反向路由路径
-replyDestinationBus
配置应答目标的总线的名称。 此属性旨在与应答消息的调解配合使用。 有关使用此属性的更多信息,请参阅 配置目标反向路由路径
-delegateAuthorizationCheckToTarget
表明是在对别名还是目标位置执行授权检查。 如果要在目标上执行授权检查,请包含此选项。
-wmqQueueName
要将这些总线目标分配给 IBM MQ 队列,请指定在其中分配目标的 WebSphere MQ 服务器总线成员的名称 ( -wmqServer 参数) 和用于存储发送到这些目标的消息的 IBM MQ 队列的名称 (此参数)。 将-wmqServer 参数设置为创建 WebSphere MQ 服务器时提供的名称。 将 -wmqQueueName 参数设置为由 IBM MQ 管理分配给 IBM MQ 队列的名称。 请勿指定 -cluster-node-server 参数。
-useRFH2-mqRfh2Allowed TRUE | FALSE
确定发送至这些目标的消息是否具有 MQRFH2 头。
当服务集成将消息从服务集成格式转换为 IBM MQ 格式时,缺省情况下,它会在 IBM MQ 消息中包含 MQRHF2 头。 此头包含消息属性 (例如, JMS 消息属性) ,这些属性不是 IBM MQ 消息属性,因此不会显示在 IBM MQ 消息描述符 (MQMD) 中。 某些 IBM MQ 应用程序无法处理包含 MQRFH2 头的消息。 如果发送到此目标的消息将由无法容忍 MQRFH2的 IBM MQ 应用程序处理,请清除此选项 (将其设置为 FALSE)。
如果要将队列类型目标分配给 WebSphere MQ 服务器总线成员,请使用 -useRFH2 参数。 如果要创建别名目标或外部目标,请使用 -mqRfh2Allowed 参数。
-auditAllowed TRUE | FALSE
在对总线和应用程序服务器启用了审计的情况下,取消选中此选项(将其设置为 FALSE)会阻止总线审计主题级别授权检查。 缺省值为 true。 必须具有审计管理员特权才能使用此参数。 如果在创建其他类型的目标时使用此参数,那么会忽略此参数。
-defaultForwardRoutingPath
消息未包含正向路由路径时对该消息设置的正向路由路径值。 这标识中间总线目标的顺序列表,消息必须经过这些目标才能到达最终总线目标。

该字段的格式是标准总线目标的列表。 每个标准总线目标都由后跟 destination_namebus_name 组成。

如果指定了多个标准总线目标,请用空格分隔每个标准总线目标。

例如,您在 Jython 中指定包含 Queue1 (来自 BUS1 ) 和 Queue2 (来自 BUS2 ) 的路由路径,如下所示:
-defaultForwardRoutingPath=[[BUS1 Queue1] [BUS2 Queue2]]
-queuePoints
别名目标的用户使用的队列点列表。 如果未提供特定队列点,那么可使用所有队列点。 期望目标必须是与别名目标定义位于同一总线的队列目标。 而且,期望目标必须是带有多个队列点的队列目标。

队列点被指定为如下格式:destination_name@messaging_engine_name

-mediationPoints
别名目标的用户使用的调解点列表。 如果未提供特定调解点,那么可使用所有调解点。 期望目标必须是与别名目标定义位于同一总线的已调解队列目标。 而且,期望目标必须是带有多个调解点的队列目标。

调解点被指定为如下格式:destination_name@messaging_engine_name

-persistRedeliveryCount TRUE | FALSE
如果选中此选项(将其设置为 TRUE),那么传递失败的 JMS 消息计数将持久保存在消息存储器中。 缺省情况下,此选项的值设置为 FALSE
重要信息: 虽然选择了此属性,但在使用 WebSphere Application Server V 9.0 及更高版本的 sibDBUpgrade 命令升级数据库表之前,此属性将不会生效。

示例 1

  • 使用 Jython:
    wsadmin>AdminTask.createSIBDestinations("[-bus bus1 -type QUEUE
    -cluster cluster1 -nameList [[-identifier myqueue1][-identifier myqueue2]]]")
    "(cells/9994GKCCell01/buses/bus1|sib-destinations.xml#SIBQueue_1098215169998)"
  • 使用 Jacl:
    wsadmin>$AdminTask createSIBDestinations {-bus bus1 -type QUEUE 
    -cluster cluster1 -nameList {{myqueue1} {myqueue2}}}
    (cells/9994GKCCell01/buses/bus1|sib-destinations.xml#SIBQueue_1098215169998)

示例 2:

为名为 MyAlias1MyAlias2MyDestination1 创建别名。 可通过这些别名目标访问期望目标的单个队列点:
  • 使用 Jython:
    wsadmin>AdminTask.createSIBDestinations("[-bus bus1 -type ALIAS 
    -nameList [[MyAlias1][MyAlias2]] -aliasBus bus1 
    -targetName MyDestination1 -reliability INHERIT -maxReliability INHERIT 
    -overrideOfOQSByProducerAllowed INHERIT -sendAllowed INHERIT 
    -receiveAllowed INHERIT -queuePoints [[MyDestination1@cluster1.001-bus1]
    [MyDestination1@cluster1.002-bus1]]]")
  • 使用 Jacl:
    wsadmin>set cluster [ lindex [ $AdminConfig list ServerCluster ] 1 ] 
    wsadmin>$AdminTask createSIBDestinations {-bus bus1 -type ALIAS 
    -nameList {{MyAlias1} {MyAlias2}} -aliasBus bus1 
    -targetName MyDestination1 -reliability INHERIT -maxReliability INHERIT 
    -overrideOfOQSByProducerAllowed INHERIT -sendAllowed INHERIT 
    -receiveAllowed INHERIT -queuePoints {{"MyDestination1@cluster1.001-bus1"} 
    {"MyDestination1@cluster1.002-bus1}}}