You can use scripting to list the details of all messaging engines in all buses.
This example provides a sample script, with sample output.
# 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 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 <Version 7.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 <Version 7.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 <Version 7.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" 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="WAS70" 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>