Previous | Table of Contents | Next |
DBMS_AQADM
Administrators must be granted AQ_ADMINISTRATOR_ROLE and rights to the object types used for queues, queue tables, and subscribers. To grant use of these object types, DBMS_AQADM.GRANT_TYPE_ACCESS must be run by SYS for each user.
Several data dictionary views are provided for keeping track of queues. These are AQ$QUEUE_TABLE_NAME, DBA_QUEUE_TABLES, USER_QUEUE_TABLES, DBA_QUEUES, and USER_QUEUES.
PROCEDURE CREATE_QUEUE_TABLE( queue_table IN VARCHAR2, queue_payload_type IN VARCHAR2, storage_clause IN VARCHAR2 default NULL, sort_list IN VARCHAR2 default NULL, multiple_consumers IN BOOLEAN default FALSE, message_grouping IN BINARY_INTEGER default NONE, comment IN VARCHAR2 default NULL, auto_commit IN BOOLEAN default TRUE);
queue_table | Name to queue table being created. |
queue_payload_type | Specifies data type of messages. Can be RAW or an object type. |
storage_clause | Table storage parameters for CREATE TABLE statement. See SQL Reference Guide for details. |
sort_list | Specifies columns to be used for sorting messages. Valid columns are priority and enq_time. The default is to sort by enq_time. |
multiple_consumers | TRUE means multiple consumers can exist for each message. |
message_grouping | TRANSACTIONAL means all messages queued during the same transaction will be dequeued together. NONE means each message is treated separately. |
comment | Gets recorded in the data dictionary. |
auto_commit | TRUE means the queue table is created regardless of the current transaction status. FALSE means the queue table is not created until the current transaction commits. |
This procedure creates a table to hold queues, a default exception queue, a read-only view of the queue table, and an index for queues set up for multiple consumers. If you named the queue table monitor_qt, these objects would be named aq$_monitor_qt_e, aq$_monitor_qt, and aq$_monitor_qt_i, respectively.
PROCEDURE CREATE_QUEUE( queue_name IN VARCHAR2, queue_table IN VARCHAR2, queue_type IN BINARY_INTEGER default NORMAL_QUEUE, max_retries IN NUMBER default 0, retry_delay IN NUMBER default 0, retention_time IN NUMBER default 0, dependency_tracking IN BOOLEAN default FALSE, comment IN VARCHAR2 default NULL, auto_commit IN BOOLEAN default TRUE);
queue_name | Name of queue to be created. |
queue_table | Queue table to create queue in. |
queue_type | NORMAL_QUEUE or EXCEPTION_QUEUE. |
max_retries | Maximum number of times an agent can dequeue a message with REMOVE and then roll back. When max_retries is reached, the message is moved to the exception queue. |
retry_delay | Time to wait between retries. Cannot be set for queues with multiple consumers. |
retention_time | Seconds to keep a message after it is dequeued. Valid values are 0 to INFINITE. |
dependency_tracking | For future use. TRUE produces an error. |
comment | Stored in queue catalog. |
auto_commit | TRUE means the queue is created independently of any transactions, and FALSE means the current transaction must commit before the queue becomes persistent. |
This creates a queue in which to store messages. Before it can be used, START_QUEUE must be run on it.
PROCEDURE START_QUEUE( queue_name IN VARCHAR2, enqueue IN BOOLEAN default TRUE, dequeue IN BOOLEAN default TRUE);
queue_name | Name of queue to start. |
enqueue | TRUE allows enqueuing of messages. |
dequeue | TRUE allows dequeuing of messages. |
This procedure must be used to enable a queue. Messages in an exception queue can only be dequeued, so the enqueue option does not apply to them.
PROCEDURE STOP_QUEUE( queue_name IN VARCHAR2, enqueue IN BOOLEAN default TRUE, dequeue IN BOOLEAN default TRUE, wait IN BOOLEAN default TRUE);
queue_name | Name of queue to be stopped. |
enqueue | TRUE disables enqueuing. |
dequeue | TRUE disables dequeuing. |
wait | TRUE blocks new processes on the queue while it waits for all pending processes to commit before it stops the queue. |
PROCEDURE DROP_QUEUE( queue_name IN VARCHAR2, auto_commit IN BOOLEAN DEFAULT TRUE);
This procedure removes the specified queue from the queue table. If auto_commit is TRUE, the drop occurs immediately. If its FALSE, the drop does not occur until the transaction commits.
PROCEDURE DROP_QUEUE_TABLE( queue_table IN VARCHAR2, force IN BOOLEAN default FALSE, auto_commit IN BOOLEAN default TRUE);
queue_table | Name of queue table to drop. |
force | TRUE means all queues in the table are stopped and dropped. FALSE returns an error if any queues are in the table. |
auto_commit | TRUE means the queue table is dropped regardless of the current transaction status. FALSE means the queue table is not dropped until the current transaction commits. |
PROCEDURE ALTER_QUEUE( queue_name IN VARCHAR2, max_retries IN NUMBER default NULL, retry_delay IN NUMBER default NULL, retention_time IN NUMBER default NULL, auto_commit IN BOOLEAN default TRUE);
Previous | Table of Contents | Next |