Skip to content

Commit 0244b25

Browse files
Add files via upload
1 parent 305deef commit 0244b25

11 files changed

+1405
-0
lines changed

data-platform/core-converged-db/aq-teq/demo/001.setup.sql

Lines changed: 516 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 298 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,298 @@
1+
-- Enqueue some messages !!!
2+
3+
--- 15 Non urgent messages !!!
4+
5+
for i in $(seq 15)
6+
do
7+
./enqueue_msg.sh "Message $i" "NON URGENT" "This is a non urgent message" 2
8+
done
9+
10+
11+
--- 15 urgent messages !!!
12+
for i in $(seq 15)
13+
do
14+
./enqueue_msg.sh "Message $i" "URGENT" "This is an urgent message" 1
15+
done
16+
17+
--- Check the messages:
18+
19+
20+
[oracle@rdbms19oniaas AQ]$ ./check_queue_QUEUE1.sh
21+
22+
SQL*Plus: Release 19.0.0.0.0 - Production on Wed Dec 28 11:36:58 2022
23+
Version 19.14.0.0.0
24+
25+
Copyright (c) 1982, 2021, Oracle. All rights reserved.
26+
27+
Last Successful login time: Wed Dec 28 2022 11:36:30 +00:00
28+
29+
Connected to:
30+
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
31+
Version 19.14.0.0.0
32+
33+
SQL> SQL> SQL> SQL> SQL>
34+
QUEUE_SCHEMA QUEUE_NAME ENQUEUED_MSGS DEQUEUED_MSGS
35+
------------------------------ ------------------------------ ------------- -------------
36+
USUAQ1 AQ$_QTABLE1_E 1 0
37+
USUAQ1 QUEUE1 32 1
38+
39+
-- Dequeue with subscapp3: this will dequeue only messages with: tab.user_data.f_category=''NON URGENT'' and priority>1
40+
--
41+
--- Dequeue one:
42+
43+
./dequeue_msg.sh APPUSER3 subscapp3
44+
45+
[oracle@rdbms19oniaas AQ]$ ./dequeue_msg.sh APPUSER3 subscapp3
46+
47+
Subject: Message 1
48+
Category: NON URGENT
49+
Content: This is a non urgent message
50+
51+
-- Dequeue another one:
52+
53+
[oracle@rdbms19oniaas AQ]$ ./dequeue_msg.sh APPUSER3 subscapp3
54+
Subject: Message 2
55+
Category: NON URGENT
56+
Content: This is a non urgent message
57+
58+
PL/SQL procedure successfully completed.
59+
60+
[oracle@rdbms19oniaas AQ]$
61+
62+
-- Now dequeue one with subscapp2: this will dequeue only messages with: tab.user_data.f_category=''URGENT'' and priority=1
63+
64+
./dequeue_msg.sh APPUSER2 subscapp2
65+
66+
[oracle@rdbms19oniaas AQ]$ ./dequeue_msg.sh APPUSER2 subscapp2
67+
Subject: Message 1
68+
Category: URGENT
69+
Content: This is an urgent message
70+
71+
-- Dequeue another one:
72+
73+
[oracle@rdbms19oniaas AQ]$ ./dequeue_msg.sh APPUSER2 subscapp2
74+
Subject: Message 2
75+
Category: URGENT
76+
Content: This is an urgent message
77+
78+
PL/SQL procedure successfully completed.
79+
80+
--- Now let's dequeue with array processing:
81+
82+
[oracle@rdbms19oniaas AQ]$ ./dequeue_array_msg.sh APPUSER3 subscapp3 10
83+
Number of messages dequeued: 10
84+
Message number 1 Message 3 NON URGENT This is a non urgent message
85+
Message number 2 Message 4 NON URGENT This is a non urgent message
86+
Message number 3 Message 5 NON URGENT This is a non urgent message
87+
Message number 4 Message 6 NON URGENT This is a non urgent message
88+
Message number 5 Message 7 NON URGENT This is a non urgent message
89+
Message number 6 Message 8 NON URGENT This is a non urgent message
90+
Message number 7 Message 9 NON URGENT This is a non urgent message
91+
Message number 8 Message 10 NON URGENT This is a non urgent message
92+
Message number 9 Message 11 NON URGENT This is a non urgent message
93+
Message number 10 Message 12 NON URGENT This is a non urgent message
94+
95+
--- Let's array dequeue again:
96+
97+
[oracle@rdbms19oniaas AQ]$ ./dequeue_array_msg.sh APPUSER3 subscapp3 10
98+
Number of messages dequeued: 3
99+
Message number 1 Message 13 NON URGENT This is a non urgent message
100+
Message number 2 Message 14 NON URGENT This is a non urgent message
101+
Message number 3 Message 15 NON URGENT This is a non urgent message
102+
103+
PL/SQL procedure successfully completed.
104+
105+
--- If there are no messages waiting to be dequeued:
106+
107+
[oracle@rdbms19oniaas AQ]$ ./dequeue_array_msg.sh APPUSER3 subscapp3 10
108+
Nothing to fetch
109+
110+
PL/SQL procedure successfully completed.
111+
112+
--- Array dequeue with subscapp2:
113+
[oracle@rdbms19oniaas AQ]$ ./dequeue_array_msg.sh APPUSER2 subscapp2 10
114+
Number of messages dequeued: 10
115+
Message number 1 Message 3 URGENT This is an urgent message
116+
Message number 2 Message 4 URGENT This is an urgent message
117+
Message number 3 Message 5 URGENT This is an urgent message
118+
Message number 4 Message 6 URGENT This is an urgent message
119+
Message number 5 Message 7 URGENT This is an urgent message
120+
Message number 6 Message 8 URGENT This is an urgent message
121+
Message number 7 Message 9 URGENT This is an urgent message
122+
Message number 8 Message 10 URGENT This is an urgent message
123+
Message number 9 Message 11 URGENT This is an urgent message
124+
Message number 10 Message 12 URGENT This is an urgent message
125+
126+
[oracle@rdbms19oniaas AQ]$ ./dequeue_array_msg.sh APPUSER2 subscapp2 10
127+
Number of messages dequeued: 3
128+
Message number 1 Message 13 URGENT This is an urgent message
129+
Message number 2 Message 14 URGENT This is an urgent message
130+
Message number 3 Message 15 URGENT This is an urgent message
131+
132+
PL/SQL procedure successfully completed.
133+
134+
[oracle@rdbms19oniaas AQ]$ ./dequeue_array_msg.sh APPUSER2 subscapp2 10
135+
Nothing to fetch
136+
137+
PL/SQL procedure successfully completed.
138+
139+
[oracle@rdbms19oniaas AQ]$ ./check_queue_QUEUE1.sh
140+
141+
QUEUE_SCHEMA QUEUE_NAME ENQUEUED_MSGS DEQUEUED_MSGS
142+
------------------------------ ------------------------------ ------------- -------------
143+
USUAQ1 AQ$_QTABLE1_E 1 0
144+
USUAQ1 QUEUE1 32 31
145+
146+
147+
--- Add a new subscriber: subscall will dequeue any messages
148+
sqlplus USUAQ1/"Oracle_4U"@rdbms19oniaas:1521/ORCLPDB1
149+
150+
DECLARE
151+
subscriber sys.aq$_agent;
152+
BEGIN
153+
subscriber := sys.aq$_agent('subscall', null, null);
154+
DBMS_AQADM.ADD_SUBSCRIBER(
155+
queue_name => 'USUAQ1.QUEUE1',
156+
subscriber => subscriber
157+
);
158+
END;
159+
/
160+
161+
162+
--- Enqueue some messages again:
163+
164+
--- 15 Non urgent messages !!!
165+
166+
for i in $(seq 15)
167+
do
168+
./enqueue_msg.sh "Message $i" "NON URGENT" "This is a non urgent message" 2
169+
done
170+
171+
172+
--- 15 urgent messages !!!
173+
for i in $(seq 15)
174+
do
175+
./enqueue_msg.sh "Message $i" "URGENT" "This is an urgent message" 1
176+
done
177+
178+
--- Check the messages:
179+
180+
[oracle@rdbms19oniaas AQ]$ ./check_queue_QUEUE1.sh
181+
182+
QUEUE_SCHEMA QUEUE_NAME ENQUEUED_MSGS DEQUEUED_MSGS
183+
------------------------------ ------------------------------ ------------- -------------
184+
USUAQ1 AQ$_QTABLE1_E 1 0
185+
USUAQ1 QUEUE1 62 31
186+
187+
188+
-- Now dequeue all the messages with subscall !!!
189+
--- We use an array size of 30:
190+
191+
./dequeue_array_msg.sh APPUSER2 subscall 30
192+
193+
[oracle@rdbms19oniaas AQ]$ ./dequeue_array_msg.sh APPUSER2 subscall 30
194+
Number of messages dequeued: 30
195+
Message number 1 Message 1 NON URGENT This is a non urgent message
196+
Message number 2 Message 2 NON URGENT This is a non urgent message
197+
Message number 3 Message 3 NON URGENT This is a non urgent message
198+
Message number 4 Message 4 NON URGENT This is a non urgent message
199+
Message number 5 Message 5 NON URGENT This is a non urgent message
200+
Message number 6 Message 6 NON URGENT This is a non urgent message
201+
Message number 7 Message 7 NON URGENT This is a non urgent message
202+
Message number 8 Message 8 NON URGENT This is a non urgent message
203+
Message number 9 Message 9 NON URGENT This is a non urgent message
204+
Message number 10 Message 10 NON URGENT This is a non urgent message
205+
Message number 11 Message 11 NON URGENT This is a non urgent message
206+
Message number 12 Message 12 NON URGENT This is a non urgent message
207+
Message number 13 Message 13 NON URGENT This is a non urgent message
208+
Message number 14 Message 14 NON URGENT This is a non urgent message
209+
Message number 15 Message 15 NON URGENT This is a non urgent message
210+
Message number 16 Message 1 URGENT This is an urgent message
211+
Message number 17 Message 2 URGENT This is an urgent message
212+
Message number 18 Message 3 URGENT This is an urgent message
213+
Message number 19 Message 4 URGENT This is an urgent message
214+
Message number 20 Message 5 URGENT This is an urgent message
215+
Message number 21 Message 6 URGENT This is an urgent message
216+
Message number 22 Message 7 URGENT This is an urgent message
217+
Message number 23 Message 8 URGENT This is an urgent message
218+
Message number 24 Message 9 URGENT This is an urgent message
219+
Message number 25 Message 10 URGENT This is an urgent message
220+
Message number 26 Message 11 URGENT This is an urgent message
221+
Message number 27 Message 12 URGENT This is an urgent message
222+
Message number 28 Message 13 URGENT This is an urgent message
223+
Message number 29 Message 14 URGENT This is an urgent message
224+
Message number 30 Message 15 URGENT This is an urgent message
225+
226+
PL/SQL procedure successfully completed.
227+
228+
229+
-- Now use subscapp2 to dequeue urgent messages only, with an array size of 15:
230+
231+
[oracle@rdbms19oniaas AQ]$ ./dequeue_array_msg.sh APPUSER2 subscapp2 15
232+
Number of messages dequeued: 15
233+
Message number 1 Message 1 URGENT This is an urgent message
234+
Message number 2 Message 2 URGENT This is an urgent message
235+
Message number 3 Message 3 URGENT This is an urgent message
236+
Message number 4 Message 4 URGENT This is an urgent message
237+
Message number 5 Message 5 URGENT This is an urgent message
238+
Message number 6 Message 6 URGENT This is an urgent message
239+
Message number 7 Message 7 URGENT This is an urgent message
240+
Message number 8 Message 8 URGENT This is an urgent message
241+
Message number 9 Message 9 URGENT This is an urgent message
242+
Message number 10 Message 10 URGENT This is an urgent message
243+
Message number 11 Message 11 URGENT This is an urgent message
244+
Message number 12 Message 12 URGENT This is an urgent message
245+
Message number 13 Message 13 URGENT This is an urgent message
246+
Message number 14 Message 14 URGENT This is an urgent message
247+
Message number 15 Message 15 URGENT This is an urgent message
248+
249+
PL/SQL procedure successfully completed.
250+
251+
[oracle@rdbms19oniaas AQ]$ ./dequeue_array_msg.sh APPUSER2 subscapp2 15
252+
Nothing to fetch
253+
254+
PL/SQL procedure successfully completed.
255+
256+
-- And use subscapp3 to dequeue non urgent messages:
257+
258+
./dequeue_array_msg.sh APPUSER3 subscapp3 15
259+
260+
[oracle@rdbms19oniaas AQ]$ ./dequeue_array_msg.sh APPUSER3 subscapp3 15
261+
Number of messages dequeued: 15
262+
Message number 1 Message 1 NON URGENT This is a non urgent message
263+
Message number 2 Message 2 NON URGENT This is a non urgent message
264+
Message number 3 Message 3 NON URGENT This is a non urgent message
265+
Message number 4 Message 4 NON URGENT This is a non urgent message
266+
Message number 5 Message 5 NON URGENT This is a non urgent message
267+
Message number 6 Message 6 NON URGENT This is a non urgent message
268+
Message number 7 Message 7 NON URGENT This is a non urgent message
269+
Message number 8 Message 8 NON URGENT This is a non urgent message
270+
Message number 9 Message 9 NON URGENT This is a non urgent message
271+
Message number 10 Message 10 NON URGENT This is a non urgent message
272+
Message number 11 Message 11 NON URGENT This is a non urgent message
273+
Message number 12 Message 12 NON URGENT This is a non urgent message
274+
Message number 13 Message 13 NON URGENT This is a non urgent message
275+
Message number 14 Message 14 NON URGENT This is a non urgent message
276+
Message number 15 Message 15 NON URGENT This is a non urgent message
277+
278+
PL/SQL procedure successfully completed.
279+
280+
[oracle@rdbms19oniaas AQ]$ ./dequeue_array_msg.sh APPUSER3 subscapp3 15
281+
Nothing to fetch
282+
283+
PL/SQL procedure successfully completed.
284+
285+
286+
[oracle@rdbms19oniaas AQ]$ ./check_queue_QUEUE1.sh (note the view refresh is asyncronous)
287+
288+
QUEUE_SCHEMA QUEUE_NAME ENQUEUED_MSGS DEQUEUED_MSGS
289+
------------------------------ ------------------------------ ------------- -------------
290+
USUAQ1 AQ$_QTABLE1_E 1 0
291+
USUAQ1 QUEUE1 62 46
292+
293+
[oracle@rdbms19oniaas AQ]$ ./check_queue_QUEUE1.sh
294+
295+
QUEUE_SCHEMA QUEUE_NAME ENQUEUED_MSGS DEQUEUED_MSGS
296+
------------------------------ ------------------------------ ------------- -------------
297+
USUAQ1 AQ$_QTABLE1_E 1 0
298+
USUAQ1 QUEUE1 62 61

0 commit comments

Comments
 (0)