Java 中使用Oracle Native AQ

在前面的例子里我们为队列消息创建了一个Oracle Object type "queue_message_type",在java语言中我们不能使用Oracle的数据类型,因此我们要创建一个和"queue_message_type"对应的java类。我们可以使用Oracle Jpublisher,通过它,我们可以创建一个和Oracle Object type对应的java类。(这里就不具体讨论JPublisher用法)

这里我们用JPubisher创建一个和Oracle Object type "queue_message_type"对应java class "QUEUE_MESSAGE_TYPE "

在使用Oracle Native AQ对java的interface之前,我们必须通过jdbc连接到数据库,代码如下

//loads the Oracle JDBC driver

Class.forName("oracle.jdbc.driver.OracleDriver");

NativeAQ aq = new NativeAQ();

//DB connection, HOST --- 数据库所在的机器domian id SID----数据的service name

aq.connection = DriverManager.getConnection("jdbc:oracle:thin:@HOST:1521:SID","aquser","aquesr");

//

aq.connection.setAutoCommit(false);

然后我们通过传入AQ connection来获取AQ session对象

//loads the Oracle AQ driver

Class.forName("oracle.AQ.AQOracleDriver");

aq.session = AQDriverManager.createAQSession(aq.connection);

上述工作做好后,我们可以获取我们需要的queue对象了,进行出列的操作。

AQQueue queue = aq.session.getQueue("aqadm","MESSAGE_QUEUE");

AQDequeueOption dequeueOption = new AQDequeueOption();

System.out.println("Waiting for message to dequeue……...");

AQMessage message =

((AQOracleQueue)queue).dequeue(dequeueOption,QUEUE_MESSAGE_TYPE.getFactory());

把raw payload 转换成我们消息类型

AQObjectPayload payload = message.getObjectPayload();

QUEUE_MESSAGE_TYPE messageData = (QUEUE_MESSAGE_TYPE) payload.getPayloadData();

http://www.doczj.com/doc/75f0f07df46527d3240ce020.htmlmit();

System.out.println("Dequeued no: " + messageData.getNo());

System.out.println("Dequeued title: " + messageData.getTitle);

System.out.pritnln("Dequeued text: " + messageData.getText());

小结:Oracle Advanced Queuing是一个功能强大并且使用起来相对简单的产品。它提供的java包使我们不用编写太多的java代码就可以实现enqueue和dequeue操作。

oracle aq java_java使用oracle aq相关推荐

  1. oracle 高级队列Advanced Queuing(AQ) 通过消息通知自动异步出列

    Oracle AQ是Oracle数据库中集成的一种消息队列机制,可以用于不同应用程序间的消息交互. 下面讲如何具体的实现. 1.为用户赋权 GRANT RESOURCE TO datatest; GR ...

  2. oracle stalestats_深入理解oracle优化器统计数据(Optimizer Statistics)

    理解oracle优化器统计数据 首先来介绍oracle数据库使用基于规则优化器(RBO)来决定如何执行一个sql语句.基于规则优化器顾名思义,它是遵循一组规则来判断一个sql语句的执行计划.这组规则是 ...

  3. 在oracle的安全策略中,Oracle数据库的安全策略(转)

    Oracle数据库的安全策略(转)[@more@]Oracle是关系型数据库管理系统,它功能强大.性能卓越,在当今大型数据库管理系统中占有重要地位.在我们开发的一MIS系统中,选用了Oracle7.3 ...

  4. oracle cdc 提交顺序,Oracle CDC部署流程

    一.ORACLE环境检查 查oracle数据库版本(>9.2.0.4.0). select * from v$version; BANNER Oracle Database 10g Enterp ...

  5. oracle hot patch david,Oracle EBS使用adpatch工具打patch过程(hotpatch mode)

    从Metalink下载补丁 登陆到Metalink(https://support.oracle.com),Oracle内部用户可以使用ARU来下载. 点击Patches & Updates ...

  6. oracle rman备份时间,Oracle使用RMAN进行备份详述

    备份理论和基本语法 备份概念 执行备份或还原的数据库称为目标.在一些环境下,有许多数据库,因此有许多RMAN目标.应一次连接每个数据库.目标的每个备份都有一些属性: 打开或关闭 完整或部分 完整或增量 ...

  7. oracle更改密码机制,Oracle密码机制以及常用操作

    Oracle 默认有3个用户: sys 密码:自定:system 密码:自定 :scott 密码:Tiger(默认锁定):注:用Sys用户登录须根 [as sysdba Oracle 默认有3个用户: ...

  8. linux oracle 脚本,Linux的Oracle服务脚本

    Linux下安装完Oracle之后,安装程序并没有将Oracle安装为系统服务,重启系统后,Oracle还要手工启动,通过以下脚本,可以随开机启动Oracle.随关机停止Oracle服务. [php] ...

  9. oracle proc 定义宿主,oracle proc 编程基础及最小化案例

    oracle proc 编程是在我的概念中是非常陌生的,学习了一天下来发现这东西真的好古老,但是依然健壮.稳定,其中间是编辑一个 .pc 的文件使用 proc 进行预处理,预处理后生成一个真正的.c文 ...

最新文章

  1. Linux下ibus-sunpinyin的安装及翻页快捷键设置!
  2. Django(part45)--forms模块
  3. 十二岁孩子学编程用c语言好吗,太原12岁学编程
  4. linux安装qq_体验一下,看看 Linux 系统中的 QQ 是什么样子的
  5. html隐藏visibility,通过display或visibility来隐藏html元素
  6. 1.2. MariaDB
  7. 串行总线 —— I2C、UART、SPI
  8. php 计算字段的和,php – foreach中计算列的总和
  9. 计算机系统结构自考应用题,2017年10月自考02325计算机系统结构真题及答案
  10. [译] SolidWorks的发展历史(1994~2007)
  11. Excel常用10个函数
  12. 计算机技术复试新浪微博,四川大学计算机学院复试经验交流
  13. 计网-网络号、子网号、主机号以及子网网络地址,子网广播地址的算法
  14. 华为开发者选项锁屏已被管理员、加密政策或凭据存储禁用
  15. android dialog隐藏虚拟按键,dialog全屏且不会弹出虚拟按键
  16. 如何手机上检查h5页面
  17. echarts青岛市地图下钻到区市及根据各个区市经纬度在各区市地图绘制散点图和道路线
  18. 2020年度个人总结--一个前端技术LD的年终盘点
  19. element实现el-progress线形进度条渐变色
  20. 爬取哔哩哔哩网站数据

热门文章

  1. VoWiFi异常场景介绍
  2. 光猫机顶盒有路由鸿蒙吗,光猫和机顶盒是一样的吗
  3. Python爬虫系列之多多买菜小程序数据爬取
  4. 计算机能否代替老师英语作文,8分作文 | 电脑能否代替老师
  5. ni visa pci_基于PCI接口的板卡式数字称重仪表 - 工业自动化称重仪表
  6. MT523芯片技术资料大全,MT523数据表原理图下载
  7. 「雕爷学编程」Arduino动手做(27)——BMP280气压传感器
  8. 如何做好知识付费课程?
  9. 目标、计划、任务、日志、绩效的定义和相互关系
  10. python爬取起点小说