1 .一种实现可持久化消息队列的方法,其特征在于,所述方法包括:
S1 .准备持久化队列,用户创建自定义消息类型,然后通过调用openGauss数据库DBMS_
AQADM内置包中的dbms_aqadm .create_queue_table接口创建队列表、内部表all_dequeue_
queues、内部表vb_queue_triggers、持久化队列监控器;
S2 .使用持久化队列,通过接口dbms_aq .enqueue进行消息进入持久化队列和接口
dbms_aq .dequeue进行消息离开持久化队列的操作;
S3 .销毁持久化队列,通过接口dbms_aqadm .drop_queue_table进行队列消息删除、队
列删除、队列表删除、队列监控器删除。
2 .根据权利要求1所述的实现可持久化消息队列的方法,其特征在于,所述方法利用
openGauss数据库中的模式表vb_queue_table、内部表all_dequeue_queues、内部表vb_
queue_triggers和持久化队列监控器来实现持久化消息队列;利用plsql实现的存储过程
来管理消息队列以及消息的出队和入队;其中:
模式表vb_queue_table用于存储所有队列的消息,其表结构信息固定,表名通过调用
接口dbms_aqadm .create_queue_table来确定;
内部表all_dequeue_queues用于维护所有队列的基本信息,其表名及表结构固定;
内部表vb_queue_triggers用于维护队列上注册的回调函数信息,其表名及表结构固
定。
3 .根据权利要求2所述的实现可持久化消息队列的方法,其特征在于,所述方法中管理
消息队列的接口属于内置包DBMS_AQADM,管理消息出队和入队的接口属于内置包DBMS_AQ;
其中:
内置包DBMS_AQADM中包含以下接口:
create_queue_table:本接口负责创建队列表;
drop_queue_table:本接口负责删除队列表;
purge_queue_table:本接口负责清理队列表中消息;
create_queue:本接口负责创建消息队列;
drop_queue:本接口负责删除消息队列;
alter_queue:本接口负责修改队列自身信息;
start_queue:本接口负责启动队列;
stop_queue:本接口负责停止队列;
内置包DBMS_AQ中包含以下接口:
register:本接口负责给指定队列注册回调函数;
unregister:本接口负责给指定队列注销回调函数;
enqueue:本接口负责给指定队列写入消息,并同时触发回调函数执行;dequeue:本接
口负责从指定队列读取消息,并同时触发回调函数执行。
4 .根据权利要求1所述的实现可持久化消息队列的方法,其特征在于,所述方法步骤S1
中包括以下过程:
S11 .在DBMS_AQADM内置包初始化时,创建内部表all_dequeue_queues、内部表vb_
queue_triggers以及持久化队列监控器aq$_queue_monitor;
S12 .用户创建自定义消息类型,接口dbms_aqadm .create_queue_table接收自定义队
权 利 要 求 书
1/2 页
2
评论