summaryrefslogtreecommitdiff
path: root/python/commands/qpid-queue-stats
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2008-12-01 21:04:39 +0000
committerTed Ross <tross@apache.org>2008-12-01 21:04:39 +0000
commitd79ddcce46c737af1be82a093446bc71e22138ea (patch)
tree85f3227829556b430ae46d52d06882d62b16b1da /python/commands/qpid-queue-stats
parent979141b8d0fef081d179cc7817cbf4acdb8ced79 (diff)
downloadqpid-python-d79ddcce46c737af1be82a093446bc71e22138ea.tar.gz
Added handling of connection loss with connection retry.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@722230 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'python/commands/qpid-queue-stats')
-rwxr-xr-xpython/commands/qpid-queue-stats29
1 files changed, 17 insertions, 12 deletions
diff --git a/python/commands/qpid-queue-stats b/python/commands/qpid-queue-stats
index 3c727fddfd..e8b9e4c36a 100755
--- a/python/commands/qpid-queue-stats
+++ b/python/commands/qpid-queue-stats
@@ -36,22 +36,24 @@ class BrokerManager(Console):
self.url = host
self.objects = {}
self.filter = None
- self.session = Session(self, rcvEvents=False, rcvHeartbeats=False, userBindings=True)
- try:
- self.broker = self.session.addBroker(self.url)
- except socket.error, e:
- print "Socket Error %s - %s" % (e[0], e[1])
- sys.exit (1)
- except Closed, e:
- print "Connect Failed %d - %s" % (e[0], e[1])
- sys.exit (1)
- except ConnectionFailed, e:
- print "Connect Failed %d - %s" % (e[0], e[1])
- sys.exit(1)
+ self.session = Session(self, rcvEvents=False, rcvHeartbeats=False,
+ userBindings=True, manageConnections=True)
+ self.broker = self.session.addBroker(self.url)
+ self.firstError = True
def setFilter(self,filter):
self.filter = filter
+ def brokerConnected(self, broker):
+ if not self.firstError:
+ print "*** Broker connected"
+ self.firstError = False
+
+ def brokerDisconnected(self, broker):
+ print "*** Broker connection lost - %s, retrying..." % broker.getError()
+ self.firstError = False
+ self.objects.clear()
+
def objectProps(self, broker, record):
className = record.getClassKey().getClassName()
if className != "queue":
@@ -108,6 +110,9 @@ class BrokerManager(Console):
try:
while True:
sleep (1)
+ if self.firstError and self.broker.getError():
+ self.firstError = False
+ print "*** Error: %s, retrying..." % self.broker.getError()
except KeyboardInterrupt:
print
self.session.delBroker(self.broker)