• 网络学院
  • 新手学堂
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
Oracle10gRelease2新功能之变化通知
广告位
  站点:
  • 首 页
  • 最新更新
  • 软件分类
  • 国内软件
  • 国外软件
  • 汉化软件
  • 源码下载
  • 字体下载
Oracle10gRelease2新功能之变化通知
软件发布 Oracle10gRelease2新功能之变化通知
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回首页 | 文章首页 | 认证考试 | Oracle认证 | Oracle动态 | Oracle10gRelease2新功能之变化通知

Oracle10gRelease2新功能之变化通知

 

添加时间: 2008-4-30 21:50:58  作者: Oracle动态  阅读次数:0   来源: http://www.d9soft.com

 

 

       

    引言

  在.NET应用程序中,我们有很多方法实现对Oracle数据库的访问。 但是从功能和性能上来分析,Oracle Data Provider for .NET(ODP.NET)无疑是我们最好的选择,它是Oracle专门为基于.NET的应用程序设计的一套接口,它的访问速度要远远快于其它方法。

  本文将介绍Oracle Database的新功能之一:Change Notification。为了能更好的说明这个新功能,我将用例程的方式来介绍它的定义和使用方法。

  Database Change Notification的产生背景

  在现在的程序开发过程中,我们经常考虑的一个提高性能的方法就是用data cache。Data cache 避免了我们每次需要数据的时候都去访问数据库,这样节省了大量的时间。但是这样就出现了一个问题,当我们用data cache的时候,如果在数据库中的数据发生了改变,那么我们data cache 中的数据就和数据库的数据不一致了,这样将会导致错误。为了解决这个问题,我们一般常用两种方法。

  1. 让用户手动的更新data cache的内容,例如提供一个更新按钮。

  2. 让我们的程序间隔一定的时间自动去更新data cache的内容。

  不难看出,这两种方法都有相当的局限性。

  第一种方法用户必须记住经常的去更新数据,如果数据库中的数据改了但是用户并没有去更新数据,这样将导致错误。第二种方法的局限性是我们没有办法设置一个恰好的时间间隔使数据库数据变化的时候保证data cache的数据也发生变化。

  Database Change Notification就是为了解决这个难题。

  Database Change Notification 的基本概念

  Database Change Notification的作用就是当数据库中的数据发生变化的时候,自动发出一个通知。

  用Database Change Notification有三个步骤:

  1. 注册: 指定数据库要监听的查询。ODP.NET自动注册基于这个查询的监听事件。数据库可以监听DML(Data Manipulation Language)事件,DDL(Data Definition Language)事件,和global 事件(例如关闭数据库)。

  2. 通知:一旦数据库中的数据发生变化,数据库将自动发出通知,我们要在我们的程序中定义事件处理操作。

  3. 响应:在我们的程序中,一旦收到通知,我们一般情况下会自动更新data cache,当然我们可以通知用户数据发生改变,由他来决定是否进行更新。

  举例:

  在ODP.NET中使用Database Change Notification很简单,请看下面的例程。这个例程用HR数据库用户。

static void Main(string[] args)
{
 string sql = "select first_name, last_name, salary from employees where employee_id = 149";
 string constr = "User Id=hr;Password=hr;Data Source=oramag;Pooling=false";
 OracleConnection con = new OracleConnection(constr);
 con.Open();
 OracleCommand cmd = new OracleCommand(sql, con);
 OracleDependency dep = new OracleDependency(cmd);
 dep.OnChange += new OnChangeEventHandler(OnDatabaseNotification);
 cmd.ExecuteNonQuery();

 while (notificationReceived == false)
 {
  Console.WriteLine("Waiting for notification...");
  System.Threading.Thread.Sleep(2000);
 }

 cmd.Dispose();
 con.Dispose();

 Console.WriteLine("Press ENTER to continue...");
 Console.ReadLine();
}

public static void OnDatabaseNotification(object src, OracleNotificationEventArgs args)
{
 Console.WriteLine("Database Change Notification received!");
 DataTable changeDetails = args.Details;
 Console.WriteLine("Resource {0} has changed.", changeDetails.Rows[0]["ResourceName"]);

 notificationReceived = true;
}

  HR一定要有change notification 权限,我们用下面的命令。

grant change notification to hr;

  在你的电脑上安装ODP.NET,添加下面的using statement在你的代码刚开始的地方。

using System.Threading;
using System.Data;
using Oracle.DataAccess.Client;

  现在你就可以运行这段例程了。输出如下:

Waiting for notification...

  这个时候去修改你的数据库,例如用下面的命令,

update employees set salary = salary+10
where employee_id = 149;
commit;

  可以看到有如下的输出,

Database Change Notification received!
Resource HR.EMPLOYEES has changed.

 

 

 

上下文章:

 

上一篇文章: Oracle 课程描述 下一篇文章: Oracle加入Grails开源计划提升Java生产力

相关文章:

  • Oracle10gRelease2新功能之变化通知
  • Oracle9i到10g,空闲等待事件的变化
  • Oracle9i到10g,空闲等待事件的变化
  • 从根本上废除木马功能的绝招
  • 路由器和UNIX主机日志功能配置

 

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

Oracle认证分类导航

  • Oracle动态
  • Oracle指导
  • Oracle题库

本类经典文章推荐

  • 在ORACLE的存储过程中如何做简单的...
  • Oracle下调数据库许可价格以适应多...
  • 想知道OCP证书在加拿大值多少钱吗
  • Oracle全球客户支持副总裁汤姆...
  • Oracle中国前员工述说公司高层内部...
  • Oracle发布免费数据库管理工具Rap...
  • 甲骨文打算收购企业智能软件与中间...
  • Oracle将收购Jboss?相关各方保持...
  • Oracle或将收购Jboss?相关各方保...
  • 甲骨文意外泄漏数据库安全漏洞

Oracle动态阅读排行

  • 专家答疑Oracle热点问题
  • 微软推出免费的真实试验环境
  • Oracle OCP DBA 认证介绍
  • ORACLE考试 1Z0-023:Oracle8i结构...
  • Oracle认证价值
  • OCP认证完全指南[1]
  • ORACLE公司传奇创建史
  • 官方消息:Oracle8i认证即将退休
  • Oracle10g认证最新消息
  • Oracle10g认证考试途径详解

Oracle认证阅读总排行

  • 实例:Oracle导出EXCEL文件
  • Oracle企业管理器(OEM 2.1)使用...
  • 服务器和客户机是怎样连接的
  • 讲述电信禁止路由上网的破解方法
  • 入门基础:连接常见错误及解决方法
  • oracle—如何在PL/SQL中读写操作系...
  • 安装Oracle 9i数据库服务器
  • schema的常用脚本:gettrig.sql
  • 考试大学习教室[oracle问题集(一...
  • 学习Oracle的几点建议(适合初学者...

广告位置

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2007 D9soft.com 第九软件网 版权所有