Skip to content

Commit be0c156

Browse files
authored
WMS# 8022: OracleAQ with PLSQL (#324)
* Update OracleAQConfiguration.java * jms multiconsumer bug fixes * JMS changes to handle topic and queues * update sender as topic while consumer as queue * Update jmsReceiver for dynamic Queuename * AQ workshop code code for AQ and TEQ * rename OracleAQ * Create setup.sh * java code * update credentials * Update setup.sh * Update setup.sh * Update setup.sh * Update basicCreateUser.sql * updated exit * updates * java updates * bug fix * updates for testing * updates java * Create Dockerfile * updated code * java code updated * fix * setup updation * update db refresh time * updated password * password update * updates * updated setup * kill existing java process during java setup * updates * resolved conflicts * removed .gitignore * bug fix * bug * bug fix * bug fix * add JPA * updated details * java bug fix * update java table name * Clean java tables and queues * update * Update UserDetails.java * Update basicCreateQueue.sql * updates * changes for testing cred * update credential fetch data * update oracleAQ * update workflowTEQ * oracleAQ updated * changes in java code * updated oracleAQ * updated code * updated code for PR * updated code * UPDATE SETUP.SH * update setup.sh * update oracleAQ * update setup.sh * update setup.sh * updated java * updates * update Java project * update code * updated code * update setup.sh * updated TestTest java * updated code * updatedAQ * remove java project
1 parent f329344 commit be0c156

30 files changed

+1082
-0
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
SET VERIFY OFF;
2+
CREATE USER DBUSER IDENTIFIED BY &1 ;
3+
4+
GRANT execute on DBMS_AQ TO DBUSER;
5+
GRANT CREATE SESSION TO DBUSER;
6+
GRANT RESOURCE TO DBUSER;
7+
GRANT CONNECT TO DBUSER;
8+
GRANT EXECUTE ANY PROCEDURE TO DBUSER;
9+
GRANT aq_user_role TO DBUSER;
10+
GRANT EXECUTE ON dbms_aqadm TO DBUSER;
11+
GRANT EXECUTE ON dbms_aq TO DBUSER ;
12+
GRANT EXECUTE ON dbms_aqin TO DBUSER;
13+
GRANT UNLIMITED TABLESPACE TO DBUSER;
14+
GRANT EXECUTE ON DBMS_CLOUD_ADMIN TO DBUSER;
15+
GRANT pdb_dba TO DBUSER;
16+
GRANT EXECUTE ON DBMS_CLOUD TO DBUSER;
17+
GRANT CREATE DATABASE LINK TO DBUSER;
18+
GRANT EXECUTE ON sys.dbms_aqadm TO DBUSER;
19+
GRANT EXECUTE ON sys.dbms_aq TO DBUSER;
20+
EXIT;
21+

workshops/oracleAQ/cleanupAQ.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
cd $WORKFLOW_HOME ;
2+
sqlplus /@${DB_ALIAS}_${DB_USER2} @cleanupAQ.sql

workshops/oracleAQ/cleanupAQ.sql

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
--Clean up all objects related to the obj type:
2+
EXECUTE DBMS_AQADM.STOP_QUEUE ( queue_name => 'objType_AQ');
3+
EXECUTE DBMS_AQADM.DROP_QUEUE ( queue_name => 'objType_AQ');
4+
EXECUTE DBMS_AQADM.DROP_QUEUE_TABLE (queue_table => 'objType_AQTable');
5+
6+
--Clean up all objects related to the RAW type:
7+
EXECUTE DBMS_AQADM.STOP_QUEUE ( queue_name =>'rawType_AQ');
8+
EXECUTE DBMS_AQADM.DROP_QUEUE ( queue_name =>'rawType_AQ');
9+
EXECUTE DBMS_AQADM.DROP_QUEUE_TABLE (queue_table =>'rawType_AQTable');
10+
11+
--Clean up all objects related to the JSON type:
12+
EXECUTE DBMS_AQADM.STOP_QUEUE ( queue_name =>'JSONType_AQ');
13+
EXECUTE DBMS_AQADM.DROP_QUEUE ( queue_name =>'JSONType_AQ');
14+
EXECUTE DBMS_AQADM.DROP_QUEUE_TABLE (queue_table =>'JSONType_AQTable');
15+
16+
--Cleans up all objects related to the RAW type:
17+
EXECUTE DBMS_AQADM.STOP_QUEUE ( queue_name =>'multiconsumer_rawType_AQ');
18+
EXECUTE DBMS_AQADM.DROP_QUEUE ( queue_name =>'multiconsumer_rawType_AQ');
19+
EXECUTE DBMS_AQADM.DROP_QUEUE_TABLE (queue_table =>'multiconsumer_rawType_AQTable');
20+
21+
22+
--Clean up all Java Basic Queue Tables and Queues
23+
-- EXECUTE DBMS_AQADM.STOP_QUEUE ( queue_name => 'java_QueueName');
24+
-- EXECUTE DBMS_AQADM.DROP_QUEUE ( queue_name => 'java_QueueName');
25+
-- EXECUTE DBMS_AQADM.DROP_QUEUE_TABLE (queue_table => 'JAVA_QUEUETABLE');
26+
27+
-- EXECUTE DBMS_AQADM.STOP_QUEUE ( queue_name => 'java_QueueName_Multi');
28+
-- EXECUTE DBMS_AQADM.DROP_QUEUE ( queue_name => 'java_QueueName_Multi');
29+
-- EXECUTE DBMS_AQADM.DROP_QUEUE_TABLE (queue_table => 'java_QueueTable_Multi');
30+
31+
-- EXECUTE DBMS_AQADM.STOP_QUEUE ( queue_name => 'java_basicOracleQueueName');
32+
-- EXECUTE DBMS_AQADM.DROP_QUEUE ( queue_name => 'java_basicOracleQueueName');
33+
-- EXECUTE DBMS_AQADM.DROP_QUEUE_TABLE (queue_table => 'java_basicOracleQueueTable');
34+
35+
--Clean up object type */
36+
DROP TYPE obj_typ;
37+
/
38+
select * from ALL_QUEUES where OWNER='DBUSER' and QUEUE_TYPE='NORMAL_QUEUE';
39+
/
40+
EXIT;

