From d5ac142c242c9712677550d02e0334a6b76dfb9d Mon Sep 17 00:00:00 2001 From: Anthony Tuininga Date: Wed, 30 Aug 2017 12:11:39 -0600 Subject: [PATCH] Adjust samples to handle the deregistration event without an exception. --- samples/DatabaseChangeNotification.py | 9 ++++++++- samples/QueryChangeNotification.py | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/samples/DatabaseChangeNotification.py b/samples/DatabaseChangeNotification.py index 6d29617..41f7bd9 100644 --- a/samples/DatabaseChangeNotification.py +++ b/samples/DatabaseChangeNotification.py @@ -24,8 +24,15 @@ import SampleEnv import threading import time +registered = True + def callback(message): + global registered print("Message type:", message.type) + if message.type == cx_Oracle.EVENT_DEREG: + print("Deregistration has taken place...") + registered = False + return print("Message database name:", message.dbname) print("Message tables:") for table in message.tables: @@ -52,7 +59,7 @@ print("--> Operations:", sub.operations) print("--> Rowids?:", bool(sub.qos & cx_Oracle.SUBSCR_QOS_ROWIDS)) sub.registerquery("select * from TestTempTable") -while True: +while registered: print("Waiting for notifications....") time.sleep(5) diff --git a/samples/QueryChangeNotification.py b/samples/QueryChangeNotification.py index eb838c8..992136b 100644 --- a/samples/QueryChangeNotification.py +++ b/samples/QueryChangeNotification.py @@ -24,8 +24,15 @@ import SampleEnv import threading import time +registered = True + def callback(message): + global registered print("Message type:", message.type) + if message.type == cx_Oracle.EVENT_DEREG: + print("Deregistration has taken place...") + registered = False + return print("Message database name:", message.dbname) print("Message queries:") for query in message.queries: @@ -56,7 +63,7 @@ print("--> Rowids?:", bool(sub.qos & cx_Oracle.SUBSCR_QOS_ROWIDS)) queryId = sub.registerquery("select * from TestTempTable") print("Registered query:", queryId) -while True: +while registered: print("Waiting for notifications....") time.sleep(5)