modifySIBDestination 命令
使用 modifySIBDestination 命令更改服务集成总线的总线目标的属性。
要运行该命令,请使用 wsadmin 脚本编制客户机的 AdminTask 对象。
wsadmin
脚本编制客户机通过 Qshell 运行.
有关更多信息,请参阅 使用 wsadmin 脚本编制配置 Qshell 以运行 WebSphere 脚本.
已经为服务集成总线命令提供了命令行帮助:
- 要获取 Jython 中可用服务集成总线命令的列表以及每个命令的简要描述,请在
wsadmin 提示符处输入以下命令:
print AdminTask.help('SIBAdminCommands')
- 要获取有关给定命令的总体帮助,请在 wsadmin 提示符处输入以下命令:
print AdminTask.help('command_name')
使用此命令后,请使用以下命令将更改保存到主配置中:
AdminConfig.save()
用途
modifySIBDestination 更改服务集成总线的总线目标的属性。
目标对象
总线目标。
必需参数
- -bus
- 在其上配置了总线目标的服务集成总线的名称。可以使用 listSIBuses 命令来列示现有总线的名称。
- -name
- 用于标识此目标以便进行管理的标识。
条件参数
无。
可选参数
- -description
- 指定总线目标的描述以用于管理。
- -reliability
- 指定生产者应用程序未设置显式可靠性时要指定给对此目标产生的消息的可靠性级别。服务集成支持 5 个可靠性级别(又称为传送选项或服务质量):
- BEST_EFFORT_NONPERSISTENT
- 当消息传递引擎停止或发生故障时,将废弃消息。如果用于发送消息的连接变为不可用或者系统资源不足,也可能会废弃消息。
- EXPRESS_NONPERSISTENT
- 当消息传递引擎停止或发生故障时,将废弃消息。如果用于发送消息的连接变为不可用,也可能会废弃消息。
- RELIABLE_NONPERSISTENT
- 当消息传递引擎停止或发生故障时,将废弃消息。
- RELIABLE_PERSISTENT
- 当消息传递引擎发生故障时,可能会废弃消息。
- ASSURED_PERSISTENT
- 不废弃消息。
注: 较高级别的可靠性对性能有较大影响。有关服务集成可靠性级别的更多信息,请参阅消息可靠性级别 - JMS 传送方式及服务集成服务质量。
- -overrideOfQOSByProducerAllowed TRUE | FALSE
- 控制生产者与目标之间的消息流的服务质量。如果选择此选项,那么会使用生产者指定的服务质量(而不是对目标定义的服务质量)。
- -defaultPriority number
- -maxFailedDeliveries number
- 指定 0 到 2147483647 之间的值。值为 0(零)意味着如果第一次尝试时不能传递消息,那么就像 -exceptionDestination 参数定义的那样,或者将该消息转发至异常目标,或者废弃该消息。
- -exceptionDestination value
- 缺省情况下,无法传送至此目标的所有消息将重新路由至此目标被指定至的消息传递引擎的系统缺省异常目标
(_SYSTEM.Exception.Destination.messaging_engine_name)。使用此参数覆盖缺省值。您可以设置此目标的特定异常目标,也可以通过输入空字符串 ("") 指定不将不可传送消息发送至异常目标,在此情况下,最大失败传送计数不起作用。 注: 不可传递的消息可阻塞正在等待传递至同一目标的其他消息的处理。
- 您可以使用此选项并且不指定任何异常目标,以保存消息订购。
- -sendAllowed TRUE | FALSE
- 取消选中此选项(将其设置为 FALSE)以使生产者无法将消息发送至此目标。
- 对于非调解目标的队列点或调解目标的调解点,如果取消选中此选项,那么新消息(来自连接的生产者或转发自另一个目标)将重新定向至任何可用的消息点。如果没有消息点可用,那么已被接受到总线中的消息以及来自连接的生产者的新消息将被总线保留,直到消息点变为可用为止。该操作的唯一例外是:目标仅有唯一的消息点(队列点或调解点,这取决于目标是调解还是非调解的),其中生产者连接至相同的消息传递引擎。在此情况下,每次进行发送调用时都会生成异常消息。异常消息指示已对唯一的现有位置禁止发送。生产者如常打开,如果重新选择此位置的允许发送属性(重置为 TRUE),那么发送调用会成功。
- 对于调解目标的队列点,如果取消选中此选项,那么来自调解实例的消息将重新定向至任何可用的消息点。如果没有可用的消息点,那么总线会保留消息直到某个消息点变为可用。对于任何调解实例(即任何具有调解点的服务器上的调解实例),如果同一服务器主管队列点,并且该队列点是该目标的唯一队列点,那么该调解将转入“出错停止”状态。
- -receiveAllowed TRUE | FALSE
- 对于该消息点,如果取消选中此选项,那么任何已打开的使用者会更改状态,并且该使用者请求消息时会生成异常。可以继续发送消息,并且在消息点上积累它们。
- -receiveExclusive TRUE | FALSE
- 如果选择此选项(将其设置为 true),那么仅允许一个使用者连接至目标。如果选择此选项,那么一次只有一个使用者能够连接至队列目标的每个队列点。如果一个使用者已连接至某个队列点,那么尝试连接至该队列点的后续使用者会被拒绝。
- -maintainStrictMessageOrder TRUE | FALSE
- 如果选择此选项(将其设置为 TRUE),那么会保留生产者将消息发送至目标时使用的顺序。
- 在运行时,此属性优先于其他配置属性值。有关在运行时被覆盖的配置属性的信息,请参阅总线目标的严格消息排序。注: 如果对现有主题目标启用了严格消息排序,那么任何现有持久预订以及关联的消息都将变为无效。当已启用严格的消息排序并重新启动环境时,将删除现有持久预订并重新创建这些持久预订;同时将删除与持久预订相关联的消息。
- -topicAccessCheckRequired
- 如果访问主题时需要进行授权检查,请添加此选项。
- -replyDestination
- 此属性旨在与应答消息的调解配合使用。有关如何使用此属性的更多信息,请参阅配置目标反向路由路径。
- -replyDestinationBus
- 对其配置应答目标的总线的名称。此属性旨在与应答消息的调解配合使用。有关如何使用此属性的更多信息,请参阅配置目标反向路由路径。
- -delegateAuthorizationCheckToTarget
- 如果要对期望目标执行授权检查,请添加此选项。
- -auditAllowed TRUE | FALSE
- 在对总线和应用程序服务器启用了审计的情况下,取消选中此选项(将其设置为 FALSE)会阻止总线审计主题级别授权检查。缺省值为 TRUE。必须具有审计管理员特权才能使用此参数。如果在创建其他类型的目标时使用此参数,那么会忽略此参数。
- -defaultForwardRoutingPath
- 消息未包含正向路由路径时对该消息设置的正向路由路径值。此参数标识消息到达目标总线目标前必须通过的中间总线目标的顺序列表。该字段的格式是指定为如下所示的总线目标列表:bus_name:destination_name。
- -queuePoints
- 别名目标的用户使用的队列点列表。如果未提供特定队列点,那么可使用所有队列点。期望目标必须是与别名目标定义位于同一总线的队列目标。而且,期望目标必须是带有多个队列点的队列目标。
队列点被指定为如下格式:destination_name@messaging_engine_name。
- -useAllQueuePoints TRUE | FALSE
- 如果将此选项设置为 TRUE,那么会使用所有可用队列点,如果将此选项设置为 FALSE,那么仅使用 -queuePoints 选项指定的列表中的队列点。
- -mediationPoints
- 别名目标的用户使用的调解点列表。如果未提供特定调解点,那么可使用所有调解点。期望目标必须是与别名目标定义位于同一总线的已调解队列目标。而且,期望目标必须是带有多个调解点的队列目标。
调解点被指定为如下格式:destination_name@messaging_engine_name。
- -useAllMediationPoints TRUE | FALSE
- 如果将此选项设置为 TRUE,那么会使用所有可用队列点,如果将此选项设置为 FALSE,那么仅使用 -mediationPoints 选项指定的列表中的队列点。
- -persistRedeliveryCount TRUE | FALSE
- 如果选中此选项(将其设置为 TRUE),那么传递失败的
JMS 消息计数将持久保存在消息存储器中。缺省情况下,此选项的值设置为 FALSE。要点: 虽然已选择该属性,但是在使用 WebSphere® Application Server V9.0 和更高版本的 sibDBUpgrade 命令升级数据库表之前,该属性将不会生效。
示例
- 使用 Jython:
wsadmin>AdminTask.showSIBDestination([“-bus”, “abus”, “-name”, “myqueue”]) “{receiveExclusive=false, defaultForwardRoutingPath=[], defaultPriority=0, exceptionDestination=_SYSTEM.Exception.Destination.node01.aserver-abus, uuid=97CC75AC71E5932CAB3417AC, overrideOfQOSByProducerAllowed=true, sendAllowed=true, maxFailedDeliveries=5, maxReliability=ASSURED_PERSISTENT, reliability=ASSURED_PERSISTENT, receiveAllowed=true, identifier=myqueue}” wsadmin>AdminTask.modifySIBDestination([“-bus”, “abus”, “-name”, “myqueue”, “-receiveAllowed”, “FALSE”]) wsadmin>AdminTask.showSIBDestination([“-bus”, “abus”, “-name”, “myqueue”]) “{receiveExclusive=false, defaultForwardRoutingPath=[], defaultPriority=0, exceptionDestination=_SYSTEM.Exception.Destination.node01.aserver-abus, uuid=97CC75AC71E5932CAB3417AC, overrideOfQOSByProducerAllowed=true, sendAllowed=true, maxFailedDeliveries=5, maxReliability=ASSURED_PERSISTENT, reliability=ASSURED_PERSISTENT, receiveAllowed=false, identifier=myqueue}”
- 使用 Jacl:
wsadmin>$AdminTask showSIBDestination {-bus abus -name myqueue} {receiveExclusive=false, defaultForwardRoutingPath=[], defaultPriority=0, exceptionDestination=_SYSTEM.Exception.Destination.node01.aserver-abus, uuid=97CC75AC71E5932CAB3417AC, overrideOfQOSByProducerAllowed=true, sendAllowed=true, maxFailedDeliveries=5, maxReliability=ASSURED_PERSISTENT, reliability=ASSURED_PERSISTENT, receiveAllowed=true, identifier=myqueue} wsadmin>$AdminTask modifySIBDestination {-bus abus -name myqueue -receiveAllowed FALSE} (cells/9994GKCCell01/buses/abus|sib-destinations.xml#SIBQueue_1098215169998) wsadmin>$AdminTask showSIBDestination {-bus abus -name myqueue} {receiveExclusive=false, defaultForwardRoutingPath=[], defaultPriority=0, exceptionDestination=_SYSTEM.Exception.Destination.node01.aserver-abus, uuid=97CC75AC71E5932CAB3417AC, overrideOfQOSByProducerAllowed=true, sendAllowed=true, maxFailedDeliveries=5, maxReliability=ASSURED_PERSISTENT, reliability=ASSURED_PERSISTENT, receiveAllowed=false, identifier=myqueue}
示例:修改目标别名“MyAlias2”以使用可用队列点和调解点的子集:
- 使用 Jython:
cluster=AdminConfig.list(“ServerCluster”).splitlines()[0] Qp1=AdminConfig.list(“SIBQueueLocalizationPoint” , cluster).splitlines()[0] Mp1=AdminConfig.list(“SIBMediationLocalizationPoint”).splitlines()[0] AdminTask.modifySIBDestination([“-bus” , “bus1” , “-name” , “MyAlias2”, “-queuePoints”, [[Qp1]], “-mediationPoints” , [[Mp1]]])
- 使用 Jacl:
set cluster [ lindex [ $AdminConfig list ServerCluster ] 1 ] set Qp1 [ lindex [ $AdminConfig list SIBQueueLocalizationPoint $cluster ] 0 ] set Mp1 [ lindex [ $AdminConfig list SIBMediationLocalizationPoint ] 0 ] $AdminTask modifySIBDestination {-bus bus1 -name MyAlias2 -queuePoints [[$Qp1]]-mediationPoints [[$Mp1]]}
示例:修改目标别名以移除对所使用队列点的任何局限性:
- 使用 Jython:
AdminTask.modifySIBDestination([“-bus” , “bus1” , “-name” , “MyAlias2”, “-queuePoints”, [[]]])
- 使用 Jacl:
$AdminTask modifySIBDestination {-bus bus1 -name MyAlias2 -useAllQueuePoints=true -useAllMediationPoints=true}