workshops/oracleAQ/cleanupTEQ.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
cd $WORKFLOW_HOME ;
2+
sqlplus /@${DB_ALIAS}_${DB_USER2} @cleanupTEQ.sql

workshops/oracleAQ/cleanupTEQ.sql

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
--Clean up all objects related to the obj type: */
2+
Execute DBMS_AQADM.STOP_QUEUE ( queue_name => 'objType_TEQ');
3+
Execute DBMS_AQADM.drop_transactional_event_queue(queue_name =>'objType_TEQ',force=> TRUE);
4+
5+
--Cleans up all objects related to the RAW type: */
6+
Execute DBMS_AQADM.STOP_QUEUE ( queue_name => 'rawType_TEQ');
7+
Execute DBMS_AQADM.drop_transactional_event_queue(queue_name =>'rawType_TEQ',force=> TRUE);
8+
9+
--Cleans up all objects related to the priority queue: */
10+
Execute DBMS_AQADM.STOP_QUEUE ( queue_name => 'jsonType_TEQ');
11+
Execute DBMS_AQADM.drop_transactional_event_queue(queue_name =>'jsonType_TEQ',force=> TRUE);
12+
13+
--Clean up object type */
14+
DROP TYPE Message_type;
15+
/
16+
select * from ALL_QUEUES where OWNER='DBUSER' and QUEUE_TYPE='NORMAL_QUEUE';
17+
/
18+
EXIT;

workshops/oracleAQ/createAQ.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
cd $WORKFLOW_HOME ;
2+
sqlplus /@${DB_ALIAS}_${DB_USER2} @createAQ.sql

workshops/oracleAQ/createAQ.sql

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
2+
CREATE type obj_typ as object (subject VARCHAR2(30), text VARCHAR2(80));
3+
/
4+
-- Creating an OBJECT type Queue Table and Queue
5+
BEGIN
6+
DBMS_AQADM.CREATE_QUEUE_TABLE (queue_table => 'objType_AQTable', queue_payload_type => 'obj_typ');
7+
DBMS_AQADM.CREATE_QUEUE (queue_name => 'objType_AQ', queue_table => 'objType_AQTable');
8+
DBMS_AQADM.START_QUEUE (queue_name => 'objType_AQ');
9+
END;
10+
/
11+
-- Creating a RAW type queue table and queue
12+
BEGIN
13+
DBMS_AQADM.CREATE_QUEUE_TABLE ( queue_table => 'rawType_AQTable', queue_payload_type => 'RAW');
14+
DBMS_AQADM.CREATE_QUEUE ( queue_name => 'rawType_AQ', queue_table => 'rawType_AQTable');
15+
DBMS_AQADM.START_QUEUE ( queue_name => 'rawType_AQ');
16+
END;
17+
/
18+
--Creating a JSON type queue table and queue
19+
BEGIN
20+
DBMS_AQADM.CREATE_QUEUE_TABLE ( queue_table => 'jsonType_AQTable', queue_payload_type => 'JSON');
21+
DBMS_AQADM.CREATE_QUEUE ( queue_name => 'jsonType_AQ', queue_table => 'jsonType_AQTable');
22+
DBMS_AQADM.START_QUEUE ( queue_name => 'jsonType_AQ');
23+
END;
24+
/
25+
-- Creating a Multiconsumer RAW type queue table and queue
26+
BEGIN
27+
DBMS_AQADM.CREATE_QUEUE_TABLE ( queue_table => 'multiconsumer_rawType_AQTable', queue_payload_type => 'RAW', multiple_consumers => TRUE);
28+
DBMS_AQADM.CREATE_QUEUE ( queue_name => 'multiconsumer_rawType_AQ', queue_table => 'multiconsumer_rawType_AQTable');
29+
DBMS_AQADM.START_QUEUE ( queue_name => 'multiconsumer_rawType_AQ');
30+
END;
31+
/
32+
DECLARE
33+
subscriber sys.aq$_agent;
34+
BEGIN
35+
subscriber := sys.aq$_agent('basicSubscriber', NULL, NULL);
36+
DBMS_AQADM.ADD_SUBSCRIBER(queue_name => 'multiconsumer_rawType_AQ', subscriber => subscriber);
37+
END;
38+
/
39+
select * from ALL_QUEUES where OWNER='DBUSER' and QUEUE_TYPE='NORMAL_QUEUE';
40+
/
41+
EXIT;

