modifySIBDestination command

Use the modifySIBDestination command to change properties of a bus destination for a service integration bus.

To run the command, use the AdminTask object of the wsadmin scripting client.

[IBM i][IBM i]The wsadmin scripting client is run from Qshell.

Command-line help is provided for service integration bus commands:
  • For a list of the available service integration bus commands in Jython and a brief description of each command, enter the following command at the wsadmin prompt:

    print AdminTask.help('SIBAdminCommands')

  • For overview help on a given command, enter the following command at the wsadmin prompt:

    print AdminTask.help('command_name')

After using the command, save your changes to the master configuration by using the following command:

AdminConfig.save()

Purpose

The modifySIBDestination changes properties of a bus destination for a service integration bus.

Target object

A bus destination.

Required parameters

-bus
The name of the service integration bus on which the bus destination is configured. You can use the listSIBuses command to list the names of existing buses.
-name
The identifier by which this destination is known for administrative purposes.

Conditional parameters

None.

Optional parameters

-description
Specify a description for the bus destination, for administrative purposes.
-reliability
Specify the default reliability level to assign to a message produced to this destination when an explicit reliability has not been set by the producer application. Service integration supports five reliability levels (also known as delivery options or qualities of service):
BEST_EFFORT_NONPERSISTENT
Messages are discarded when a messaging engine stops or fails. Messages might also be discarded if a connection used to send them becomes unavailable or as a result of constrained system resources.
EXPRESS_NONPERSISTENT
Messages are discarded when a messaging engine stops or fails. Messages might also be discarded if a connection used to send them becomes unavailable.
RELIABLE_NONPERSISTENT
Messages are discarded when a messaging engine stops or fails.
RELIABLE_PERSISTENT
Messages might be discarded when a messaging engine fails.
ASSURED_PERSISTENT
Messages are not discarded.
Note: Higher levels of reliability have higher impacts on performance.

For more information about service integration reliability levels, see Message reliability levels - JMS delivery mode and service integration quality of service.

-overrideOfQOSByProducerAllowed TRUE | FALSE
Controls the quality of service for message flows between producers and the destination. Select this option to use the quality of service specified by producers instead of the quality defined for the destination.
-defaultPriority number
The default priority assigned to messages sent to this destination when a priority has not been set by the producer.
-maxFailedDeliveries number
The maximum number of failed attempts to process a message. After this number of failed attempts, the message is forwarded from the intended destination to its exception destination. Specify a value in the range 0 through 2147483647. A value of 0 (zero) means that if a message cannot be delivered on the first attempt, it is either forwarded to the exception destination or discarded, as defined by the -exceptionDestination parameter.
-exceptionDestination value
Use these properties to define what happens to any messages that cannot be delivered to this destination.
By default, all messages that cannot be delivered to this destination are rerouted to the system default exception destination for the messaging engine to which this destination is assigned (_SYSTEM.Exception.Destination.messaging_engine_name). Use this parameter to override the default value. You can set a specific exception destination for this destination, or you can specify that undeliverable messages are not rerouted to an exception destination by entering an empty string (""), in which case the maximum failed deliveries count has no effect.
Note: An undeliverable message can block the processing of other messages waiting for delivery to the same destination.
You can use this option and specify no exception destination to preserve message ordering.
-sendAllowed TRUE | FALSE
Clear this option (setting it to FALSE) to stop producers from being able to send messages to this destination.
  • For a queue point of a non-mediated destination, or a mediation point of a mediated destination, if you clear this option then new messages (from attached producers or forwarded from another destination) are redirected to any available message point. If no message points are available, then messages that have already been accepted onto the bus, and new messages from attached producers, are preserved by the bus until a message point becomes available. The only exception to this is the case of a destination with only one message point (queue point or mediation point depending on whether the destination is mediated or non-mediated), where the producer is attached to the same messaging engine. In this case, an exception message is generated on each send call. The exception message indicates that the only extant localization has been disabled for send. The producer remains open as usual, and any more send calls succeed if the Send allowed property of the localization is reselected (reset to TRUE).
  • For a queue point of a mediated destination, if you clear this option then messages from mediation instances are redirected to any available message point. If no message points are available, then the messages are preserved by the bus until a message point becomes available. For any mediation instance (that is, on any server that has a mediation point), if the same server hosts a queue point, and that queue point is the only queue point for the destination, then the mediation changes to the stopped on error state.
