- 浏览: 115103 次
- 性别:
- 来自: 北京
文章分类
最新评论
oracle dcn(data change notification)
当数据库中数据改变时发出通知,可以在sql级pl_sql中设置监听
package test;
import java.sql.*;
import java.util.Properties;
import oracle.jdbc.*;
import oracle.jdbc.dcn.*;
public class DBChangeNotification {
static final String USERNAME = "jc608031";
static final String PASSWORD = "jc608031";
static String URL = "jdbc:oracle:thin:@192.168.1.246:1521:jcs";
public static void main(String[] argv) {
DBChangeNotification demo = new DBChangeNotification();
try {
demo.run();
} catch (SQLException mainSQLException) {
mainSQLException.printStackTrace();
}
}
void run() throws SQLException {
OracleConnection conn = connect();
// first step: create a registration on the server:
Properties prop = new Properties();
// if connected through the VPN, you need to provide the TCP address of
// the client.
// For example:
// prop.setProperty(OracleConnection.NTF_LOCAL_HOST,"14.14.13.12");
// Ask the server to send the ROWIDs as part of the DCN events (small
// performance
// cost):
// prop.setProperty(OracleConnection.DCN_NOTIFY_ROWIDS, "true");
//
// Set the DCN_QUERY_CHANGE_NOTIFICATION option for query registration
// with finer granularity.
prop.setProperty(OracleConnection.DCN_NOTIFY_ROWIDS, "true");
prop.setProperty(OracleConnection.DCN_IGNORE_DELETEOP, "true");
// prop.setProperty(OracleConnection.NTF_TIMEOUT, "3600");
// The following operation does a roundtrip to the database to create a
// new
// registration for DCN. It sends the client address (ip address and
// port) that
// the server will use to connect to the client and send the
// notification
// when necessary. Note that for now the registration is empty (we
// haven't registered
// any table). This also opens a new thread in the drivers. This thread
// will be
// dedicated to DCN (accept connection to the server and dispatch the
// events to
// the listeners).
DatabaseChangeRegistration dcr = conn
.registerDatabaseChangeNotification(prop);
try {
// add the listenerr:
dcr.addListener(new DatabaseChangeListener() {
@Override
public void onDatabaseChangeNotification(DatabaseChangeEvent e) {
// TODO Auto-generated method stub
DatabaseChangeEvent.EventType etype = e.getEventType();
System.out.println("receive " + etype + " event, RegId="
+ e.getRegId());
}
});
conn.setAutoCommit(true);
String sql = "update mytest set name=? where id = 'w'";
PreparedStatement upPstmt = conn.prepareStatement(sql);
upPstmt.setString(1, "aa");
upPstmt.executeUpdate();
} catch (SQLException ex) {
// if an exception occurs, we need to close the registration in
// order
// to interrupt the thread otherwise it will be hanging around.
if (conn != null)
conn.unregisterDatabaseChangeNotification(dcr);
throw ex;
} finally {
try {
// Note that we close the connection!
conn.close();
} catch (Exception innerex) {
innerex.printStackTrace();
}
}
}
/**
* Creates a connection the database.
*/
OracleConnection connect() throws SQLException {
OracleDriver dr = new OracleDriver();
Properties prop = new Properties();
prop.setProperty("user", DBChangeNotification.USERNAME);
prop.setProperty("password", DBChangeNotification.PASSWORD);
Connection conn = dr.connect(DBChangeNotification.URL, prop);
OracleConnection oconn = (OracleConnection) conn
.unwrap(OracleConnection.class);
return oconn;
}
}
发表评论
-
Google公开Megastore论文——解决NoSQL、SQL融合难题
2011-03-02 14:44 659实际上,作为一个建 ... -
开源数据库Sharding技术
2011-03-02 16:14 704内容摘要:Sharding 不是一个某个特定数据库软件附 ... -
Java 开发 2.0: 使用 Hibernate Shards 进行切分
2011-03-02 16:26 635当关系数据库试图在 ... -
可扩展的分布式数据库架构
2011-03-03 14:44 677本文发表在《程序员 ... -
OLTP系统与DSS系统对比
2011-03-03 15:35 642在进行数据库系统的设计时,一个不可忽视的问题是弄清你所 ... -
Oracle高级复制机制
2011-03-10 15:48 654Oracle高级复制即可支 ... -
Oracle高级复制的同步复制的配置步骤说明
2011-03-10 15:50 828以下的文章主要讲述的是Oracle高级复制的同步复制,如 ... -
linux oracle中文乱码问题解决方法
2011-04-11 15:18 744connect system/oracle9i ... -
ubuntu下安装ocfs2
2011-07-12 14:20 966简介 一个集群文件系统能使运行在集群中所有节点并发的通过 ... -
asm下载地址
2011-07-12 16:50 858asm rpm包下载地址http://www.oracle.c ... -
oracle重要初始参数
2011-09-28 17:15 866OPEN_CURSORS session可以打开的游标最大数, ... -
SQLJ是什么?优点?
2011-10-11 09:56 909SQLJ是一种允许把静态的SQL语句以文本形式嵌入Java程序 ... -
共享池的调整与优化(Shared pool Tuning)
2011-10-11 10:53 728共享池(Shared pool)是SGA中最关键的内存片段,共 ... -
使用DBMS_SHARED_POOL包将PL/SQL大对象保存到Shared Pool
2011-10-11 16:32 722当系统在加载PL/SQL大对象时,有可能遭遇由于SharedP ... -
oracle sga相关
2011-10-12 17:08 834oracle主要影响性能的内存: Shared ... -
oracle内存调整相关
2011-10-14 15:52 885db_cache_size与sga_target关系 db_ ... -
oracle索引分类
2011-10-17 13:31 845B-TREE INDEX,B树索引:在创建索引时他是 ... -
修改oracle redo log的大小
2011-10-17 15:53 10931.查看现在的REDO GRO ... -
本地管理表空间
2011-10-18 13:29 753本地管理表空间的好处: 1:快速,并发空间操作 ... -
Oracle表空间命令
2011-10-19 16:55 791创建立表空间 CREATE TABLESPACE ...
相关推荐
【Oracle DCN缓存一致性技术】Oracle 数据库更改通知(DCN)是一种高效的数据一致性解决方案,尤其适用于J2EE多层架构的应用程序。在这样的环境中,数据缓存能够显著提高系统的响应速度,但如何保证缓存与数据库之间...
Oracle Data Change Notification(DCN)是Oracle数据库提供的一项高级特性,自Oracle 10g Release 2(10.2版本)开始引入。这个功能允许应用程序高效地跟踪和响应数据库中的数据变化,而无需频繁地执行查询来检查...
Oracle数据库的优化是一个复杂而关键的任务,涉及到多个层面,包括其内部机制、内存区的配置以及数据文件和进程管理。本文将深入探讨Oracle的核心组件,给出优化建议。 首先,Oracle数据库由内存、文件和进程三大...
9. **solaris** - Solaris是Sun Microsystems开发的Unix操作系统,后来被Oracle公司收购。 10. **win95** - 另一个指向Windows 95的文件,可能包含了不同版本或补丁的驱动。 综上所述,这个压缩包包含了一系列针对...
Python验证Oracle数据变动通知(DCN)是Oracle数据库提供的一种机制,用于实时监控数据库中的数据变化。这个功能在处理大量实时数据更新的应用场景中非常有用,例如金融交易系统、数据分析平台等。通过Python与Oracle...
Python验证Oracle数据变动通知(DCN)是Oracle数据库提供的一种机制,用于实时监控数据库中的数据变化。DCN(Data Change Notifications)允许应用程序订阅特定的数据库查询,并在这些查询所涉及的数据发生变化时接收...
4. `oracle.jdbc.dcn` 包:提供了数据变化通知(Data Change Notification,DCN)功能,使得应用程序可以订阅数据库的更改事件。 5. `oracle.jdbc.OracleCallableStatement` 和 `oracle.jdbc....
此外,还有`oracle.jdbc.dcn.DatabaseChangeEvent`和`oracle.jdbc.dcn.DatabaseChangeRegistration`等类,用于支持数据库变化通知(Database Change Notification, DCN),这是一种高效的方式,让应用能在数据库发生...
2. **远程异地备份**:省中心配置ADIC Scalar100磁带库,通过DCN网络接收各地市的历史账务数据备份。首次备份采用磁带上传,后续仅备份新增数据,保持多个版本,存储3年。 3. **数据导入和查询**:各地市的Oracle...
文档内容提到了一些关键的组件和技术概念,比如HPEDCN Neutron插件概述、支持的功能、用户群体、关于DCN OpenStack Nuage插件、子网工作方式、VSD(Virtualized Services Directory)管理子网概念、OpenStack和DCN...
- **兼容性**:系统能够与DCBA-3000W系列接入管理器、DCRS6608、DCRS6610系列路由交换机以及DCN全系列交换机无缝对接,适用于各类企业、高校及运营商环境。 - **用户自服务**:通过集成的Web自服务子系统,用户可以...
考虑到成本、可靠性和可维护性等因素,推荐使用ADSL专线或DCN网络。 #### 机房动力环境监控解决方案 - **监控模块设备**: - **JF4000采集器**:适用于小型机房环境,提供基本的数据采集功能。 - **JF4000Pro...