workshops/oracleAQ/createTEQ.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
cd $WORKFLOW_HOME ;
2+
sqlplus /@${DB_ALIAS}_${DB_USER2} @createTEQ.sql

workshops/oracleAQ/createTEQ.sql

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
2+
CREATE type Message_type as object (subject VARCHAR2(30), text VARCHAR2(80));
3+
/
4+
-- Creating an Object type queue
5+
BEGIN
6+
DBMS_AQADM.CREATE_TRANSACTIONAL_EVENT_QUEUE(
7+
queue_name =>'objType_TEQ',
8+
storage_clause =>null,
9+
multiple_consumers =>true,
10+
max_retries =>10,
11+
comment =>'ObjectType for TEQ',
12+
queue_payload_type =>'Message_type',
13+
queue_properties =>null,
14+
replication_mode =>null);
15+
DBMS_AQADM.START_QUEUE (queue_name=> 'objType_TEQ', enqueue =>TRUE, dequeue=> True);
16+
END;
17+
/
18+
19+
-- Creating a RAW type queue:
20+
BEGIN
21+
DBMS_AQADM.CREATE_TRANSACTIONAL_EVENT_QUEUE(
22+
queue_name =>'rawType_TEQ',
23+
storage_clause =>null,
24+
multiple_consumers =>true,
25+
max_retries =>10,
26+
comment =>'RAW type for TEQ',
27+
queue_payload_type =>'RAW',
28+
queue_properties =>null,
29+
replication_mode =>null);
30+
DBMS_AQADM.START_QUEUE (queue_name=> 'rawType_TEQ', enqueue =>TRUE, dequeue=> True);
31+
END;
32+
/
33+
34+
--Creating JSON type queue:
35+
BEGIN
36+
DBMS_AQADM.CREATE_TRANSACTIONAL_EVENT_QUEUE(
37+
queue_name =>'jsonType_TEQ',
38+
storage_clause =>null,
39+
multiple_consumers =>true,
40+
max_retries =>10,
41+
comment =>'jsonType for TEQ',
42+
queue_payload_type =>'JSON',
43+
queue_properties =>null,
44+
replication_mode =>null);
45+
DBMS_AQADM.START_QUEUE (queue_name=> 'jsonType_TEQ', enqueue =>TRUE, dequeue=> True);
46+
END;
47+
/
48+
DECLARE
49+
subscriber sys.aq$_agent;
50+
BEGIN
51+
subscriber := sys.aq$_agent('teqBasicObjSubscriber', NULL, NULL);
52+
DBMS_AQADM.ADD_SUBSCRIBER(queue_name => 'objType_TEQ', subscriber => subscriber);
53+
54+
subscriber := sys.aq$_agent('teqBasicRawSubscriber', NULL, NULL);
55+
DBMS_AQADM.ADD_SUBSCRIBER(queue_name => 'rawType_TEQ', subscriber => subscriber);
56+
57+
subscriber := sys.aq$_agent('teqBasicJsonSubscriber', NULL, NULL);
58+
DBMS_AQADM.ADD_SUBSCRIBER(queue_name => 'jsonType_TEQ', subscriber => subscriber);
59+
END;
60+
/
61+
select * from ALL_QUEUES where OWNER='DBUSER' and QUEUE_TYPE='NORMAL_QUEUE';
62+
/
63+
EXIT;

workshops/oracleAQ/dequeueAQ.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
cd $WORKFLOW_HOME ;
2+
sqlplus /@${DB_ALIAS}_${DB_USER2} @dequeueAQ.sql

0 commit comments

Comments
 (0)