-receiveAllowed TRUE | FALSE
Clear this option (setting it to false) to prevent consumers from being able to receive messages from this destination. For the message point, if you clear this option then any open consumers change state and an exception is generated if the consumer requests a message. Messages can continue to be sent, and accumulate on the message point.
-receiveExclusive TRUE | FALSE
Select this option (setting it to true) to allow only one consumer to attach to a destination. If you select this option, only a single consumer can be attached to each queue point of a queue destination at any one time. Subsequent consumers attempting to attach to a queue point with a consumer already attached are rejected.
-maintainStrictMessageOrder TRUE | FALSE
Select this option (setting it to TRUE) to maintain the order in which a producer sends messages to the destination.
At run time, this property has priority over other configuration property values. For information about the configuration properties that are overridden at run time, see Strict message ordering for bus destinations.
Note: If the strict message ordering is enabled on an existing topic destination, any existing durable subscriptions along with the messages associated become invalid. When the strict message ordering is enabled and the environment is restarted, the existing durable subscriptions are deleted and re-created; the messages that are associated with the durable subscriptions are also deleted.
-topicAccessCheckRequired
Include this option if authorization checks are required for access to topics.
-replyDestination
The name of a destination to be appended to any non-empty reverse routing path of messages sent to this destination. This property is intended for use with mediations on reply messages. For more information about the use of this property, see Configuring a destination reverse routing path.
-replyDestinationBus
The name of the bus on which the reply destination is configured. This property is intended for use with mediations on reply messages. For more information about the use of this property, see Configuring a destination reverse routing path.
-delegateAuthorizationCheckToTarget
Indicates whether the authorization check is performed on the alias or the target destination. Include this option if you want the authorization check to be performed on the target destination.
-auditAllowed TRUE | FALSE
Clear this option (setting it to FALSE) to prevent the bus from auditing topic level authorization checks when the bus and application server have auditing enabled. The default value is TRUE. You must have Audit Administrator privileges to use this parameter. The parameter is ignored if it is used in the creation of other types of destination.
-defaultForwardRoutingPath
The value to which a message forward routing path is set if the message contains no forward routing path. This identifies a sequential list of intermediary bus destinations that messages must pass through to reach a target bus destination.

The format of the field is a list of fully qualified bus destinations. Each fully qualified bus destination consists of a bus_name followed by the destination_name.

If there is more than one fully qualified bus destination being specified, separate each fully qualified bus destination with a space.

For example, you specify (in Jython) the routing path that includes Queue1 from BUS1 and Queue2 from BUS2 as follows:
-defaultForwardRoutingPath=[[BUS1 Queue1] [BUS2 Queue2]]
-queuePoints
A list of the queue points used by users of the alias destination. If no specific queue points are supplied, all queue points can be used. The target destination must be a queue destination in the same bus as the alias destination definition. The target destination must also be a queue destination with multiple queue points.

A queue point is specified in the following form: destination_name@messaging_engine_name

-useAllQueuePoints TRUE | FALSE
If you set this option to TRUE all available queue points are used whereas, if you set this option to FALSE, only those queue points in the list specified by the -queuePoints option are used.
-mediationPoints
A list of the mediation points used by users of the alias destination. If no specific mediation points are supplied, all mediation points can be used. The target destination must be a mediated queue destination in the same bus as the alias destination definition. The target destination must also be a queue destination with multiple mediation points.

A mediation point is specified in the following form: destination_name@messaging_engine_name

-useAllMediationPoints TRUE | FALSE
If you set this option to TRUE all available queue points are used whereas, if you set this option to FALSE, only those queue points in the list specified by the -mediationPoints option are used.
-persistRedeliveryCount TRUE | FALSE
Select this option (setting it to TRUE) to persist the failed delivery counts of JMS messages in the message store. The value for the option is set to FALSE by default.
Important: Although the property is selected, the property will not be effective until the database tables are upgraded using the sibDBUpgrade command for WebSphere® Application Server Version 9.0 and later.

Example

  • Using 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}
  • Using 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}
    

Example: Modify a destination alias MyAlias2 to use a subset of the available queue points and mediation points:

  • Using 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]]])
  • Using 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]]}

Example: Modify a destination alias to remove any limitation on the queue points used:

  • Using Jython:
    AdminTask.modifySIBDestination([-bus , bus1 , -name , MyAlias2, 
     -queuePoints, [[]]])
  • Using Jacl:
    $AdminTask modifySIBDestination {-bus bus1 -name MyAlias2 
    -useAllQueuePoints=true -useAllMediationPoints=true}

Example: Set a default message forward routing path:

  • Using Jython:
    
    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}"                               
    
    
    AdminTask.modifySIBDestination(["-bus", "abus", "-name", "myqueue", "-receiveAllowed", 
    "FALSE", "-defaultForwardRoutingPath", "[[abus queue1] [abus Queue2]]"])        
    
    
    AdminTask.showSIBDestination(["-bus", "abus", "-name", "myqueue"])                                                            
    "{receiveExclusive=false, defaultForwardRoutingPath=[[abus, queue1] [abus, Queue2]],                                                       
    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}"