Adjust samples to handle the deregistration event without an exception.

This commit is contained in:
Anthony Tuininga 2017-08-30 12:11:39 -06:00
parent fb01fa0548
commit d5ac142c24
2 changed files with 16 additions and 2 deletions

View File

@ -24,8 +24,15 @@ import SampleEnv
import threading import threading
import time import time
registered = True
def callback(message): def callback(message):
global registered
print("Message type:", message.type) 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 database name:", message.dbname)
print("Message tables:") print("Message tables:")
for table in 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)) print("--> Rowids?:", bool(sub.qos & cx_Oracle.SUBSCR_QOS_ROWIDS))
sub.registerquery("select * from TestTempTable") sub.registerquery("select * from TestTempTable")
while True: while registered:
print("Waiting for notifications....") print("Waiting for notifications....")
time.sleep(5) time.sleep(5)

View File

@ -24,8 +24,15 @@ import SampleEnv
import threading import threading
import time import time
registered = True
def callback(message): def callback(message):
global registered
print("Message type:", message.type) 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 database name:", message.dbname)
print("Message queries:") print("Message queries:")
for query in 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") queryId = sub.registerquery("select * from TestTempTable")
print("Registered query:", queryId) print("Registered query:", queryId)
while True: while registered:
print("Waiting for notifications....") print("Waiting for notifications....")
time.sleep(5) time.sleep(5)