包
子程序
說明
DBMS_AQ
ENQUEUE
enqueueE操作
DBMS_AQ
DEQUEUE
Dequeue操作
DBMS_AQADM
CREATE_QUEUE_TABLE
用指定的參數創建列表
DBMS_AQADM
CREATE_QUEUE
在現有隊列表中創建一個隊列
DBMS_AQADM
DROP_QUEUE
從隊列表中刪除指定隊列
DBMS_AQADM
DROP_QUEUE_TABLE
刪除隊列表
DBMS_AQADM
ALTER_QUEUE
更改給定隊列的選項
DBMS_AQADM
ADD_SUBSCRIBER
向指定隊列中添加預約者
DBMS_AQADM
REMOVE_SUBSCRIBER
從給定隊列中刪除預約者
DBMS_AQADM
GRANT_TYPE_ACCESS
為隊列管理器授予權限
DBMS_AQADM
QUEUE_SUBSCRIBERS
返回指定隊列的預約者
DBMS_AQADM
START_TIME_MANAGER
啟動時間管理器後台進程
DBMS_AQADM
STOP_TIME_MANAGER
停止時間管理器後台進程
DBMS_AQ支持類型
類型名
說明
用於
SYS
消息的生產者或消費者
作為AQ$_RECIPIENT_LIST_T的一部分被包含
AQ$RECIPIENT_LIST_T
接收消息的代理列表
作為MESSAGE_PROPERIES_T的一部分被包含
MESSAGE_PROPERTIES_T
消息的屬性
ENQUEQU和DEQUEUE
ENQUEUE_OPTIONS_T
Enqueue的選項
ENQUEQU
DEQUEUE_OPTIONS_T
Dequeue的選項
DEQUEUE
TYPE SYS
(
Name varchar
Address varchar
Protocol number
)
Type aq$_recipient_list_t is table of sys
Type message_properties_t is record
(
Priority binary_integer default
Delay binary_integer default no_delay
Expiration binary_integer default never
Correlation varchar
Attempts binary_integer
Recipient_list aq$_recipient_list_t
Exception_queue varchar
Enqueue_time date
State binary_integer
)
參數說明:
字段
數據類型
說明
Priority
Binary_integer
相應消息的優先級
Delay
Binary_integer
相應消息的延遲
Expiration
Binary_integer
過期的秒數
Correlation
Varchar
關聯標識符
Attempts
Binary_integer
嘗試提取該消息的次數
Recipient_list
Aq$recipient_list_t
此消息的接收都列表
Exception_queue
Varchar
此消息的異常隊列
Enqueue_time
Date
消息插入隊列的時間
State
Binary_integer
在執行dequeue操作時消息的狀態
Type enqueue_option_t is record
(
Visibility binary_integer default no_commit
Relative_msgid raw(
Sequence_deviation binary_integer default null
)
參數說明
字段
數據類型
說明
Visibility
Binary_integer
指定事務的行為
Relative_msgid
Raw
如果在sequeue_deviation中指定了before
Sequence_deviation
Binary_integer
指定在隊列中此消息的位置
Type dequeue_options_t is record
(
Consumer_name varchar
Dequeue_mode binary_integer default null remove
Navigation binary_integer default next_message
Visibility binary_integer default on_commit
Wait binary_integer default forever
Msgid raw(
)
參數說明
字段
數據類型
說明
Consumer_name
Varchar
接收該消息的消費者名字
Dequeue_mode
Binary_integer
指定dequeue操作的鎖定行為
Navigation
Binary_integer
指定要檢索的消息的位置
Visibility
Binary_integer
指定是否dequeue是當前事務的一部分
Wait
Binary_integer
指定如果當前沒有匹配搜索條件的消息時等待的秒數
Msgid
Raw(
指定要執行dequeue操作的消息標識符
Correlation
Varchar
指定要執行dequeue操作的關聯標識符
枚舉常量
DBMS_AQ中支持類型的許多字段都是枚舉常量
字段
取值
使用位置
Sequeue_deviation
Before
Enqueue_options_t
Visibility
Immediate
Enqueue_options_t
Dequeue_mode
Browse
Dequeue_options_t
Navigation
First_message
Dequeue_options_t
Wait
Forever
Dequeue_options_t
State
Waiting
Message_properties_t
Delay
No_delay
Message_properties_t
Expiration
Never
Message_properties_t
過程定義:
一
Procedure enqueue(
Queue_name in varchar
Enqueue_options in enqueue_options_t
Message_properties in message_properties_t
Payload in message_type
Msgid out raw);
參數說明:
字段
數據類型
說明
Queue_name
Varchar
應該插入消息的隊列
Enqueue_options
Enqueue_options_t
Enqueue的選項
Message_properties
Message_properties_t
消息的屬性
Payload
Message_type
消息數據
Msgid
Raw
返回的消息ID
Enqueue選項的sequeue_deviation字段指定了在兩個消息之間的關系
[list=
新插入隊列的消息延遲必須少於或者等於在此消息被插入隊列以前的消息延遲
新插入隊列的消息的優先級必須大於或者等於在此消息被插入隊列以前的消息的優先級
二
Procedure dequeue(
Queue_name in varchar
dequeue_options in enqueue_options_t
Message_properties in message_properties_t
Payload in message_type
Msgid out raw);
Dequeue的搜索條件是由consumer_name
三
Create_queue_table用於創建隊列表
a
b
c
d
Procedure create_queue_table(
Queue_table in varchar
Queue_payload_type in varchar
Storage_clause in varchar
Sort_list in varchar
Multiple_consumers in Boolean default false
Message_grouping in binary_integer default none
Commet in varchar
Auto_commit in Boolean default true);
參數
數據類型
說明
Queue_table
Varchar
要創建的隊列表的名字
Queue_payload_type
Varchar
此隊列中的用戶數據的類型
Storage_clause
Varchar
用在create table 語句中的存儲參數
Sort_list
Varchar
定義用作排序主鍵的列
Multiple_consumers
Boolean
如果為true在此表中創建的隊列可以對每個消息擁有多個消費者
Message_grouping
Binary_integer
如果為NONE(缺省值)
Comment
Varchar
新創建的表的注釋
Auto_commit
Boolean
如果是true(缺省值)
四
Queue_table in varchar
Force in Boolean default false
Auto_commit in Boolean default true);
參數說明:
Force:如果為true
五
在指定的隊列表中創建一個隊列
Procedure create_queue(
Queue_name in varchar
Queue_table in varchar
Queue_type in binary_integer default normal_queue
Max_retries in number default
Retry_delay in number default
Retention_time in number default
Dependency_tracking in Boolean default false
Comment in varchar
Auto_commit in Boolean default true);
參數說明:
參數
數據類型
說明
Queue_name
Varchar
要創建的隊列的名字
Queue_table
Varchar
將要包含新創建的隊列的隊列表
Queue_type
Binary_integer
隊列類型
Max_retries
Number
嘗試dequeue操作(指定remove)的最大次數
Retry_delay
Number
在兩次嘗試之間的秒數
Retention_time
Number
消息在被執行dequeue以後在隊列表中保留的秒數
Dependency_tracking
Boolean
該參數被保留用作將來之用
Comment
Varchar
對新創建的隊列的說明
Auto_commit
Boolean
如果為true
六.Drop_queue
從隊列中刪除一個已存在的隊列
Procedure drop_queue(
Queue_name in varchar
Auto_commit in Boolean default true);
七.Alter_queue
此過程用於修改隊列的某些屬性
Procedure alter_queue(
Queue_name in varchar
Max_retries in number default null
Retry_delay in number default null
Retention_time in number default null
Auto_commit in Boolean default true);
參數
數據類型
說明
Queue_name
Varchar
要修改的隊列的名字
Max_retries
Number
嘗試dequeue操作(指定remove)的最大次數
Retry_delay
Number
在兩次嘗試之間的秒數
Retention_time
Number
消息在被執行dequeue以後在隊列表中保留的秒數
Auto_commit
Boolean
如果是true
八
用於使得對一個隊列運行進行enqueue和/或dequeue操作
Procedure start_queue(
Queue_name in varchar
Enqueue in Boolean default true
Dequeue in Boolean default true);
Enqueue
九
用於對指定隊列進行屏蔽enqueue和/或dequeue操作
Procedure stop_queue(
Queue_name in varchar
Enqueue in Boolean default true
Dequeue in Boolean default true
Wait in Boolean default true);
如果wait是true
十
將向隊列中添加一個缺省的預約者
Procedure add_subscriber(
Queue_name in varchar
Subscriber in sys
Subscriber是新的預約者
十一
此過程將從指定的隊列中刪除指定預約者
Procedure Remove_subscriber(
Queue_name in varchar
Subscriber in sys
十二
此函數指定隊列的預約者的PL/SQL表
Function queue_subscribers(
Queue_name in varchar
Return aq$_subscriber_list_t;
十三
Grant_type_access用於使得一個用戶能夠執行隊列管理操作
Procedure grant_type_access(
User_name in varchar
User_name 是要被授予權限的數據庫用戶
十四
此過程啟動時間管理進程
Procedure start_time_manager;
十五
使得時間管理器失效
Procedure stop_time_manager;
人生有三寶:終身運動
From:http://tw.wingwit.com/Article/program/Oracle/201311/16990.html