Monday, November 27, 2006
Create QUEUE - AQ
To create queue you can use this program:
How to call?
procedure CreateRawAQ (
qname varchar2,
is_multi_consumer boolean default false
)
as
qtablename varchar2(110) := qname;
begin
dbms_aqadm.stop_queue (queue_name => qname);
dbms_aqadm.drop_queue (queue_name => qname);
dbms_aqadm.drop_queue_table (Queue_table => qtablename);
EXCEPTION
WHEN OTHERS THEN
null;
dbms_aqadm.create_queue_table (Queue_table => qtablename, Queue_payload_type=> 'RAW',
multiple_consumers => is_multi_consumer);
dbms_aqadm.create_queue (Queue_name => qname, Queue_table => qtablename);
dbms_aqadm.start_queue(qname);
end;
How to call?
DECLARE
enqueue_options dbms_aq.enqueue_options_t;
message_properties dbms_aq.message_properties_t;
msgid RAW(16);
raw_payload RAW(32767);
BEGIN
raw_payload := utl_raw.cast_to_raw('MESSAGE');
dbms_aq.enqueue(queue_name => 'MY_QUEUE',
enqueue_options => enqueue_options,
message_properties => message_properties,
payload => raw_payload,
msgid => msgid);
END;
