Date Created: Thu 12-May-2011

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Script execution starts here ...

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

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

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


Sample output

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


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

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

Steve Robinson - IBM Champion 2013

About Me

Steve Robinson has been working in IT for over 20 years and has provided solutions for many large-enterprise corporate companies across the world. Steve specialises in Java and Middleware.

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


  • Linked In
  • Twitter
  • About Me
  • My Blog
  • Contact Me

Read my books?

IBM WebSphere Application Server 8.0 Administration Guide

IBM WebSphere Application Server 8.0 Administration Guide

WebSphere Application Server 7.0 Administration Guide

WebSphere Application Server 7.0 Administration Guide

WebSphere Categories

Other Categories