Professional Documents
Culture Documents
Advanced Queuing
Naresh Kumar Y
Agenda
Introduction
Environment setup
Packages to manage AQs
Payload
Queue table
Create Queue
Grant privileges
Message properties
Enqeue options
Enqueue message
Deqeue options
Dequeue message
Introduction
Environment setup
Payload
Queue table
Create queue
Create and start queue using DBMS_AQ
package.
Example ::
DBMS_AQADM.create_queue (queue_name
=> XX_CUSTOMER_Q',
queue_table
=> 'xx_event_queue_tbl'
);
DBMS_AQADM.start_queue
(queue_name => XX_CUSTOMER_Q',
enqueue => TRUE);
Grant privileges
After creating and starting queue, we need
to give grants to user schema to manage
the queues.
Example
DBMS_AQADM.grant_queue_privilege
( privilege => 'ALL',
queue_name => 'aq_admin.event_queue',
grantee => 'aq_user
);
Message Properties
Message Properties(Contd.)
message_properties_tTYPE
message_properties_t IS RECORD (
priority BINARY_INTEGER DEFAULT 1,
delay BINARY_INTEGER DEFAULT NO_delay,
expiration BINARY_INTEGER DEFAULT NEVER,
correlation VARCHAR2(128) DEFAULT NULL,
attempts BINARY_INTEGER,
recipient_list aq$_recipient_list_t,
exception_queue VARCHAR2(51) DEFAULT NULL,
enqueue_time DATE,
state BINARY_INTEGER,
sender_id aq$_agent DEFAULT NULL,
original_msgid RAW(16) DEFAULT NULL);
/
Enqeue options
enqueue_options_t TYPE
enqueue_options_t IS RECORD (
visibilityBINARY_INTEGER DEFAULT
ON_COMMIT,
relative_msgid RAW(16) DEFAULT NULL,
sequence_deviation BINARY_INTEGER
DEFAULT NULL,
transformation VARCHAR2(60) DEFAULT
NULL);
/
Enqueue message
Deqeue options
Dequeue message