没有合适的资源?快使用搜索试试~ 我知道了~
首页Oracle高级队列(AQ)
资源详情
资源评论
资源推荐

Oracle 高级队列(AQ)

版本更新说明
基本信息 资料版本 资料编号 资料更新说明
Oracle 高级队列(AQ)创建及应用
R1.0
第一版
作者
资料版本 日期 作者 审核者 批准者
R1.0 2016-08-05
安涛
适用对象:初步了解 oracle 高级队列人群
注意事项:
序号 注意事项
1
JMS 监听部分可参考官方文档:
http://docs.oracle.com/cd/e12839_01/web.1111/e13738/aq_jms.htm#jmsad565
2
JMS 监听部分基本参照以下网站内容:
http://blog.csdn.net/scorpio3k/article/details/49406209
3
本文仅为按作者本身的项目经历编写,不包含全部 oracle 高级队列功能

目录
Oracle 高级队列(AQ)...................................................................................................................... 0
1 前言..................................................................................................................................... 3
2 功能概述............................................................................................................................. 3
3 创建 Oracle 高级队列.......................................................................................................... 4
3.1 Oracle 高级队列所需权限........................................................................................ 4
3.2 创建队列结构—TYPE............................................................................................... 4
3.3 创建队列表............................................................................................................... 5
3.4 创建队列.................................................................................................................. 6
3.5 队列使用.................................................................................................................. 6
4 队列创建完整步骤.............................................................................................................. 8
4.1 赋予权限.................................................................................................................. 9
4.2 创建队列结构(type):............................................................................................. 9
4.3 创建队列表:........................................................................................................... 9
4.4 创建队列:............................................................................................................. 10
4.5 启动队列:............................................................................................................. 10
4.6 建立入队存储:..................................................................................................... 11
4.7 建立出队存储:..................................................................................................... 12
4.8 删除队列:............................................................................................................. 13
5 JMS 监听并处理 Oracle 高级队列..................................................................................... 14
5.1 准备工作:............................................................................................................... 14
5.2 创建连接参数类:.................................................................................................... 14
5.3 创建消息转换类:.................................................................................................... 14
5.4 主类进行消息处理:................................................................................................ 17

1 前言
一般系统的应用可以分为:立即要执行和可以延迟要执行的事情,区分这个很重要。
为了提高系统的性能,缩短系统等待时间,引入队列技术。
队列是一种能将应用程序的处理工作有效地划分为前台任务和后台任务的技术。当处
理容量允许时,这种技术通过存储消息、确定消息处理的优先顺序和向应用程序提交消息
来发挥作用。它使你能够平衡本地计算机的负荷,或将任务分配到远程计算机。
为了减少用户的等待时间,应用程序可以让说明需要后台处理的消息排入队列。然后
就可以从页面的呈递过程中去掉该处理任务。由一个后台进程来读取并队列处理这些消息
或者甚至可以交由一个单独的系统来处理它们。
队列可以实现各个系统之间的数据共享,消息通信。
2 功能概述
利用 Oracle 高级队列实现 pl/sql 代码,为其它语言实现高级队列的功能作接口。
Oracle 高级队列有一下好处:
(1)高级队列管理是 Oracle 数据库的一个特性,它提供消息队列管理功能。这是一
个非常可靠、安全和可伸缩的消息管理系统,因为它使用与其他基于 Oracle 技术的应用
程序相同的数据库特性。
(2)高级队列管理的一个很大优点是它可以通过 pl/sql、java 或 c 来访问,这样你就
可以把来自一个 java servlet 的消息入队列和使 pl/sql 存储过程中的相同消息出队列。
(3)高级队列管理的另一个优点是你可以利用这一软件通过 Oracle net services
(sql*net)、http(s)和 smtp,在远程节点之间传播消息。高级队列甚至可以通过消息网关
与非 Oracle 的消息管理系统(如 ibm mqseries)相集成。
(4)Oracle 高级队列管理提供了单消费者队列和多消费者队列。单消费者队列只面
向单一的接收者。多消费者队列可以被多个接收者使用。当把消息放入多消费者队列时,
应用程序的程序员必须显式地在消息属性中指定这些接收者,或者建立决定每条消息的接
收者的基于规则的订阅过程。
Oracle 高级队列具体开发步骤如下:
(1)首先确定应用的需求,是否适合使用高级队列?使用高级队列预计提高性能的预
期值

(2)赋予数据库账户相应 aq 权限。
(3)确定队列包体结构,即创建 type。
(4)创建队列表及队列。
(5)队列管理
3 创建 Oracle 高级队列
3.1 Oracle 高级队列所需权限
赋予权限和角色:
grant connect, resource to 账户名;
grant aq_user_role to 账户名;
grant aq_administrator_role to 账户名;
grant execute on sys.dbms_aqadm to 账户名;
grant execute on sys.dbms_aq to 账户名;
grant execute on sys.dbms_aqin to 账户名;
grant execute on sys.dbms_aqjms to 账户名;
3.2 创建队列结构—TYPE
create or replace type 类型名称 as object
(
字段一 字段类型,
字段二 字段类型,
剩余20页未读,继续阅读













安全验证
文档复制为VIP权益,开通VIP直接复制

评论0