+

Search Tips   |   Advanced Search

Printing a summary of the runtime state of all messaging engines running in a cell

Use scripting to list the details of all messaging engines in all buses.

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.

  1. Create the 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


Example

This example provides a sample script, with sample output.

# Sample program  #  * (C) COPYRIGHT International Business Machines Corp., 2008, 2011
#  * 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 #  console.
#  The following output is only available when the script is executed against #  a WAS  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()

The following example shows sample output for the script.

<?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" h
ighMessageThreshold="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>