summaryrefslogtreecommitdiff
path: root/qpid/python
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
commit109a1026f6c05c6a857dc9f09bf19f1986b6c92c (patch)
treee783089bbd69208876b498ca4c040dcd105055bc /qpid/python
parent645a5a84eb3e784e1c75d306b89c6001e6e90cd7 (diff)
downloadqpid-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-xqpid/python/commands/qpid-queue-stats29
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)