summaryrefslogtreecommitdiff
path: root/qpid/python
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/python')
-rw-r--r--qpid/python/qpid/messaging/driver.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/qpid/python/qpid/messaging/driver.py b/qpid/python/qpid/messaging/driver.py
index 6f1d0fba7d..6110befc69 100644
--- a/qpid/python/qpid/messaging/driver.py
+++ b/qpid/python/qpid/messaging/driver.py
@@ -676,6 +676,12 @@ class Engine:
def close(self, e=None):
self._reset()
+ # We cannot re-establish transactional sessions, they must be aborted.
+ # We could re-do transactional enqueues, but not dequeues.
+ for ssn in self.connection.sessions.values():
+ if ssn.transactional:
+ ssn.error = TransactionAborted("Transaction aborted due to transport failure")
+ ssn.closed = True
if e:
self.connection.error = e
self._status = CLOSED