`

oracle dcn

 
阅读更多

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;
}
}

分享到:
评论

相关推荐

    基于Oracle DCN的缓存一致性技术.pdf

    【Oracle DCN缓存一致性技术】Oracle 数据库更改通知(DCN)是一种高效的数据一致性解决方案,尤其适用于J2EE多层架构的应用程序。在这样的环境中,数据缓存能够显著提高系统的响应速度,但如何保证缓存与数据库之间...

    oracle data change notification,支持10.2以上的Oracle版本,速度很快,效率高

    Oracle Data Change Notification(DCN)是Oracle数据库提供的一项高级特性,自Oracle 10g Release 2(10.2版本)开始引入。这个功能允许应用程序高效地跟踪和响应数据库中的数据变化,而无需频繁地执行查询来检查...

    oracle机制及内存区的优化建议

    Oracle数据库的优化是一个复杂而关键的任务,涉及到多个层面,包括其内部机制、内存区的配置以及数据文件和进程管理。本文将深入探讨Oracle的核心组件,给出优化建议。 首先,Oracle数据库由内存、文件和进程三大...

    DCN-530TX驱动

    9. **solaris** - Solaris是Sun Microsystems开发的Unix操作系统,后来被Oracle公司收购。 10. **win95** - 另一个指向Windows 95的文件,可能包含了不同版本或补丁的驱动。 综上所述,这个压缩包包含了一系列针对...

    Python验证Orcale数据变动通知(DCN).docx

    Python验证Oracle数据变动通知(DCN)是Oracle数据库提供的一种机制,用于实时监控数据库中的数据变化。这个功能在处理大量实时数据更新的应用场景中非常有用,例如金融交易系统、数据分析平台等。通过Python与Oracle...

    Python验证Orcale数据变动通知(DCN).pdf

    Python验证Oracle数据变动通知(DCN)是Oracle数据库提供的一种机制,用于实时监控数据库中的数据变化。DCN(Data Change Notifications)允许应用程序订阅特定的数据库查询,并在这些查询所涉及的数据发生变化时接收...

    ojdbc6-11.2.0.1.0.zip

    4. `oracle.jdbc.dcn` 包:提供了数据变化通知(Data Change Notification,DCN)功能,使得应用程序可以订阅数据库的更改事件。 5. `oracle.jdbc.OracleCallableStatement` 和 `oracle.jdbc....

    ojdbc6.jar

    此外,还有`oracle.jdbc.dcn.DatabaseChangeEvent`和`oracle.jdbc.dcn.DatabaseChangeRegistration`等类,用于支持数据库变化通知(Database Change Notification, DCN),这是一种高效的方式,让应用能在数据库发生...

    云南电信polystor容灾备份成功案例

    2. **远程异地备份**:省中心配置ADIC Scalar100磁带库,通过DCN网络接收各地市的历史账务数据备份。首次备份采用磁带上传,后续仅备份新增数据,保持多个版本,存储3年。 3. **数据导入和查询**:各地市的Oracle...

    HPE Networking Openstack Ocata Neutron ML2

    文档内容提到了一些关键的组件和技术概念,比如HPEDCN Neutron插件概述、支持的功能、用户群体、关于DCN OpenStack Nuage插件、子网工作方式、VSD(Virtualized Services Directory)管理子网概念、OpenStack和DCN...

    DCBI-3000认证计费系统用户手册Version3.0(EN).pdf

    - **兼容性**:系统能够与DCBA-3000W系列接入管理器、DCRS6608、DCRS6610系列路由交换机以及DCN全系列交换机无缝对接,适用于各类企业、高校及运营商环境。 - **用户自服务**:通过集成的Web自服务子系统,用户可以...

    机房动力环境监控及门禁系统最佳方案.doc

    考虑到成本、可靠性和可维护性等因素,推荐使用ADSL专线或DCN网络。 #### 机房动力环境监控解决方案 - **监控模块设备**: - **JF4000采集器**:适用于小型机房环境,提供基本的数据采集功能。 - **JF4000Pro...

Global site tag (gtag.js) - Google Analytics