在Oracle jdbc驱动程序中注册透明应用程序故障转移的回调

问题描述 投票:0回答:1

在我的应用程序中,我通过在创建连接时在db string url中提供两个DB服务器名称来创建连接。根据我的理解,如果主数据库发生故障,将建立与辅助数据库的连接(透明地)。这称为透明应用程序故障转移(TAF)?

基本上在单个连接级别处理故障转移,对吧?

如何在发生故障转移时注册回调以获得通知?

我正在寻找OracleDataSource级别或OracleConnection级别的特定API。有人可以提供几行示例代码吗?

DB版本12c,jdbc8和oracle瘦驱动程序。

java oracle jdbc oracle12c ojdbc
1个回答
-1
投票

有两种方法可以处理故障转移。此外,这取决于您是否只想处理计划内维护或意外中断。 (a)您可以使用通用连接池(UCP)来处理计划内和计划外中断。结帐这个whitepaper。 (b)如果你想构建自己的逻辑,那么你可以使用simplefan.jar在数据库实例UP / DOWN事件发生时收到通知。

如果您正在寻找注册TAF回调的API,请点击此处。请注意,这些仅与OCI和JDBC-OCI驱动程序一起使用。

oracle.jdbc.OracleConnection --
    public void registerTAFCallback(oracle.jdbc.OracleOCIFailover cbk, Object obj)
© www.soinside.com 2019 - 2024. All rights reserved.