Oracle AQ 的使用

Oracle AQ 的使用

ID:40572385

大小:37.50 KB

页数:7页

时间:2019-08-04

Oracle AQ 的使用_第1页
Oracle AQ 的使用_第2页
Oracle AQ 的使用_第3页
Oracle AQ 的使用_第4页
Oracle AQ 的使用_第5页
资源描述:

《Oracle AQ 的使用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、OracleAQ的使用(-)随着不同应用模块间的消息交互和通信成为一个关键的功能,并且变得越来越重要。Oracle引入了一种强大的队列机制,通过它程序间可以实现信息的交互,oracle把它称作为AQ-AdvancedQueuing.使用OracleAQ,我们不需要安装额外的中间件,它是Oracle数据库的一个功能组件,只要你安装了Oracle数据库就可以使用AQ了。接下来分两部分来介绍AQ的使用,使用之前我们要创建QUEUE.我们创建一个自己的AQ的管理角色"my_aq_adm_role"和管理用户"aqadm",再把OracleAQ管理角色

2、"aq_adminstrator_role"授权给"my_aq_adm_role".CREATEROLEmy_aq_adm_role;GRANTaq_adminsistator_roleTOmy_aq_adm_role创建一个用户的角色"my_aq_user_role"和普通用户"aquser",再把OracleAQ的用户角色"aq_user_role"和一些基本操作需要的系统权限授权给"my_aq_adm_role"CREATEROLEmy_aq_user_role;GRANTCREATEsession,aq_user_roleTOmy_a

3、q_user_role;EXECDBMS_AQADM.GRANT_SYSTEM_PRIVILEGE(privilege=>'ENQUEUE_ANY',grantee=>'my_aq_user_role',admin_option=>FALSE);EXECDBMS_AQADM.GRANT_SYSTEM_PRIVILEGE(privilege=>'DEQUEUE_ANY',grantee=>'my_aq_user_role',admin_option='FALSE');现在我们创建AQ管理用户CREATEUSERaqadmIDENTIFIEDBY

4、aqadmDEFAULTTABLESPACEelathenTEMPORARYTABLESPACEtemp;GRANTmy_aq_adm_roleTOaqadm;GRANTconnect,resourceTOaqadm;----注意,resource角色一定要授给user,如果resource角色授权给my_aq_adm_role,user将会失去unlimitedtablespace权限接着为我们下面example创建普通用户CREATEUSERaquserIDENTIFIEDBYaquserDEFAULETTABLESPACEelathen

5、TEMPORARYTABLESPACEtemp;GRANTmy_aq_user_roleTOaquser;我们将在我们第一个queue中使用objecttype而不是NUMBERorVARCHAR2作为payload,这使我们更贴近实际应用。(payload是任何消息都使用的一种数据类型和结构).上面做的工作都需要在DBA的权限下做,现在我们切换到AQ管理员CONNECTaqadm/aqadmCREATETYPEqueue_message_typeASOBJECT(noNUBER,titleVARCHAR2(30),textVARCHAR2(

6、2000));/GRANTEXECUTEONqueue_message_typeTOmy_aq_user_role;我们再创建一个叫"message_queue"的queue以及相应的queuetable"queue_message_table",然后启动queue,这样我们就可以使用了。1.PL/SQL中使用AQ和java使用oracle本地AQ点对点模型(ThePoint-to-pointModel)在简单的系统中,我们可以认为两个系统一起使用一个或多个Queue。这种方法我们称作点对点模型。把消息输入到queue中的过程称为入列(Enq

7、ueue)相反的过程称为出列(Dequeue)。一条消息一次只能被一个使用这个queue的应用系统Dequeue,当其他应用系统可以浏览这个queue。这种模式就是点对点模式(thepoint-pointModel)PL/SQL中使用AQ使用aquser连接到数据库CONNECTaquser/aquser现在我们Enqueue一条消息.DECLAREqueue_optionsDBMS_AQ.enqueue_options_t;message_propertiesDBMS_AQ.message_properties_t;message_idRA

8、W(16);my_messageaqadm.queue_message_type;BEGINmy_message:=aqadm.queue_message_type

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。