CN117520018A - 一种实现可持久化消息队列的方法 - Google Patents
一种实现可持久化消息队列的方法 Download PDFInfo
- Publication number
- CN117520018A CN117520018A CN202311585599.5A CN202311585599A CN117520018A CN 117520018 A CN117520018 A CN 117520018A CN 202311585599 A CN202311585599 A CN 202311585599A CN 117520018 A CN117520018 A CN 117520018A
- Authority
- CN
- China
- Prior art keywords
- queue
- message
- interface
- dbms
- dequeue
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 230000006870 function Effects 0.000 claims abstract description 58
- 230000002085 persistent effect Effects 0.000 claims abstract description 35
- 230000002688 persistence Effects 0.000 claims abstract description 24
- 238000012217 deletion Methods 0.000 claims description 9
- 230000037430 deletion Effects 0.000 claims description 9
- 230000006378 damage Effects 0.000 claims description 5
- 238000002360 preparation method Methods 0.000 claims description 5
- 238000001914 filtration Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 abstract description 9
- 230000002045 lasting effect Effects 0.000 abstract 1
- 230000008569 process Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000015654 memory Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种实现可持久化消息队列的方法。本方法包括:准备持久化队列,用户创建自定义消息类型,通过调用openGauss数据库DBMS_AQADM内置包中的接口创建队列表、内部表all_dequeue_queues、内部表vb_queue_triggers、持久化队列监控器;使用持久化队列,进行消息进入持久化队列和消息离开持久化队列操作;销毁持久化队列,通过接口进行队列消息删除、队列删除、队列表删除。本方法能够实现同一数据库不同业务系统间的消息通信,并且提供了丰富的消息队列管理功能以及消息出入队控制参数,使得消息可以持久化存储且能针对消息指定各种回调功能,操作非常便捷。
Description
技术领域
本发明属于消息队列持久化方法技术领域,尤其涉及一种实现可持久化消息队列的方法及装置。
背景技术
随着互联网和数据库技术的快速发展,应用系统层出不穷,用户对应用系统间的消息传递要求也越来越高。但是,由于通信机制一般是高级编程语言层面的特性且都是内存态易失的,因此应用系统之间往往没有现成的持久化消息队列方案,通常需要额外开发且通信机制功能单一,无法对收发消息进行定制化响应,从而给应用系统间的消息通信和消息持久化存储造成了诸多困难。
许多企业和政府部门为了能让消息在多个应用系统间正常传递,投入了大量的研发资源和运维资源,采取在应用系统中添加独立通信模块的方式来解决不同系统间的消息收发问题,当需要持久化消息时还需额外开发内存数据落盘功能,不仅提高了业务研发门槛,且加大了客户端的负载,降低了系统性能。
综上可见,目前本领域能够提供的消息队列大都基于内存且功能单一,在现有条件下,要在多个业务系统间进行持久化消息通信几乎是不可能完成的任务,因此,如何为数据库提供统一的持久化消息队列已成为一个迫切需要解决的问题。
发明内容
为了克服当前消息队列存在的上述缺陷,本发明提出了一种新的实现可持久化消息队列的方法。
openGauss数据库是一种开放源代码的关系型数据库管理系统,是基于开源数据库PostgreSQL演进而来的。本发明的目的是在openGauss数据库中提供一种持久化消息队列的方法,其能实现数据库不同业务系统之间的消息通信,并且提供了丰富的消息队列管理功能以及消息出入队控制参数。
本发明方法基于数据库表和plsql存储过程实现持久化消息队列,能够实现同一数据库不同业务系统间的消息通信,本方法使得消息可以持久化存储且能针对消息指定各种回调功能,操作非常便捷。
具体地,本发明提供了一种实现可持久化消息队列的方法,本方法包括:
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进行队列消息删除、队列删除、队列表删除、队列监控器删除。
进一步地,本发明实现可持久化消息队列的方法利用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用于维护队列上注册的回调函数信息,其表名及表结构固定。
进一步地,本发明实现可持久化消息队列的方法中管理消息队列的接口属于内置包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:本接口负责从指定队列读取消息,并同时触发回调函数执行。
进一步地,本发明实现可持久化消息队列的方法步骤S1中包括以下过程:
S11.在DBMS_AQADM内置包初始化时,创建内部表all_dequeue_queues、内部表vb_queue_triggers以及持久化队列监控器aq$_queue_monitor;
S12.用户创建自定义消息类型,接口dbms_aqadm.create_queue_table接收自定义队列表名称及消息类型名称,内部基于模式表vb_queue_table创建队列表;
S13.接口dbms_aqadm.create_queue接收队列名称及所属队列表名称,生成all_dequeue_queues表字段相关信息,并向其中写入一条记录来表明当前队列已创建;
S14.接口dbms_aqadm.start_queue接收队列名称并启动队列,即更新all_dequeue_queues表中enqueue_enabled及dequeue_enabled字段值为true。
进一步地,本发明实现可持久化消息队列的方法步骤S1中还包括以下过程:
S15.接口dbms_aq.register接收队列名称及回调函数名称,然后把回调函数注册到此队列上,同时把队列信息及回调函数名称信息写入到vb_queue_triggers表中,完成队列与回调函数的关联。
进一步地,本发明实现可持久化消息队列的方法步骤S2中包括以下过程:
S21.接口dbms_aq.enqueue接收队列名称、自定义消息、入队参数,进行消息入队操作;此时把消息内容和消息所属队列信息写入到队列关联的队列表中,然后查询vb_queue_triggers表判断当前队列是否注册了入队操作回调函数,如果是则触发回调函数执行;
S22.接口dbms_aq.dequeue接收队列名称、出队参数、消息过滤条件,进行消息出队操作;此时把消息从队列表中读取出来,并根据传入的规则来对此消息进行处理、保留或删除;然后查询vb_queue_triggers表判断当前队列是否注册了出队操作回调函数,如果是则触发回调函数执行。
进一步地,本发明实现可持久化消息队列的方法步骤S3中包括以下过程:
S31.在正常操作模式下,通过接口dbms_aqadm.stop_queue停止队列,即把all_dequeue_queues表中enqueue_enabled及dequeue_enabled字段值改为false;通过接口dbms_aqadm.drop_queue删除队列,即把all_dequeue_queues表中当前队列记录删除并联动删除回调函数信息;通过接口dbms_aqadm.drop_queue_table删除队列表消息,即删除队列表中的记录并删除队列表、队列监控器;
S32.在强制操作模式下,接口dbms_aqadm.drop_queue_table设置强制删除标记为true,直接删除队列消息、回调函数信息、队列、队列表、队列监控器。
另外,本发明还提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述程序被处理器执行时实现上述的实现可持久化消息队列的方法的步骤。
另一方面,本发明还提供了一种实现可持久化消息队列的装置,本装置包括:
持久化队列准备模块:用于创建用户自定义消息类型,然后通过调用openGauss数据库DBMS_AQADM内置包中的接口创建队列表、内部表all_dequeue_queues、内部表vb_queue_triggers、持久化队列监控器aq$_queue_monitor;
持久化队列使用模块:用于进行消息进入持久化队列和消息离开持久化队列的操作;
持久化队列销毁模块:用于通过接口dbms_aqadm.drop_queue_table进行队列消息删除、队列删除、队列表删除。
各模块按照上述的实现可持久化消息队列的方法实施运行。
综上,本发明实现可持久化消息队列的方法能够实现同一数据库(openGauss数据库)不同业务系统间的消息通信,并且提供了丰富的消息队列管理功能以及消息出入队控制参数,使得消息可以持久化存储且能针对消息指定各种回调功能,操作非常便捷。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面对本发明实施例叙述中需要使用的附图作简要介绍,显而易见地,下述附图仅是本发明中记载的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明中模式表vb_queue_table表结构图。
图2是本发明中内部表all_dequeue_queues表结构图。
图3是本发明中内部表vb_queue_triggers表结构图。
图4是本发明中create_queue_table接口处理流程示意图。
图5是本发明中drop_queue_table接口处理流程示意图。
图6是本发明中purge_queue_table接口处理流程示意图。
图7是本发明中create_queue接口处理流程示意图。
图8是本发明中drop_queue接口处理流程示意图。
图9是本发明中alter_queue接口处理流程示意图。
图10是本发明中start_queue接口处理流程示意图。
图11是本发明中stop_queue接口处理流程示意图。
图12是本发明中register接口处理流程示意图。
图13是本发明中unregister接口处理流程示意图。
图14是本发明中enqueue接口处理流程示意图。
图15是本发明中dequeue接口处理流程示意图。
图16是本发明中整个系统实施方式的处理流程示意图。
图17是本发明中持久化队列监控器结构图。
图18是本发明方法的整体实施流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本发明的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例,本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
同时,应理解,本发明的保护范围并不局限于下述特定的具体实施方案;还应当理解,本发明实施例中使用的术语是为了描述特定的具体实施方案,而不是为了限制本发明的保护范围。
实施例1:一种实现可持久化消息队列的方法
本方法利用openGauss数据库中的表来实现持久化消息队列,利用plsql实现的存储过程来管理消息队列以及消息的出队和入队。其中,管理消息队列的接口属于内置包DBMS_AQADM,消息出入队接口属于内置包DBMS_AQ。
本方法中消息队列涉及到的表如下:
模式表vb_queue_table:此表用来存储所有队列的消息,表结构信息是固定的(详见图1),但表名是调用接口dbms_aqadm.create_queue_table才确定的。
内部表all_dequeue_queues:伴随内置包创建而创建,表名及表结构固定(详见图2),维护所有队列的基本信息。
内部表vb_queue_triggers:伴随内置包创建而创建,表名及表结构固定(详见图3),维护队列上注册的回调函数信息。
内置包DBMS_AQADM中包含的接口如下:
create_queue_table:本接口负责创建队列表(详细处理过程见图4);
drop_queue_table:本接口负责删除队列表(详细处理过程见图5);
purge_queue_table:本接口负责清理队列表中消息(详细处理过程见图6);
create_queue:本接口负责创建消息队列(详细处理过程见图7);
drop_queue:本接口负责删除消息队列(详细处理过程见图8);
alter_queue:本接口负责修改队列自身信息(详细处理过程见图9);
start_queue:本接口负责启动队列(详细处理过程见图10);
stop_queue:本接口负责停止队列(详细处理过程见图11)。
内置包DBMS_AQ中包含的接口如下:
register:本接口负责给指定队列注册回调函数(详细处理过程见图12);
unregister:本接口负责给指定队列注销回调函数(详细处理过程见图13);
enqueue:本接口负责给指定队列写入消息,并同时触发回调函数执行(详细处理过程见图14);
dequeue:本接口负责从指定队列读取消息,并同时触发回调函数执行(详细处理过程见图15)。
以下详细说明本发明的技术方案:
用户在openGauss数据库中进行持久化消息队列管理以及消息收发,持久化消息队列在openGauss数据库的使用及处理流程如下(详细过程见图16和图18):
一、持久化队列准备阶段
此过程需要用户首先创建自定义消息类型,然后通过调用DBMS_AQADM包中的接口来创建队列表、内部表all_dequeue_queues、内部表vb_queue_triggers、持久化队列监控器来进行持久化队列准备工作。详细过程如下:
1.在DBMS_AQADM包初始化时,创建内部表all_dequeue_queues(如图2所示)、内部表vb_queue_triggers(如图3所示)、持久化队列监控器(如图17所示)。
2.用户手动创建消息类型(即plsql中的自定义类型),接口dbms_aqadm.create_queue_table接收自定义队列表名称(假如为qt)及消息类型名称,内部基于模式表vb_queue_table创建队列表qt(表结构如图1所示)。
3.接口dbms_aqadm.create_queue接收队列名称及所属队列表名称,生成all_dequeue_queues表字段相关信息,并向其中写入一条记录来表明当前队列已创建。
4.接口dbms_aqadm.start_queue接收队列名称来启动队列,即更新all_dequeue_queues表中enqueue_enabled及dequeue_enabled字段值为true,为false时无法进行dequeue/enqueue操作。
5.此步骤可选,接口dbms_aq.register接收队列名称及回调函数名称,把回调函数注册到队列上;此时会把队列信息及回调函数名称信息写入到vb_queue_triggers表中,从而达到关联队列与回调函数的效果。
二、持久化队列使用阶段
此过程包含消息进入持久化队列和消息离开持久化队列两种操作,是持久化队列核心,包含较多出入队策略,用户可以根据需求来进行调整。详细过程如下:
1.接口dbms_aq.enqueue接收队列名称、自定义消息、入队参数来进行消息入队操作;此时把消息内容和消息所属队列信息写入到队列关联的队列表qt中,然后查询vb_queue_triggers表判断当前队列是否注册了入队操作回调函数,如果是则触发回调函数执行。
2.接口dbms_aq.dequeue接收队列名称、出队参数、消息过滤条件来进行消息出队操作;此时把消息从队列表qt中读取出来,并根据传入的规则来对此消息进行进一步处理、保留或删除;然后查询vb_queue_triggers表判断当前队列是否注册了出队操作回调函数,如果是则触发回调函数执行。
三、持久化队列销毁阶段
此过程为持久化队列销毁过程,主要通过接口dbms_aqadm.drop_queue_table来进行队列消息删除、队列删除、队列表删除、队列监控器删除,即进行队列表qt、内部表all_dequeue_queues、内部表vb_queue_triggers删除、队列监控器删除。详细过程如下:
1.正常情况下,接口dbms_aqadm.stop_queue用来停止队列,即把all_dequeue_queues表中enqueue_enabled及dequeue_enabled字段值改为false;dbms_aqadm.drop_queue用来删除队列即把all_dequeue_queues表中当前队列记录删除并联动删除回调函数即vb_queue_triggers中的记录;接口dbms_aqadm.drop_queue_table删除队列表消息即队列表qt中的记录并删除队列表qt、队列监控器。
2.强制情况下,接口dbms_aqadm.drop_queue_table设置强制删除标记为true时,直接删除队列消息、回调函数信息、队列、队列表、队列监控器。
实施例2:一种实现可持久化消息队列的装置,本装置包括:
持久化队列准备模块:用于创建用户自定义消息类型,然后通过调用openGauss数据库DBMS_AQADM内置包中的接口创建队列表、内部表all_dequeue_queues、内部表vb_queue_triggers、持久化队列监控器aq$_queue_monitor;
持久化队列使用模块:用于进行消息进入持久化队列和消息离开持久化队列的操作;
持久化队列销毁模块:用于通过接口dbms_aqadm.drop_queue_table进行队列消息删除、队列删除、队列表删除、队列监控器删除。
上述各模块按照实施例1所述的实现可持久化消息队列的方法实施运行。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰获得等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均应包含在本发明的权利要求保护范围之内。
Claims (9)
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接收自定义队列表名称及消息类型名称,内部基于模式表vb_queue_table创建队列表;
S13.接口dbms_aqadm.create_queue接收队列名称及所属队列表名称,生成all_dequeue_queues表字段相关信息,并向其中写入一条记录来表明当前队列已创建;
S14.接口dbms_aqadm.start_queue接收队列名称并启动队列,即更新all_dequeue_queues表中enqueue_enabled及dequeue_enabled字段值为true。
5.根据权利要求4所述的实现可持久化消息队列的方法,其特征在于,所述方法步骤S1中还包括以下过程:
S15.接口dbms_aq.register接收队列名称及回调函数名称,然后把回调函数注册到此队列上,同时把队列信息及回调函数名称信息写入到vb_queue_triggers表中,完成队列与回调函数的关联。
6.根据权利要求1所述的实现可持久化消息队列的方法,其特征在于,所述方法步骤S2中包括以下过程:
S21.接口dbms_aq.enqueue接收队列名称、自定义消息、入队参数,进行消息入队操作;此时把消息内容和消息所属队列信息写入到队列关联的队列表中,然后查询vb_queue_triggers表判断当前队列是否注册了入队操作回调函数,如果是则触发回调函数执行;
S22.接口dbms_aq.dequeue接收队列名称、出队参数、消息过滤条件,进行消息出队操作;此时把消息从队列表中读取出来,并根据传入的规则来对此消息进行处理、保留或删除;然后查询vb_queue_triggers表判断当前队列是否注册了出队操作回调函数,如果是则触发回调函数执行。
7.根据权利要求1所述的实现可持久化消息队列的方法,其特征在于,所述方法步骤S3中包括以下过程:
S31.在正常操作模式下,通过接口dbms_aqadm.stop_queue停止队列,即把all_dequeue_queues表中enqueue_enabled及dequeue_enabled字段值改为false;通过接口dbms_aqadm.drop_queue删除队列,即把all_dequeue_queues表中当前队列记录删除并联动删除回调函数信息;通过接口dbms_aqadm.drop_queue_table删除队列表消息,即删除队列表中的记录并删除队列表、队列监控器;
S32.在强制操作模式下,接口dbms_aqadm.drop_queue_table设置强制删除标记为true,直接删除队列消息、回调函数信息、队列、队列表、队列监控器。
8.一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述程序被处理器执行时实现权利要求1-7任一项所述的实现可持久化消息队列的方法的步骤。
9.一种实现可持久化消息队列的装置,其特征在于,所述装置包括:
持久化队列准备模块:用于创建用户自定义消息类型,然后通过调用openGauss数据库DBMS_AQADM内置包中的接口创建队列表、内部表all_dequeue_queues、内部表vb_queue_triggers、持久化队列监控器aq$_queue_monitor;
持久化队列使用模块:用于进行消息进入持久化队列和消息离开持久化队列的操作;
持久化队列销毁模块:用于通过接口dbms_aqadm.drop_queue_table进行队列消息删除、队列删除、队列表删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311585599.5A CN117520018B (zh) | 2023-11-24 | 2023-11-24 | 一种实现可持久化消息队列的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311585599.5A CN117520018B (zh) | 2023-11-24 | 2023-11-24 | 一种实现可持久化消息队列的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117520018A true CN117520018A (zh) | 2024-02-06 |
CN117520018B CN117520018B (zh) | 2024-06-25 |
Family
ID=89745369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311585599.5A Active CN117520018B (zh) | 2023-11-24 | 2023-11-24 | 一种实现可持久化消息队列的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117520018B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6058389A (en) * | 1997-10-31 | 2000-05-02 | Oracle Corporation | Apparatus and method for message queuing in a database system |
CN103425462A (zh) * | 2012-05-14 | 2013-12-04 | 阿里巴巴集团控股有限公司 | 一种工作流数据持久化的方法和装置 |
CN107391269A (zh) * | 2016-03-28 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种用于通过持久化队列处理消息的方法与设备 |
-
2023
- 2023-11-24 CN CN202311585599.5A patent/CN117520018B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6058389A (en) * | 1997-10-31 | 2000-05-02 | Oracle Corporation | Apparatus and method for message queuing in a database system |
CN103425462A (zh) * | 2012-05-14 | 2013-12-04 | 阿里巴巴集团控股有限公司 | 一种工作流数据持久化的方法和装置 |
CN107391269A (zh) * | 2016-03-28 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种用于通过持久化队列处理消息的方法与设备 |
Non-Patent Citations (2)
Title |
---|
网页发布者: "dbms_aq和dbms_aqadm有关问题", pages 1 - 5, Retrieved from the Internet <URL:https://blog.csdn.net/ora_dy/article/details/80438620> * |
郭盛兴 等: "基于通用消息的持久化消息队列设计", 《北京工商大学学报(自然科学版)》, vol. 28, no. 1, 15 January 2010 (2010-01-15), pages 69 - 72 * |
Also Published As
Publication number | Publication date |
---|---|
CN117520018B (zh) | 2024-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7640263B2 (en) | Queued system event notification and maintenance | |
JP7018516B2 (ja) | データクエリ | |
US9762670B1 (en) | Manipulating objects in hosted storage | |
US8572130B2 (en) | Replacement policy for resource container | |
US20160364407A1 (en) | Method and Device for Responding to Request, and Distributed File System | |
US11625412B2 (en) | Storing data items and identifying stored data items | |
CN103312624A (zh) | 一种消息队列服务系统和方法 | |
US11775480B2 (en) | Method and system for deleting obsolete files from a file system | |
CN112685499B (zh) | 一种工作业务流的流程数据同步方法、装置及设备 | |
US20160253361A1 (en) | Incorporating external data into a database schema | |
WO2020192663A1 (zh) | 一种数据管理方法及相关设备 | |
US20080168071A1 (en) | Storing Data in Predicted Formats | |
US8868618B2 (en) | Usage-optimized tables | |
CN117520018B (zh) | 一种实现可持久化消息队列的方法 | |
US10536404B2 (en) | Use of email to update records stored in a database server | |
US20100228787A1 (en) | Online data volume deletion | |
CN107506189A (zh) | 一种基于工厂模式实现的iOS数据持久化方法 | |
US8843708B2 (en) | Control block linkage for database converter handling | |
US10691615B2 (en) | Client-side persistent caching framework | |
US20120323874A1 (en) | Resource-specific control blocks for database cache | |
CN101872356B (zh) | 一种内存数据库处理性能的方法与系统 | |
US12072868B1 (en) | Data retention management for partitioned datasets | |
US11971822B2 (en) | Progressive caching of filter rules | |
JP2953933B2 (ja) | 網管理システムにおける受信メッセージの多段階データベース作成方式 | |
CN115202814A (zh) | 业务资源管控方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |