tests. Although the two are aliases of one another, it makes sense to be consistent and to use the one that the DB API prefers as well.
48 lines
1.6 KiB
Python
48 lines
1.6 KiB
Python
#------------------------------------------------------------------------------
|
|
# Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
|
|
#------------------------------------------------------------------------------
|
|
|
|
#------------------------------------------------------------------------------
|
|
# AdvancedQueuingNotification.py
|
|
# This script demonstrates using advanced queuing notification. Once this
|
|
# script is running, use another session to enqueue a few messages to the
|
|
# "BOOKS" queue. This is most easily accomplished by running the
|
|
# AdvancedQueuing sample.
|
|
#
|
|
# This script requires cx_Oracle 6.4 and higher.
|
|
#------------------------------------------------------------------------------
|
|
|
|
from __future__ import print_function
|
|
|
|
import cx_Oracle
|
|
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("Queue name:", message.queueName)
|
|
print("Consumer name:", message.consumerName)
|
|
|
|
connection = cx_Oracle.connect(SampleEnv.MAIN_CONNECT_STRING, events = True)
|
|
sub = connection.subscribe(namespace = cx_Oracle.SUBSCR_NAMESPACE_AQ,
|
|
name = "BOOKS", callback = callback, timeout = 300)
|
|
print("Subscription:", sub)
|
|
print("--> Connection:", sub.connection)
|
|
print("--> Callback:", sub.callback)
|
|
print("--> Namespace:", sub.namespace)
|
|
print("--> Protocol:", sub.protocol)
|
|
print("--> Timeout:", sub.timeout)
|
|
|
|
while registered:
|
|
print("Waiting for notifications....")
|
|
time.sleep(5)
|
|
|