Oracle高级队列(Advanced Queue)初体验

最简单的高级队列的练习,基本上都使用了默认参数。
-- Create Type
create or replace type note as Object(
 subject varchar2(100),
 Content varchar2(2000),CreateTime date
);

-- Create queue table
begin
  sys.dbms_aqadm.create_queue_table(
    queue_table => 'NOTETAB',
    queue_payload_type => 'TEST.NOTE'
end;

--create queue
begin
  sys.dbms_aqadm.create_queue(
    queue_name => 'NOTEQ',
    queue_table => 'NOTETAB',
    queue_type => sys.dbms_aqadm.normal_queue,
    max_retries => 5,
    retry_delay => 0,
    retention_time => 0);
end;

--enqueue
declare
v_Message note;
v_MsgId RAW(16);
v_options DBMS_AQ.ENQUEUE_OPTIONS_T;
v_properties DBMS_AQ.MESSAGE_PROPERTIES_T;
v_Recipients  DBMS_AQ.AQ$_RECIPIENT_LIST_T;
begin
     v_Message:=note(subject => 'note3',Content => 'content3',createTime => sysdate);

--     v_Recipients(0) := sys.aq$_agent('NOTE','MTQ',0);
--     v_properties.recipient_list := v_Recipients;
     v_options.visibility :=DBMS_AQ.IMMEDIATE;
     dbms_aq.enqueue(queue_name => 'noteq',enqueue_options => v_options,message_properties => v_properties,payload => v_Message,msgid => v_MsgId);
     dbms_output.put_line('encode success,msgid is '||v_MsgId);

end;

--dequeue
declare
v_Message note;
v_MsgId RAW(16);
v_options DBMS_AQ.DEQUEUE_OPTIONS_T;
v_properties DBMS_AQ.MESSAGE_PROPERTIES_T;
v_Recipients  DBMS_AQ.AQ$_RECIPIENT_LIST_T;
begin

--     v_Recipients(0) := sys.aq$_agent('NOTE','MTQ',0);
--     v_properties.recipient_list := v_Recipients;
     v_options.visibility :=DBMS_AQ.IMMEDIATE;
     dbms_aq.dequeue(queue_name => 'noteq',dequeue_options => v_options,message_properties => v_properties,payload => v_Message,msgid => v_MsgId);
     dbms_output.put_line('decode success,msgid is '||v_MsgId);
     dbms_output.put_line('subject is '||v_Message.subject);
     dbms_output.put_line('Content is '||v_Message.Content);
     dbms_output.put_line('createTime is '||to_char(v_Message.createTime,'yyyy-mm-dd hh24:mi:ss'));
end;

时间: 2024-11-05 16:28:44

Oracle高级队列(Advanced Queue)初体验的相关文章

oracle 高级队列技术

Oracle AQ是Oracle数据库中集成的一种消息队列机制,可以用于不同应用程序间的消息交互,例如PL/SQL可以通过相应的Package访问队列.C#应该程序可以通过ODP.NET访问队列.Java应用程序则可以通过OJMS访问队列.AQ内部是通过数据库表实现的(即消息实际上是存储在数据库表中). 高级队列的应用范围非常广泛. 除了提供消息在oracle数据库和应用程序以及用户之间传送的功能之外,利用oracle Net Services消息还可以在oracle数据库的客户端和服务端之间或

Oracle高级复制

文章摘要: Oracle作为数据库平台,并且有的项目使用到了Oracle的数据库复制技术,其中也遇到了一些问题,因此在这里,我对Oracle的复制技术谈一下我个人的理解,希望能够对采用Oracle数据库的项目组有所帮助.其中在文中使用到的SQL脚本都是经过检验可以运行的.          -------------------------------------------------------------------------------- 正文:     Oracle高级复制 在开始之

Java8初体验(二)Stream语法详解

感谢同事[天锦]的投稿.投稿请联系 tengfei@ifeve.com 上篇文章Java8初体验(一)lambda表达式语法比较详细的介绍了lambda表达式的方方面面,细心的读者会发现那篇文章的例子中有很多Stream的例子.这些Stream的例子可能让你产生疑惑,本文将会详细讲解Stream的使用方法(不会涉及Stream的原理,因为这个系列的文章还是一个快速学习如何使用的). 1. Stream初体验 我们先来看看Java里面是怎么定义Stream的: A sequence of elem

Java8初体验(二)Stream语法详解---符合人的思维模式,数据源--》stream-->干什么事(具体怎么做,就交给Stream)--》聚合

感谢同事[天锦]的投稿.投稿请联系 tengfei@ifeve.com上篇文章Java8初体验(一)lambda表达式语法比较详细的介绍了lambda表达式的方方面面,细心的读者会发现那篇文章的例子中有很多Stream的例子.这些Stream的例子可能让你产生疑惑,本文将会详细讲解Stream的使用方法(不会涉及Stream的原理,因为这个系列的文章还是一个快速学习如何使用的). 1. Stream初体验 我们先来看看Java里面是怎么定义Stream的: A sequence of eleme

PostgreSQL 数据库初体验

  10月15日,由山东华鲁科技咨询顾问高强老师在"DBA+济南群"进行了一次关于PostgreSQL数据库初体验的线上主题分享.小编特别整理出其中精华内容,供大家学习交流.   嘉宾简介    高强,"DBA+济南群"联合发起人.现就职于山东华鲁科技发展股份有限公司.擅长Oracle.AIX.Linux.PostgreSQL和DB2等产品的实施.运维和故障处理.曾是一名存储工程师,负责实施存储.双机和备份等产品,在接触到数据库产品后,一发不可收拾的投入了DBA的浩

一名UX设计师的VR设计初体验

  本文是某VR团队设计总监在这个新领域当中进行设计初体验时所得到的一些经验分享.相信如今有很多设计师一方面不具备相关的经验,一方面又希望进入VR领域去扩展技能.开拓视野.所以希望本文能够为各位带来一些指引与帮助. 恩,这次仍是VR探索,从设计师职能出发的实战经验漫谈;对比之前的几篇,慢慢可以发现如今的设计先行者们所汇总的东西当中会有一些重要的交集.在尚未实际进入领域之前,通过识别这些交集,我们或许也可以摸到一些关键的东西了.我个人目前还没有能力去做任何偏技术的文章,例如3D方面;在当前阶段,对

wxWidgets初学者导引(3)——wxWidgets应用程序初体验

wxWidgets初学者导引全目录   PDF版及附件下载 1 前言2 下载.安装wxWidgets3 wxWidgets应用程序初体验4 wxWidgets学习资料及利用方法指导5 用wxSmith进行可视化设计附:学习材料清单 3 wxWidgets应用程序初体验 本文中所有的体验,在Code::Blocks中进行. 为了在Code::Blocks中编译运行C++写的wxWidgets程序,需要再做些设置. 首先,需要在环境变量里添加一个wxWidgets根目录环境变量.设置方法类似于2.3

屌丝就爱尝鲜头——java8初体验

Java8已经推出,让我们看看他的魅力.让我们看看他改变较大的部分. 一.java8概述 Java8是由Oracle(甲骨文)公司与2014年3月27日正式推出的.Java8同时推出有3套语言系统,分别是Java SE8.Java SE Emebbled 8.Java ME8. Java SE8较以往的系统增强的功能有: ①增强了对集合式操作语言--lambda表达式的支持,"Lambda 表达式"(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演

《张成功项目管理记(第2版)》一第二章 项目管理之初体验

第二章 项目管理之初体验 张成功项目管理记(第2版) 首次与IT项目管理知识体系亲密接触 下午一上班,张成功就迫不及待地敲开了资深项目经理李全才办公室的门.还没等张成功开口,李全才就笑着说:"我听公司领导说,你被委任为国内某省全省大集中电子政务行政办公系统建设项目的项目经理,恭喜你啊.我知道,你今天来找我,一定是想咨询如何管理这个项目,对吧?" 张成功点了点头,李全才示意张成功坐在他办公桌前的座椅上. 令张成功万万没有想到的是,只见李全才从抽屉里拿出一本装订略显粗糙的书(张成功定睛一看