diff options
author | Ted Ross <tross@apache.org> | 2008-12-01 21:04:39 +0000 |
---|---|---|
committer | Ted Ross <tross@apache.org> | 2008-12-01 21:04:39 +0000 |
commit | 109a1026f6c05c6a857dc9f09bf19f1986b6c92c (patch) | |
tree | e783089bbd69208876b498ca4c040dcd105055bc /qpid/python | |
parent | 645a5a84eb3e784e1c75d306b89c6001e6e90cd7 (diff) | |
download | qpid-python-109a1026f6c05c6a857dc9f09bf19f1986b6c92c.tar.gz |
Added handling of connection loss with connection retry.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@722230 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/python')
-rwxr-xr-x | qpid/python/commands/qpid-queue-stats | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/qpid/python/commands/qpid-queue-stats b/qpid/python/commands/qpid-queue-stats index 3c727fddfd..e8b9e4c36a 100755 --- a/qpid/python/commands/qpid-queue-stats +++ b/qpid/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) |