Date Created: Thu 12-May-2011

Get my WebSphere Application Server course here >> http://www.themiddlewareshop.com/products/



    Printing a summary of the run-time state of all messaging engines running in a WebSphere cell

    I found this script in the IBM WebSphere Information Centre and thought could be quite useful:

    The following script can be used to print a summary in XML form of the runtime state of all messaging engines running in a cell. It goes down as far as the depths of individual items, such as queue points, remote queue points, publication points, subscriptions, mediation points, and link transmitters. However, this script does not print out details of individual messages. It should be run against the deployment manager to list out all messaging engines in all buses.

    Procedure
    1. Create your script using a text editor.
    2. Run the script against the deployment manager of the cell:
    DMGR_PROFILE/bin/wsadmin.sh -lang jython -f printSIBusSummary.py output.xml

    # Sample program
    # * (C) COPYRIGHT International Business Machines Corp., 2008, 2009
    # * All Rights Reserved * Licensed Materials - Property of IBM
    # *
    # * This sample program is provided AS IS and may be used, executed,
    # * copied and modified without royalty payment by customer
    # *
    # * (a) for its own instruction and study,
    # * (b) in order to develop applications designed to run with an IBM
    # * WebSphere product for the customer's own internal use.
    #
    # Version: 1.01
    #
    # Information:
    # This script prints an XML summary of the runtime information available
    # for all queue points, publication points, mediation points, SIBus
    # links and WMQ links.
    # The script should be run against the deployment manager of the cell,
    # so that output is available from all running messaging engines in all buses.
    # The script collects the same information that can be displayed in via the
    # administrative console.
    # The following output is only available when the script is executed against
    # a WebSphere
    Application Server Version 7.0 or later environment:
    # - Service integration bus link information
    # - WebSphere MQ link information
    #
    # Usage:
    # UNIX, Linux, z/OS:
    # <DMGR_PROFILE>/bin/wsadmin.sh -lang jython -f printSIBusSummary.py <OUTFILE.XML>
    # Windows:
    # <DMGR_PROFILE>\bin\wsadmin.bat -lang jython -f printSIBusSummary.py <OUTFILE.XML>

    # Class to print an error out in full (with stack) to STDERR, as well as a short summary
    # within the XML output. An integer is assigned to each error, to help match up the two.
    class ErrorTracker:
    errorCount = 0
    # Helper method to print exception details as an error attribute in a tag
    def printErrorAndCloseTag(self, exception_tuple, oneLine):
    self.errorCount += 1
    # Print the error to STDERR
    sys.stderr.write("ERROR [" + str(self.errorCount) + "]:\n")
    sys.excepthook(exception_tuple[0],exception_tuple[1],exception_tuple[2])
    # Print a summary of the error to the output file
    out.write(' error="[' + str(self.errorCount) + ']: ')
    out.write(str(exception_tuple[0]).strip())
    if exception_tuple[1] != None: out.write(': ' + str(exception_tuple[1]).strip())
    if oneLine == 1: out.write('"/>\n')
    else: out.write('">\n')
    # Single global instance of error tracker
    et = ErrorTracker()

    # Helper method to get a JMX attribute in string form
    def getStrAttr(mBean, attr):
    val = AdminControl.getAttribute_jmx(mBean, attr)
    if val == None: val = ''
    else: val = str(val)
    return val

    # Helper method to get the return value of JMX method in string form
    def getStrReturnVal(mBean, method):
    val = AdminControl.invoke_jmx(mBean, method, [], [])
    if val == None: val = ''
    else: val = str(val)
    return val

    # Helper toString method to handle None values as empty strings
    def toStr(val):
    if val == None: val = ''
    else: val = str(val)
    return val

    # Messaging engine class wraps an ME, maps its name to/from a UUID,
    # and contains all the methods we used to print out the runtime state
    # of that messaging engines
    class MessagingEngine:
    "A class for printing a runtime summary of a messaging engine"
    # Constructor
    def __init__(self, bus, name, uuid):
    self.bus = bus
    self.name = name
    self.uuid = uuid

    # Method to print a summary of the runtime state of this messaging engine
    # - this is a the entry point into the class (other methods are logically private)
    def printRuntimeStateXML(self, indent):
    # Print the start of the tag (leaving room for additional properties)
    out.write(indent + '<MessagingEngine name="' + self.name + '" uuid="' + self.uuid + '"')
    meMBean = None
    try:
    # First lookup our MBean
    meLookupName = AdminControl.makeObjectName('WebSphere:type=SIBMessagingEngine,name=' + self.name + ',*')
    meMBeans = AdminControl.queryNames_jmx(meLookupName, None)
    if (meMBeans == None) or (meMBeans.size() == 0):
    # Just an empty messaging engine
    out.write(' state="Unknown (no MBean found)">\n')
    elif meMBeans.size() == 1:
    # Save a ref to the MBean
    meMBean = meMBeans[0]
    # Complete the entry tag
    out.write(' state="' + AdminControl.invoke_jmx(meMBean, "state", [], []) + '"')
    out.write(' activeServer="' + meMBean.getKeyProperty("process") + '"')
    out.write('>\n')
    else:
    # We only expect to zero/one MBean
    raise Exception, "Found " + str(len(meMBeans)) + " MBeans for messaging engine. Expected 1"
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 0)
    # Iterate through the contents
    if (meMBean != None):
    self.printQueuePointsXML(meMBean, indent + " ")
    self.printRemoteQueuePointsXML(meMBean, indent + " ")
    self.printMediationPointsXML(meMBean, indent + " ")
    self.printRemoteMediationPointsXML(meMBean, indent + " ")
    self.printPublicationPointsXML(meMBean, indent + " ")
    self.printBusLinks(meMBean, indent + " ")
    self.printWMQLinks(meMBean, indent + " ")
    # Complete our tag
    out.write(indent + "</MessagingEngine>\n")

    # Print a summary of all the queue points for the messaging engine,
    # using the supplied ME MBean looked up by the caller
    def printQueuePointsXML(self, meMBean, indent):
    qpMBeans = None
    out.write(indent + "<QueuePoints")
    try:
    # Get a list of queue point MBeans
    qpLookupName = AdminControl.makeObjectName('WebSphere:type=SIBQueuePoint,SIBMessagingEngine=' + self.name + ',*')
    qpMBeans = AdminControl.queryNames_jmx(qpLookupName, None)
    out.write('>\n') # Complete the tag as lookup was successful
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 0)
    # Run through each one
    for qpMBean in qpMBeans:
    rqps = {} # Directory of all RQPs for this queue point
    oneLineTag = 0
    out.write(indent + " <QueuePoint")
    try:
    out.write(' name="' + qpMBean.getKeyProperty("name") + '@' + self.name + '"')
    qpState = getStrAttr(qpMBean, "state")
    out.write(' state="' + qpState + '"')
    out.write(' depth="' + getStrAttr(qpMBean, "depth") + '"')
    hmt = AdminControl.getAttribute_jmx(qpMBean, "highMessageThreshold")
    if (hmt != None) and (hmt == java.lang.Long.MAX_VALUE): hmt = "MAX_VALUE"
    out.write(' highMessageThreshold="' + str(hmt) + '"')
    out.write(' sendAllowed="' + getStrAttr(qpMBean, "sendAllowed") + '"')
    # Only attempt to get additional details for active queue points
    if qpState == 'ACTIVE':
    # Get a list of inbound receivers, for remote queue points
    inboundReceivers = AdminControl.invoke_jmx(qpMBean, "listInboundReceivers", [], [])
    # Get a list of remote consumer transmitters, for remote queue points
    consumerTransmitters = AdminControl.invoke_jmx(qpMBean, "listRemoteConsumerTransmitters", [], [])
    # Add RQPs for all inbound receivers
    for ir in inboundReceivers:
    uuid = ir.getRemoteEngineUuid()
    if rqps.has_key(uuid): rqp = rqps[uuid]
    else: rqp = KnownRemoteQueuePoint(qpMBean, uuid)
    rqps[uuid] = rqp
    rqp.inboundReceiver = ir
    # Add RQPs for all consumer transmitters
    for ct in consumerTransmitters:
    uuid = ct.getRemoteEngineUuid()
    if rqps.has_key(uuid): rqp = rqps[uuid]
    else: rqp = KnownRemoteQueuePoint(qpMBean, uuid)
    rqps[uuid] = rqp
    rqp.consumerTransmitter = ct
    # If we do not have any RQPs then we can terminate the tag on this line
    if len(rqps.keys()) == 0:
    out.write('/>\n')
    oneLineTag = 1
    else:
    out.write('>\n') # We need a full tag
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 0)
    # Process each RQP we found
    for rqpUuid in rqps.keys():
    rqp = rqps[rqpUuid]
    rqp.printSummaryXML(indent + " ")
    # Complete our QueuePoint tag
    if oneLineTag == 0: out.write(indent + " </QueuePoint>\n")
    # Complete our QueuePoints tag
    out.write(indent + "</QueuePoints>\n")

    # Print a summary of all the remote queue points for the messaging engine,
    # using the supplied ME MBean looked up by the caller
    def printRemoteQueuePointsXML(self, meMBean, indent):
    rqpMBeans = None
    out.write(indent + "<RemoteQueuePoints")
    try:
    # Get a list of remote queue point MBeans
    rqpLookupName = AdminControl.makeObjectName('WebSphere:type=SIBRemoteQueuePoint,SIBMessagingEngine=' + self.name + ',*')
    rqpMBeans = AdminControl.queryNames_jmx(rqpLookupName, None)
    out.write('>\n') # Complete the tag as lookup was successful
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 0)
    # Run through each one
    for rqpMBean in rqpMBeans:
    oneLineTag = 0
    out.write(indent + " <RemoteQueuePoint")
    try:
    out.write(' name="' + rqpMBean.getKeyProperty("name") + '@' + self.name + '"')
    remoteMEuuid = getStrAttr(rqpMBean, "remoteMessagingEngineUuid")
    if (mesByUUID.has_key(remoteMEuuid)): remoteMEName = mesByUUID[remoteMEuuid].name
    else: remoteMEName = "Unknown"
    out.write(' remoteME="' + remoteMEName + '"')
    out.write(' remoteMEUUID="' + remoteMEuuid + '"')

    # Get outbound transmitter details, if one exists
    currentOutboundMessages = 0
    outboundMessagesSent = 0
    outboundTransmitter = AdminControl.invoke_jmx(rqpMBean, "getOutboundTransmitter", [], [])
    if (outboundTransmitter != None):
    currentOutboundMessages = outboundTransmitter.getDepth()
    outboundMessagesSent = outboundTransmitter.getNumberOfMessagesSent()
    out.write(' currentOutboundMessages="' + str(currentOutboundMessages) + '"')
    out.write(' outboundMessageSent="' + str(outboundMessagesSent) + '"')

    # Get remote consumer receiver, if one exists
    remoteConsumerReceiver = AdminControl.invoke_jmx(rqpMBean, "getRemoteConsumerReceiver", [], [])
    currentMessageRequests = 0
    completedMessageRequests = 0
    messageRequestsIssued = 0
    if (remoteConsumerReceiver != None):
    currentMessageRequests = remoteConsumerReceiver.getNumberOfActiveRequests()
    completedMessageRequests = remoteConsumerReceiver.getNumberOfCompletedRequests()
    messageRequestsIssued = remoteConsumerReceiver.getNumberOfRequestsIssued()
    out.write(' currentMessageRequests="' + str(currentMessageRequests) + '"')
    out.write(' completedMessageRequests="' + str(completedMessageRequests) + '"')
    out.write(' messageRequestsIssued="' + str(messageRequestsIssued) + '"')

    # Always one line for remote queue points
    out.write('/>\n')
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 1)
    # Complete our QueuePoints tag
    out.write(indent + "</RemoteQueuePoints>\n")

    # Print a summary of all the mediation points for the messaging engine,
    # using the supplied ME MBean looked up by the caller
    def printMediationPointsXML(self, meMBean, indent):
    mpMBeans = None
    out.write(indent + "<MediationPoints")
    try:
    # Get a list of mediation point MBeans
    mpLookupName = AdminControl.makeObjectName('WebSphere:type=SIBMediationPoint,SIBMessagingEngine=' + self.name + ',*')
    mpMBeans = AdminControl.queryNames_jmx(mpLookupName, None)
    out.write('>\n') # Complete the tag as lookup was successful
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 0)
    # Run through each one
    for mpMBean in mpMBeans:
    out.write(indent + " <MediationPoint")
    try:
    out.write(' name="' + mpMBean.getKeyProperty("name") + '@' + self.name + '"')
    mpState = getStrAttr(mpMBean, "currentState")
    out.write(' status="' + mpState + '"')
    out.write(' depth="' + getStrAttr(mpMBean, "depth") + '"')
    hmt = AdminControl.getAttribute_jmx(mpMBean, "highMessageThreshold")
    if (hmt != None) and (hmt == java.lang.Long.MAX_VALUE): hmt = "MAX_VALUE"
    out.write(' highMessageThreshold="' + str(hmt) + '"')
    out.write(' sendAllowed="' + getStrAttr(mpMBean, "sendAllowed") + '"')
    out.write('/>\n')
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 1)
    # Complete our QueuePoints tag
    out.write(indent + "</MediationPoints>\n")

    # Print a summary of all the remote mediation points for the messaging engine,
    # using the supplied ME MBean looked up by the caller
    def printRemoteMediationPointsXML(self, meMBean, indent):
    rmpMBeans = None
    out.write(indent + "<RemoteMediationPoints")
    try:
    # Get a list of remote mediation point MBeans
    rmpLookupName = AdminControl.makeObjectName('WebSphere:type=SIBRemoteMediationPoint,SIBMessagingEngine=' + self.name + ',*')
    rmpMBeans = AdminControl.queryNames_jmx(rmpLookupName, None)
    out.write('>\n') # Complete the tag as lookup was successful
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 0)
    # Run through each one
    for rmpMBean in rmpMBeans:
    oneLineTag = 0
    out.write(indent + " <RemoteMediationPoint")
    try:
    out.write(' name="' + rmpMBean.getKeyProperty("name") + '@' + self.name + '"')
    remoteMEuuid = getStrAttr(rmpMBean, "remoteMessagingEngineUuid")
    if (mesByUUID.has_key(remoteMEuuid)): remoteMEName = mesByUUID[remoteMEuuid].name
    else: remoteMEName = "Unknown"
    out.write(' remoteME="' + remoteMEName + '"')
    out.write(' remoteMEUUID="' + remoteMEuuid + '"')

    # Get outbound transmitter details, if one exists
    currentOutboundMessages = 0
    outboundMessagesSent = 0
    outboundTransmitter = AdminControl.invoke_jmx(rmpMBean, "getOutboundTransmitter", [], [])
    if (outboundTransmitter != None):
    currentOutboundMessages = outboundTransmitter.getDepth()
    outboundMessagesSent = outboundTransmitter.getNumberOfMessagesSent()
    out.write(' currentOutboundMessages="' + str(currentOutboundMessages) + '"')
    out.write(' outboundMessageSent="' + str(outboundMessagesSent) + '"')

    # Always one line for remote mediation points
    out.write('/>\n')
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 1)
    # Complete our MediationPoints tag
    out.write(indent + "</RemoteMediationPoints>\n")

    # Print a summary of all the publication points for the messaging engine,
    # using the supplied ME MBean looked up by the caller
    def printPublicationPointsXML(self, meMBean, indent):
    ppMBeans = None
    out.write(indent + "<PublicationPoints")
    try:
    # Get a list of publication point MBeans
    ppLookupName = AdminControl.makeObjectName('WebSphere:type=SIBPublicationPoint,SIBMessagingEngine=' + self.name + ',*')
    ppMBeans = AdminControl.queryNames_jmx(ppLookupName, None)
    out.write('>\n') # Complete the tag as lookup was successful
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 0)
    # Run through each one
    for ppMBean in ppMBeans:
    inboundReceivers = []
    subscriptions = []
    out.write(indent + " <PublicationPoint")
    depth = None
    try:
    depth = getStrAttr(ppMBean, "depth")
    except:
    # Attribute does not exist
    pass
    try:
    out.write(' name="' + ppMBean.getKeyProperty("name") + '@' + self.name + '"')
    if depth != None: out.write(' depth="' + depth + '"')
    hmt = AdminControl.getAttribute_jmx(ppMBean, "highMessageThreshold")
    if (hmt != None) and (hmt == java.lang.Long.MAX_VALUE): hmt = "MAX_VALUE"
    out.write(' highMessageThreshold="' + str(hmt) + '"')
    out.write(' sendAllowed="' + getStrAttr(ppMBean, "sendAllowed") + '"')
    # Get a list of inbound receivers (remote publication points)
    inboundReceivers = AdminControl.invoke_jmx(ppMBean, "listInboundReceivers", [], [])
    # Get a list of subscriptions
    subscriptions = AdminControl.invoke_jmx(ppMBean, "getSubscriptions", [], [])
    # Complete the tag
    out.write('>\n')
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 0)
    # Run through each remote publication point (inbound receiver)
    for ir in inboundReceivers:
    out.write(indent + ' <RemotePublicationPoint')
    try:
    remoteMEuuid = ir.getRemoteEngineUuid()
    if mesByUUID.has_key(remoteMEuuid): remoteMEname = mesByUUID[remoteMEuuid].name
    else: remoteMEname = "Unknown"
    out.write(' me="' + remoteMEname + '"')
    out.write(' meUUID="' + remoteMEuuid + '"')
    out.write(' currentInboundMessages="' + str(ir.getDepth()) + '"')
    out.write(' inboundMessagesReceived="' + str(ir.getNumberOfMessagesReceived()) + '"')
    out.write('/>\n')
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 1)
    # Run through each subscription
    for sub in subscriptions:
    oneLineTag = 0
    rsps = [] # remote subscription points
    out.write(indent + ' <Subscription')
    try:
    out.write(' subscriberId="' + toStr(sub.getSubscriberId()) + '"')
    out.write(' depth="' + str(sub.getDepth()) + '"')
    # Write any selector
    selector = sub.getSelector()
    if selector != None: out.write(' selector="' + sub.getSelector() + '"')
    # Write topics
    topics = sub.getTopics()
    if (topics != None):
    out.write(' topics="')
    sep = ''
    for topic in topics:
    if (topic == None): topic = ''
    out.write(topic + sep)
    sep = ','
    out.write('"')
    # Get a list of remote subscription points
    rsps = AdminControl.invoke_jmx(ppMBean, "listRemoteConsumerTransmitters", [sub], ['com.ibm.websphere.sib.admin.SIBSubscription'])
    # Check if we have children, or can just close the tag here
    if len(rsps) == 0:
    out.write('/>\n')
    oneLineTag = 1
    else: out.write('>\n')
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 0)
    # Do we have remote sub points?
    for rsp in rsps:
    out.write(indent + ' <KnownRemoteSubscriptionPoint')
    try:
    remoteMEuuid = rsp.getRemoteEngineUuid()
    if mesByUUID.has_key(remoteMEuuid): remoteMEname = mesByUUID[remoteMEuuid].name
    else: remoteMEname = "Unknown"
    out.write(' me="' + remoteMEname + '"')
    out.write(' meUUID="' + remoteMEuuid + '"')
    out.write(' currentMessageRequests="' + str(rsp.getDepth()) + '"')
    out.write(' completedMessageRequests="' + str(rsp.getNumberOfCompletedRequests()) + '"')
    out.write(' messageRequestsReceived="' + str(rsp.getNumberOfRequestsReceived()) + '"')
    out.write('/>\n')
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 1)
    # Close the subscription tag if required
    if oneLineTag == 0: out.write(indent + ' </Subscription>\n')
    # Complete our PublicationPoint tag
    out.write(indent + " </PublicationPoint>\n")
    # Complete our PublicationPoints tag
    out.write(indent + "</PublicationPoints>\n")

    # Print a summary of all the SIBus links hosted on this messaging engine.
    # using the supplied ME MBean looked up by the caller
    def printBusLinks(self, meMBean, indent):
    glMBeans = None
    out.write(indent + "<BusLinks")
    try:
    # Get a list of link transmitter MBeans - will be empty for <V7.0 MEs
    glLookupName = AdminControl.makeObjectName('WebSphere:type=SIBGatewayLink,SIBMessagingEngine=' + self.name + ',*')
    glMBeans = AdminControl.queryNames_jmx(glLookupName, None)
    out.write('>\n') # Complete the tag as lookup was successful
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 0)
    # Keep track of all link target UUIDs we've seen as local links, to exclude from the remote transmitter list
    localLinkUuids = {}
    # Run through each transmitter
    for glMBean in glMBeans:
    oneLineTag = 0
    linkReceivers = []
    targetUuid = glMBean.getKeyProperty("targetUuid")
    localLinkUuids[targetUuid] = 1
    out.write(indent + " <BusLink")
    # First check we can query the foreign bus name... if this fails we are
    # talking to a < V7 messaging engine
    foreignBusName = None
    oldVersion = 0
    try:
    foreignBusName = getStrReturnVal(glMBean, "getForeignBusName")
    except:
    oldVersion = 1
    # Get the name (sometimes the returned name includes quotes)
    virtualLinkName = toStr(glMBean.getKeyProperty("name"))
    if not (virtualLinkName.find('"') == 0): virtualLinkName = '"' + virtualLinkName + '"'
    # Print the correct information based on the version
    if oldVersion:
    try:
    out.write(' name=' + virtualLinkName)
    out.write(' state="' + getStrReturnVal(glMBean, "getStatus") + '"')
    out.write('>\n')
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 0)
    else:
    try:
    out.write(' name=' + virtualLinkName )
    out.write(' foreignBus="' + foreignBusName + '"')
    stateString = AdminControl.invoke_jmx(glMBean, "getStatus", [], [])
    if stateString != None:
    out.write(' state="' + stateString + '"')
    linkReceivers = AdminControl.invoke_jmx(glMBean, "listLinkReceivers", [], [])
    if linkReceivers == None: linkReceivers = []
    out.write('>\n')
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 0)
    # Print out the link receivers for this link
    for lr in linkReceivers:
    out.write(indent + " <LinkReceiver")
    try:
    out.write(' state="' + lr.getState() + '"')
    receiverType = lr.getReceiverType()
    remoteMEuuid = lr.getForeignEngineUuid()
    if mesByUUID.has_key(remoteMEuuid): remoteMEname = mesByUUID[remoteMEuuid].name
    else: remoteMEname = "Unknown"
    out.write(' me="' + remoteMEname + '"')
    out.write(' meUUID="' + remoteMEuuid + '"')
    out.write(' receiverType="' + receiverType + '"')
    if receiverType == "PUBLICATION":
    out.write(' topicSpace="' + toStr(lr.getTargetDestination()) + '"')
    out.write(' currentInboundMessages="' + str(lr.getDepth()) + '"')
    out.write(' messagesReceived="' + str(lr.getNumberOfMessagesReceived()) + '"')
    timeSinceLastMessageReceived = lr.getTimeSinceLastMessageReceived()
    if timeSinceLastMessageReceived > 0:
    out.write(' timeSinceLastMessageReceived="' + str(timeSinceLastMessageReceived) + 'ms"')
    out.write(indent + "/>\n")
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 1)
    # Print out the link transmitters for this link
    self.printLinkTransmittersXML(meMBean, targetUuid, {}, indent + ' ')
    # End the link tag
    out.write(indent + ' </BusLink>\n')
    # Just in case we have any orphaned link mBeans, print these out here
    self.printLinkTransmittersXML(meMBean, None, localLinkUuids, indent + ' ')
    # Complete our SIBLinks tag
    out.write(indent + "</BusLinks>\n")

    # Print a summary of SIBus link transmitters for the messaging engine,
    # using the supplied ME MBean looked up by the caller.
    # Either prints all transmitters with a particular target UUID, or
    # prints all transmitters excluding keys that exist in the excludeUuids hash.
    def printLinkTransmittersXML(self, meMBean, targetUuid, excludeUuids, indent):
    ltMBeans = None
    try:
    # Get a list of link transmitter MBeans - will be empty for <V7.0 MEs
    lookupString = 'WebSphere:type=SIBLinkTransmitter,SIBMessagingEngine=' + self.name
    if targetUuid != None: lookupString += ',targetUuid=' + targetUuid
    lookupString += ',*'
    ltLookupName = AdminControl.makeObjectName(lookupString)
    ltMBeans = AdminControl.queryNames_jmx(ltLookupName, None)
    except:
    out.write('<SIBLinkTransmitters')
    et.printErrorAndCloseTag(sys.exc_info(), 1)
    # Run through each transmitter
    for ltMBean in ltMBeans:
    # Check this one shouldn't be excluded
    transmitterTargetUuid = ltMBean.getKeyProperty("targetUuid")
    if not excludeUuids.has_key(transmitterTargetUuid):
    out.write(indent + "<LinkTransmitter")
    try:
    if (targetUuid == None): out.write(' foreignBus="' + getStrReturnVal(ltMBean, "getForeignBusName") + '"')
    out.write(' state="' + getStrReturnVal(ltMBean, "getState") + '"')
    out.write(' linkType="' + getStrReturnVal(ltMBean, "getLinkType") + '"')
    transmitterType = getStrReturnVal(ltMBean, "getTransmitterType")
    out.write(' transmitterType="' + transmitterType + '"')
    if transmitterType == "PUBLICATION":
    out.write(' topicSpace="' + getStrReturnVal(ltMBean, "getTargetDestination") + '"')
    putInhibited = AdminControl.invoke_jmx(ltMBean, "isPutInhibited", [], [])
    if putInhibited == 0: sendAllowed = 1
    else: sendAllowed = 0
    out.write(' sendAllowed="' + str(sendAllowed) + '"')
    out.write(' currentOutboundMessages="' + getStrReturnVal(ltMBean, "getDepth") + '"')
    out.write(' messagesSent="' + getStrReturnVal(ltMBean, "getNumberOfMessagesSent") + '"')
    timeSinceLastMessageSent = AdminControl.invoke_jmx(ltMBean, "getTimeSinceLastMessageSent", [], [])
    if timeSinceLastMessageSent > 0:
    out.write(' timeSinceLastMessageSent="' + str(timeSinceLastMessageSent) + 'ms"')

    # Always one line for link transmitters
    out.write('/>\n')
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 1)

    # Print a summary of all the WMQ links hosted on this messaging engine
    # using the supplied ME MBean looked up by the caller
    def printWMQLinks(self, meMBean, indent):
    mqlMBeans = None
    out.write(indent + "<WMQLinks")
    try:
    # Get a list of WMQ Link MBeans - will be empty for <V7.0 MEs
    mqlLookupName = AdminControl.makeObjectName('WebSphere:type=SIBMQLink,SIBMessagingEngine=' + self.name + ',*')
    mqlMBeans = AdminControl.queryNames_jmx(mqlLookupName, None)
    out.write('>\n') # Complete the tag as lookup was successful
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 0)
    # Run through each WMQ Link MBean found
    for mqlMBean in mqlMBeans:
    schlMBeans = []
    rchlMBeans = []
    # We may not be able to query msgs received as introduced at v7.0
    msgsReceived = None
    try:
    msgsReceived = getStrReturnVal(mqlMBean, "getTotalLinkMessagesReceived")
    except:
    pass
    out.write(indent + " <WMQLink")
    try:
    # Get the targetUuid
    linkName = mqlMBean.getKeyProperty("name")
    out.write(' name="' + linkName + '"')
    out.write(' state="' + getStrReturnVal(mqlMBean, "getOverallStatus") + '"')
    if msgsReceived != None: out.write(' messagesReceived="' + msgsReceived + '"')
    # Get a list of WMQ link sender channel instances
    schlLookupName = AdminControl.makeObjectName('WebSphere:type=SIBMQLinkSenderChannel,SIBMessagingEngine=' + self.name + ',name=' + linkName + 'SNDR,*')
    schlMBeans = AdminControl.queryNames_jmx(schlLookupName, None)
    # Get a list of WMQ link receiver channel instances
    rchlLookupName = AdminControl.makeObjectName('WebSphere:type=SIBMQLinkReceiverChannel,SIBMessagingEngine=' + self.name + ',name=' + linkName + 'RCVR,*')
    rchlMBeans = AdminControl.queryNames_jmx(rchlLookupName, None)
    out.write('>\n') # Complete the opening tag
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 0)
    # Iterate through the sender channels
    for schlMBean in schlMBeans:
    sxmitMBeans = []
    out.write(indent + " <SenderChannel")
    try:
    stateObject = AdminControl.invoke_jmx(schlMBean, "getCurrentStatus", [], [])
    channelName = stateObject.getChannelName()
    out.write(' channelName="' + channelName + '"')
    out.write(' state="' + toStr(stateObject.getState()) + '"')
    out.write(' virtualQmgr="' + stateObject.getQueueManager() + '"')
    out.write(' ipAddress="' + toStr(stateObject.getIpAddress()) + '"')
    out.write(' messagesSent="' + toStr(stateObject.getNumberOfMessagesSent()) + '"')
    out.write(' currentLUWID="' + toStr(stateObject.getCurrentLUWID()) + '"')
    out.write(' currentSequenceNo="' + toStr(stateObject.getCurrentSequenceNumber()) + '"')
    out.write(' inDoubt="' + toStr(stateObject.getInDoubt()) + '"')
    # Get a list of WMQ link sender channel transmitter instances
    sxmitLookupName = AdminControl.makeObjectName('WebSphere:type=SIBMQLinkSenderChannelTransmitter,SIBMessagingEngine=' + self.name + ',name=' + channelName + ',*')
    sxmitMBeans = AdminControl.queryNames_jmx(sxmitLookupName, None)
    out.write('>\n') # Complete the opening tag
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 0)
    # Iterate through the sender channel transmitters
    for sxmitMBean in sxmitMBeans:

    out.write(indent + " <SenderChannelTransmitter")
    # List of the known link transmitters
    knownLinkTransmitters = []
    oneLineTag = 0
    try:
    out.write(' status="' + getStrReturnVal(sxmitMBean, "getState") + '"')
    out.write(' currentOutboundMessages="' + getStrReturnVal(sxmitMBean, "getDepth") + '"')
    out.write(' messagesSent="' + getStrReturnVal(sxmitMBean, "getNumberOfMessagesSent") + '"')
    timeSinceLastMessageSent = AdminControl.invoke_jmx(sxmitMBean, "getTimeSinceLastMessageSent", [], [])
    if timeSinceLastMessageSent > 0:
    out.write(' timeSinceLastMessageSent="' + str(timeSinceLastMessageSent) + 'ms"')
    # List the known link transmitters
    knownLinkTransmitters = AdminControl.invoke_jmx(sxmitMBean, "listInboundReceivers", [], [])
    # Complete the tag
    if (knownLinkTransmitters == None) or (len(knownLinkTransmitters)) == 0:
    out.write('/>\n') # Complete the one-line tag
    oneLineTag = 1
    else: out.write('>\n')
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 1)
    # Print the known link transmitters
    if (oneLineTag == 0):
    for ir in knownLinkTransmitters:
    out.write(indent + ' <KnownRemoteSenderChannelTransmitter')
    try:
    remoteMEuuid = ir.getRemoteEngineUuid()
    if mesByUUID.has_key(remoteMEuuid): remoteMEname = mesByUUID[remoteMEuuid].name
    else: remoteMEname = "Unknown"
    out.write(' me="' + remoteMEname + '"')
    out.write(' meUUID="' + remoteMEuuid + '"')
    out.write(' currentInboundMessages="' + str(ir.getDepth()) + '"')
    out.write(' inboundMessagesReceived="' + str(ir.getNumberOfMessagesReceived()) + '"')
    out.write('/>\n')
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 1)
    # Close the transmitter tag
    out.write(indent + " </SenderChannelTransmitter>\n")
    # Close the sender tag
    out.write(indent + " </SenderChannel>\n")
    # Iterate through the receiver channels
    for rchlMBean in rchlMBeans:
    out.write(indent + " <ReceiverChannel")
    statusEntries = []
    try:
    out.write(' state="' + getStrReturnVal(rchlMBean,"getOverallStatus") + '"')
    # List the status of each instance
    statusEntries = AdminControl.invoke_jmx(rchlMBean, "getCurrentStatus", [], [])
    if (statusEntries == None): statusEntries = []
    out.write('>\n') # Complete the opening tag
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 0)
    # Print each entry
    for statusEntry in statusEntries:
    out.write(indent + " <ReceiverChannelStatus")
    try:
    out.write(' channelName="' + toStr(statusEntry.getChannelName()) + '"')
    out.write(' state="' + toStr(statusEntry.getState()) + '"')
    out.write(' qmgr="' + toStr(statusEntry.getQueueManager()) + '"')
    out.write(' ipAddress="' + toStr(statusEntry.getIpAddress()) + '"')
    out.write(' messagesReceived="' + toStr(statusEntry.getNumberOfMessagesReceived()) + '"')
    out.write(' currentLUWID="' + toStr(statusEntry.getCurrentLUWID()) + '"')
    out.write(' currentSequenceNo="' + toStr(statusEntry.getCurrentSequenceNumber()) + '"')
    out.write('/>\n') # Complete the tag
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 1)
    # Close the tag
    out.write(indent + " </ReceiverChannel>\n")
    # Complete our WMQLink tag
    out.write(indent + " </WMQLink>\n")
    # Complete our WMQLinks tag
    out.write(indent + "</WMQLinks>\n")

    # A small class to help us agregate consumer-transmitter and
    # inbound-receiver information on a queue point, and hence build a
    # "known remote queue point" for each remote messaging engine
    # UUID that we have remote put/get state for.
    class KnownRemoteQueuePoint:
    "A class for printing a runtime summary of a known remote queue point"
    consumerTransmitter = None
    inboundReceiver = None
    def __init__ (self, qpMBean, uuid):
    self.uuid = uuid
    if mesByUUID.has_key(uuid): self.name = mesByUUID[uuid].name
    else: self.name = "Unknown"
    self.qpMBean = qpMBean
    # Print an XML tag summarising this KnownRemoteQueuePoint
    def printSummaryXML(self, indent):
    out.write(indent + '<KnownRemoteQueuePoint me="' + self.name + '" meUUID="' + self.uuid + '"')
    try:
    currentInboundMessages = 0
    inboundMessagesReceived = 0
    if self.inboundReceiver != None:
    currentInboundMessages = self.inboundReceiver.getDepth()
    inboundMessagesReceived = self.inboundReceiver.getNumberOfMessagesReceived()
    out.write(' currentInboundMessages="' + str(currentInboundMessages) + '"')
    out.write(' inboundMessagesReceived="' + str(inboundMessagesReceived) + '"')
    currentMessageRequests = 0
    completedMessageRequests = 0
    messageRequestsReceived = 0
    if self.consumerTransmitter != None:
    currentMessageRequests = self.consumerTransmitter.getDepth()
    completedMessageRequests = self.consumerTransmitter.getNumberOfCompletedRequests()
    messageRequestsReceived = self.consumerTransmitter.getNumberOfRequestsReceived()
    out.write(' currentMessageRequests="' + str(currentMessageRequests) + '"')
    out.write(' completedMessageRequests="' + str(completedMessageRequests) + '"')
    out.write(' messageRequestsReceived="' + str(messageRequestsReceived) + '"')
    # Only need one line for this
    out.write('/>\n')
    except:
    et.printErrorAndCloseTag(sys.exc_info(), 1)

    # Script execution starts here ...

    # The only input parameter is the name of the output file.
    # Default to STDOUT if not specified
    if len(sys.argv) > 0:
    print "Writing output to", sys.argv[0]
    out = open(sys.argv[0], 'w')
    fileOpened = 1
    else:
    out = sys.stdout
    fileOpened = 0

    # Lookup all MEs in the configuration and build a ME UUID to name dictionary
    mesByUUID = {}
    mesByBus = {}
    mes = AdminConfig.list("SIBMessagingEngine").split("\n")
    for me in mes:
    # Remove carriage returns on Windows
    me = me.strip()
    # Construct an ME object
    meBus = AdminConfig.showAttribute(me, "busName")
    meName = AdminConfig.showAttribute(me, "name")
    meUUID = AdminConfig.showAttribute(me, "uuid")
    meObject = MessagingEngine(meBus, meName, meUUID)
    # Place the ME into the map by UUID
    mesByUUID[meUUID] = meObject
    # Place the ME into the list for this bus
    if (mesByBus.has_key(meBus)): meList = mesByBus[meBus]
    else: meList = []
    meList.append(meObject)
    mesByBus[meBus] = meList

    # Iterate through the buses, and MEs within each bus
    try:
    out.write('<?xml version="1.0"?>\n')
    out.write('<SIBusSummary>\n')
    for busName in mesByBus.keys():
    indent = ' '
    out.write(indent + '<Bus name="' + busName + '">\n')
    meList = mesByBus[busName]
    for me in meList:
    me.printRuntimeStateXML(indent + ' ')
    out.write(indent + '</Bus>\n')
    out.write('</SIBusSummary>\n')
    finally:
    if (fileOpened): out.close()


    Sample output

    <?xml version="1.0"?>
    <SIBusSummary>
    <Bus name="Bus2">
    <MessagingEngine name="Node1.server1-Bus2" uuid="B04215B7389FDA8F" state="Started" activeServer="server1">
    <QueuePoints>
    <QueuePoint name="Bus2Queue1@Node1.server1-Bus2" state="ACTIVE" depth="9" highMessageThreshold="50000" sendAllowed="1"/>
    <QueuePoint name="RemoteMediatedQueue1@Node1.server1-Bus2" state="ACTIVE" depth="5" highMessageThreshold="50000" sendAllowed="1">
    <KnownRemoteQueuePoint me="Node1.server2-Bus2" meUUID="CC8EAD412746BA2A" currentInboundMessages="0" inboundMessagesReceived="0" currentMessageRequests="0" completedMessageRequests="0" messageRequestsReceived="0"/>
    </QueuePoint>
    <QueuePoint name="_PSIMP.PROXY.QUEUE_B04215B7389FDA8F@Node1.server1-Bus2" state="ACTIVE" depth="0" highMessageThreshold="50000" sendAllowed="1">
    <KnownRemoteQueuePoint me="Node1.server2-Bus2" meUUID="CC8EAD412746BA2A" currentInboundMessages="0" inboundMessagesReceived="2" currentMessageRequests="0" completedMessageRequests="0" messageRequestsReceived="0"/>
    </QueuePoint>
    <QueuePoint name="_PTRM_B04215B7389FDA8F@Node1.server1-Bus2" state="ACTIVE" depth="0" highMessageThreshold="50000" sendAllowed="1"/>
    <QueuePoint name="_SYSTEM.Exception.Destination.Node1.server1-Bus2@Node1.server1-Bus2" state="ACTIVE" depth="3" highMessageThreshold="50000" sendAllowed="1"/>
    <QueuePoint name="_PSIMP.TDRECEIVER_B04215B7389FDA8F@Node1.server1-Bus2" state="ACTIVE" depth="0" highMessageThreshold="50000" sendAllowed="1"/>
    </QueuePoints>
    <RemoteQueuePoints>
    <RemoteQueuePoint name="_PSIMP.PROXY.QUEUE_CC8EAD412746BA2A@Node1.server1-Bus2" remoteME="Node1.server2-Bus2" remoteMEUUID="CC8EAD412746BA2A" currentOutboundMessages="0" outboundMessageSent="4" currentMessageRequests="0" completedMessageRequests="0" messageRequestsIssued="0"/>
    </RemoteQueuePoints>
    <MediationPoints>
    </MediationPoints>
    <RemoteMediationPoints>
    <RemoteMediationPoint name="RemoteMediatedQueue1@Node1.server1-Bus2" remoteME="Node1.server2-Bus2" remoteMEUUID="CC8EAD412746BA2A" currentOutboundMessages="0" outboundMessageSent="0"/>
    </RemoteMediationPoints>
    <PublicationPoints>
    <PublicationPoint name="Default.Topic.Space@Node1.server1-Bus2" depth="0" highMessageThreshold="50000" sendAllowed="1">
    </PublicationPoint>
    </PublicationPoints>
    <BusLinks>
    <BusLink name="Bus1Bus2Link" foreignBus="Bus1" state="STARTED">
    <LinkReceiver state="STARTED" me="Node1.server1-Bus1" meUUID="92FF69453638CD2F" receiverType="PUBLICATION" topicSpace="" currentInboundMessages="0" messagesReceived="4" timeSinceLastMessageReceived="18809ms" />
    <LinkReceiver state="STARTED" me="cluster1.000-Bus1" meUUID="C96051A1F0F91AB3" receiverType="PUBLICATION" topicSpace="" currentInboundMessages="0" messagesReceived="0" />
    <LinkReceiver state="STARTED" me="cluster1.001-Bus1" meUUID="122AAD73434FF5DA" receiverType="PUBLICATION" topicSpace="" currentInboundMessages="0" messagesReceived="0" />
    <LinkReceiver state="STARTED" me="cluster1.000-Bus1" meUUID="C96051A1F0F91AB3" receiverType="PUBLICATION" topicSpace="" currentInboundMessages="0" messagesReceived="2" timeSinceLastMessageReceived="20091ms" />
    <LinkReceiver state="STARTED" me="cluster1.001-Bus1" meUUID="122AAD73434FF5DA" receiverType="PUBLICATION" topicSpace="" currentInboundMessages="0" messagesReceived="0" />
    <LinkTransmitter state="STARTED" linkType="SIBVirtualGatewayLink" transmitterType="QUEUE" sendAllowed="1" currentOutboundMessages="0" messagesSent="3" timeSinceLastMessageSent="17509ms"/>
    </BusLink>
    </BusLinks>
    <WMQLinks>
    <WMQLink name="MQBus1Link" state="RUNNING" messagesReceived="0">
    <SenderChannel channelName="TO.PAB" state="STANDBY" virtualQmgr="WAS80" ipAddress="" messagesSent="0" currentLUWID="0" currentSequenceNo="0" inDoubt="0">
    <SenderChannelTransmitter status="STARTED" currentOutboundMessages="0" messagesSent="0">
    <KnownRemoteSenderChannelTransmitter me="Node1.server2-Bus2" meUUID="CC8EAD412746BA2A" currentInboundMessages="0" inboundMessagesReceived="0"/>
    </SenderChannelTransmitter>
    </SenderChannel>
    <ReceiverChannel state="INACTIVE">
    </ReceiverChannel>
    </WMQLink>
    </WMQLinks>
    </MessagingEngine>
    <MessagingEngine name="Node1.server2-Bus2" uuid="CC8EAD412746BA2A" state="Started" activeServer="server2">
    <QueuePoints>
    <QueuePoint name="_SYSTEM.Exception.Destination.Node1.server2-Bus2@Node1.server2-Bus2" state="ACTIVE" depth="0" highMessageThreshold="50000" sendAllowed="1"/>
    <QueuePoint name="_PSIMP.PROXY.QUEUE_CC8EAD412746BA2A@Node1.server2-Bus2" state="ACTIVE" depth="0" highMessageThreshold="50000" sendAllowed="1">
    <KnownRemoteQueuePoint me="Node1.server1-Bus2" meUUID="B04215B7389FDA8F" currentInboundMessages="0" inboundMessagesReceived="12" currentMessageRequests="0" completedMessageRequests="0" messageRequestsReceived="0"/>
    </QueuePoint>
    <QueuePoint name="_PTRM_CC8EAD412746BA2A@Node1.server2-Bus2" state="ACTIVE" depth="0" highMessageThreshold="50000" sendAllowed="1"/>
    <QueuePoint name="_PSIMP.TDRECEIVER_CC8EAD412746BA2A@Node1.server2-Bus2" state="ACTIVE" depth="0" highMessageThreshold="50000" sendAllowed="1"/>
    </QueuePoints>
    <RemoteQueuePoints>
    <RemoteQueuePoint name="RemoteMediatedQueue1@Node1.server2-Bus2" remoteME="Node1.server1-Bus2" remoteMEUUID="B04215B7389FDA8F" currentOutboundMessages="0" outboundMessageSent="2" currentMessageRequests="0" completedMessageRequests="0" messageRequestsIssued="0"/>
    <RemoteQueuePoint name="_PSIMP.PROXY.QUEUE_B04215B7389FDA8F@Node1.server2-Bus2" remoteME="Node1.server1-Bus2" remoteMEUUID="B04215B7389FDA8F" currentOutboundMessages="0" outboundMessageSent="8" currentMessageRequests="0" completedMessageRequests="0" messageRequestsIssued="0"/>
    </RemoteQueuePoints>
    <MediationPoints>
    <MediationPoint name="RemoteMediatedQueue1@Node1.server2-Bus2" status="Started" depth="0" highMessageThreshold="50000" sendAllowed="1"/>
    </MediationPoints>
    <RemoteMediationPoints>
    </RemoteMediationPoints>
    <PublicationPoints>
    <PublicationPoint name="Default.Topic.Space@Node1.server2-Bus2" depth="0" highMessageThreshold="50000" sendAllowed="1">
    </PublicationPoint>
    </PublicationPoints>
    <BusLinks>
    <BusLink name="Bus2:MQBus1" foreignBus="MQBus1">
    <LinkTransmitter state="STARTED" linkType="SIBVirtualMQLink" transmitterType="QUEUE" sendAllowed="1" currentOutboundMessages="0" messagesSent="0"/>
    </BusLink>
    </BusLinks>
    <WMQLinks>
    </WMQLinks>
    </MessagingEngine>
    </Bus>
    <Bus name="Bus1">
    <MessagingEngine name="Node1.server1-Bus1" uuid="92FF69453638CD2F" state="Started" activeServer="server1">
    <QueuePoints>
    <QueuePoint name="_PTRM_92FF69453638CD2F@Node1.server1-Bus1" state="ACTIVE" depth="0" highMessageThreshold="50000" sendAllowed="1"/>
    <QueuePoint name="_SYSTEM.Exception.Destination.Node1.server1-Bus1@Node1.server1-Bus1" state="ACTIVE" depth="0" highMessageThreshold="50000" sendAllowed="1"/>
    <QueuePoint name="_PSIMP.PROXY.QUEUE_92FF69453638CD2F@Node1.server1-Bus1" state="ACTIVE" depth="0" highMessageThreshold="50000" sendAllowed="1">
    <KnownRemoteQueuePoint me="cluster1.001-Bus1" meUUID="122AAD73434FF5DA" currentInboundMessages="0" inboundMessagesReceived="3" currentMessageRequests="0" completedMessageRequests="0" messageRequestsReceived="0"/>
    <KnownRemoteQueuePoint me="cluster1.000-Bus1" meUUID="C96051A1F0F91AB3" currentInboundMessages="0" inboundMessagesReceived="3" currentMessageRequests="0" completedMessageRequests="0" messageRequestsReceived="0"/>
    </QueuePoint>
    <QueuePoint name="_PSIMP.TDRECEIVER_92FF69453638CD2F@Node1.server1-Bus1" state="ACTIVE" depth="0" highMessageThreshold="50000" sendAllowed="1"/>
    <QueuePoint name="Bus1Queue1@Node1.server1-Bus1" state="ACTIVE" depth="3" highMessageThreshold="50000" sendAllowed="1">
    <KnownRemoteQueuePoint me="cluster1.001-Bus1" meUUID="122AAD73434FF5DA" currentInboundMessages="0" inboundMessagesReceived="0" currentMessageRequests="0" completedMessageRequests="0" messageRequestsReceived="0"/>
    <KnownRemoteQueuePoint me="cluster1.000-Bus1" meUUID="C96051A1F0F91AB3" currentInboundMessages="0" inboundMessagesReceived="0" currentMessageRequests="0" completedMessageRequests="0" messageRequestsReceived="0"/>
    </QueuePoint>
    </QueuePoints>
    <RemoteQueuePoints>
    <RemoteQueuePoint name="_PSIMP.PROXY.QUEUE_122AAD73434FF5DA@Node1.server1-Bus1" remoteME="cluster1.001-Bus1" remoteMEUUID="122AAD73434FF5DA" currentOutboundMessages="0" outboundMessageSent="2" currentMessageRequests="0" completedMessageRequests="0" messageRequestsIssued="0"/>
    <RemoteQueuePoint name="_PSIMP.PROXY.QUEUE_C96051A1F0F91AB3@Node1.server1-Bus1" remoteME="cluster1.000-Bus1" remoteMEUUID="C96051A1F0F91AB3" currentOutboundMessages="0" outboundMessageSent="2" currentMessageRequests="0" completedMessageRequests="0" messageRequestsIssued="0"/>
    </RemoteQueuePoints>
    <MediationPoints>
    </MediationPoints>
    <RemoteMediationPoints>
    </RemoteMediationPoints>
    <PublicationPoints>
    <PublicationPoint name="Default.Topic.Space@Node1.server1-Bus1" depth="10" highMessageThreshold="50000" sendAllowed="1">
    <RemotePublicationPoint me="cluster1.001-Bus1" meUUID="122AAD73434FF5DA" currentInboundMessages="0" inboundMessagesReceived="0"/>
    <RemotePublicationPoint me="cluster1.000-Bus1" meUUID="C96051A1F0F91AB3" currentInboundMessages="0" inboundMessagesReceived="0"/>
    <Subscription subscriberId="MySubName1" depth="10" topics=""/>
    <Subscription subscriberId="MySubName2" depth="5" topics=""/>
    </PublicationPoint>
    </PublicationPoints>
    <BusLinks>
    <BusLink name="Bus1Bus2Link" foreignBus="Bus2" state="STARTED">
    <LinkReceiver state="STARTED" me="Node1.server1-Bus2" meUUID="B04215B7389FDA8F" receiverType="PUBLICATION" topicSpace="" currentInboundMessages="0" messagesReceived="3" timeSinceLastMessageReceived="19311ms" />
    <LinkReceiver state="STARTED" me="Node1.server1-Bus2" meUUID="B04215B7389FDA8F" receiverType="PUBLICATION" topicSpace="" currentInboundMessages="0" messagesReceived="0" />
    <LinkTransmitter state="STARTED" linkType="SIBVirtualGatewayLink" transmitterType="QUEUE" sendAllowed="1" currentOutboundMessages="0" messagesSent="4" timeSinceLastMessageSent="20435ms"/>
    </BusLink>
    </BusLinks>
    <WMQLinks>
    </WMQLinks>
    </MessagingEngine>
    <MessagingEngine name="cluster1.000-Bus1" uuid="C96051A1F0F91AB3" state="Started" activeServer="clusServer1">
    <QueuePoints>
    <QueuePoint name="_PSIMP.TDRECEIVER_C96051A1F0F91AB3@cluster1.000-Bus1" state="ACTIVE" depth="0" highMessageThreshold="50000" sendAllowed="1"/>
    <QueuePoint name="_SYSTEM.Exception.Destination.cluster1.000-Bus1@cluster1.000-Bus1" state="ACTIVE" depth="0" highMessageThreshold="50000" sendAllowed="1"/>
    <QueuePoint name="_PTRM_C96051A1F0F91AB3@cluster1.000-Bus1" state="ACTIVE" depth="0" highMessageThreshold="50000" sendAllowed="1"/>
    <QueuePoint name="_PSIMP.PROXY.QUEUE_C96051A1F0F91AB3@cluster1.000-Bus1" state="ACTIVE" depth="0" highMessageThreshold="50000" sendAllowed="1">
    <KnownRemoteQueuePoint me="cluster1.001-Bus1" meUUID="122AAD73434FF5DA" currentInboundMessages="0" inboundMessagesReceived="4" currentMessageRequests="0" completedMessageRequests="0" messageRequestsReceived="0"/>
    <KnownRemoteQueuePoint me="Node1.server1-Bus1" meUUID="92FF69453638CD2F" currentInboundMessages="0" inboundMessagesReceived="11" currentMessageRequests="0" completedMessageRequests="0" messageRequestsReceived="0"/>
    </QueuePoint>
    <QueuePoint name="Bus2WLMQueue1@cluster1.000-Bus1" state="ACTIVE" depth="0" highMessageThreshold="50000" sendAllowed="1"/>
    </QueuePoints>
    <RemoteQueuePoints>
    <RemoteQueuePoint name="Bus1Queue1@cluster1.000-Bus1" remoteME="Node1.server1-Bus1" remoteMEUUID="92FF69453638CD2F" currentOutboundMessages="0" outboundMessageSent="1" currentMessageRequests="0" completedMessageRequests="0" messageRequestsIssued="0"/>
    <RemoteQueuePoint name="_PSIMP.PROXY.QUEUE_122AAD73434FF5DA@cluster1.000-Bus1" remoteME="cluster1.001-Bus1" remoteMEUUID="122AAD73434FF5DA" currentOutboundMessages="0" outboundMessageSent="4" currentMessageRequests="0" completedMessageRequests="0" messageRequestsIssued="0"/>
    <RemoteQueuePoint name="_PSIMP.PROXY.QUEUE_92FF69453638CD2F@cluster1.000-Bus1" remoteME="Node1.server1-Bus1" remoteMEUUID="92FF69453638CD2F" currentOutboundMessages="0" outboundMessageSent="11" currentMessageRequests="0" completedMessageRequests="0" messageRequestsIssued="0"/>
    </RemoteQueuePoints>
    <MediationPoints>
    </MediationPoints>
    <RemoteMediationPoints>
    </RemoteMediationPoints>
    <PublicationPoints>
    <PublicationPoint name="Default.Topic.Space@cluster1.000-Bus1" depth="0" highMessageThreshold="50000" sendAllowed="1">
    <Subscription subscriberId="MySubName3" depth="0" topics=""/>
    </PublicationPoint>
    </PublicationPoints>
    <BusLinks>
    <BusLink name="Bus1:Bus2" foreignBus="Bus2">
    <LinkTransmitter state="STOPPED" linkType="SIBVirtualGatewayLink" transmitterType="QUEUE" sendAllowed="1" currentOutboundMessages="0" messagesSent="1" timeSinceLastMessageSent="3471037ms"/>
    </BusLink>
    </BusLinks>
    <WMQLinks>
    </WMQLinks>
    </MessagingEngine>
    <MessagingEngine name="cluster1.001-Bus1" uuid="122AAD73434FF5DA" state="Started" activeServer="clusServer2">
    <QueuePoints>
    <QueuePoint name="_PSIMP.TDRECEIVER_122AAD73434FF5DA@cluster1.001-Bus1" state="ACTIVE" depth="0" highMessageThreshold="50000" sendAllowed="1"/>
    <QueuePoint name="_PSIMP.PROXY.QUEUE_122AAD73434FF5DA@cluster1.001-Bus1" state="ACTIVE" depth="0" highMessageThreshold="50000" sendAllowed="1">
    <KnownRemoteQueuePoint me="Node1.server1-Bus1" meUUID="92FF69453638CD2F" currentInboundMessages="0" inboundMessagesReceived="12" currentMessageRequests="0" completedMessageRequests="0" messageRequestsReceived="0"/>
    <KnownRemoteQueuePoint me="cluster1.000-Bus1" meUUID="C96051A1F0F91AB3" currentInboundMessages="0" inboundMessagesReceived="2" currentMessageRequests="0" completedMessageRequests="0" messageRequestsReceived="0"/>
    </QueuePoint>
    <QueuePoint name="_SYSTEM.Exception.Destination.cluster1.001-Bus1@cluster1.001-Bus1" state="ACTIVE" depth="0" highMessageThreshold="50000" sendAllowed="1"/>
    <QueuePoint name="Bus2WLMQueue1@cluster1.001-Bus1" state="ACTIVE" depth="0" highMessageThreshold="50000" sendAllowed="1"/>
    <QueuePoint name="_PTRM_122AAD73434FF5DA@cluster1.001-Bus1" state="ACTIVE" depth="0" highMessageThreshold="50000" sendAllowed="1"/>
    </QueuePoints>
    <RemoteQueuePoints>
    <RemoteQueuePoint name="_PSIMP.PROXY.QUEUE_92FF69453638CD2F@cluster1.001-Bus1" remoteME="Node1.server1-Bus1" remoteMEUUID="92FF69453638CD2F" currentOutboundMessages="0" outboundMessageSent="12" currentMessageRequests="0" completedMessageRequests="0" messageRequestsIssued="0"/>
    <RemoteQueuePoint name="Bus1Queue1@cluster1.001-Bus1" remoteME="Node1.server1-Bus1" remoteMEUUID="92FF69453638CD2F" currentOutboundMessages="0" outboundMessageSent="1" currentMessageRequests="0" completedMessageRequests="0" messageRequestsIssued="0"/>
    <RemoteQueuePoint name="_PSIMP.PROXY.QUEUE_C96051A1F0F91AB3@cluster1.001-Bus1" remoteME="cluster1.000-Bus1" remoteMEUUID="C96051A1F0F91AB3" currentOutboundMessages="0" outboundMessageSent="2" currentMessageRequests="0" completedMessageRequests="0" messageRequestsIssued="0"/>
    </RemoteQueuePoints>
    <MediationPoints>
    </MediationPoints>
    <RemoteMediationPoints>
    </RemoteMediationPoints>
    <PublicationPoints>
    <PublicationPoint name="Default.Topic.Space@cluster1.001-Bus1" depth="0" highMessageThreshold="50000" sendAllowed="1">
    <Subscription subscriberId="MySubName4" depth="0" topics=""/>
    </PublicationPoint>
    </PublicationPoints>
    <BusLinks>
    <BusLink name="Bus1:Bus2" foreignBus="Bus2">
    <LinkTransmitter state="STOPPED" linkType="SIBVirtualGatewayLink" transmitterType="QUEUE" sendAllowed="1" currentOutboundMessages="0" messagesSent="1" timeSinceLastMessageSent="3471168ms"/>
    </BusLink>
    </BusLinks>
    <WMQLinks>
    </WMQLinks>
    </MessagingEngine>
    </Bus>
    </SIBusSummary>


    Original Document:
    http://publib.boulder.ibm.com/infocenter/wasinfo/beta/topic/com.ibm.websphere.base.iseries.doc/info/iseries/ae/tjo0060_.html?resultof=%22%73%74%61%6e%64%62%79%22%20%22%73%74%61%6e%64%62%69%22%20%22%71%75%65%75%65%73%22%20%22%71%75%65%75%65%22%20

Get my WebSphere Application Server course here >> http://www.themiddlewareshop.com/products/

Steve Robinson - IBM Champion 2013

About Me

Steve Robinson has been working in IT for over 20 years and has provided solutions for many leading brands around the world. Steve specialises in JEE, DevOps and Thought Leadership.

In January 2013, I was awarded the prestigous 'IBM Champion' accolade.


Read my books?

IBM WebSphere Application Server 8.0 Administration Guide

IBM WebSphere Application Server 8.0 Administration Guide

WebSphere Application Server 7.0 Administration Guide

WebSphere Application Server 7.0 Administration Guide

Courses

Articles

WebSphere Categories

Other Categories