在我的应用程序中,我通过在创建连接时在db string url中提供两个DB服务器名称来创建连接。根据我的理解,如果主数据库发生故障,将建立与辅助数据库的连接(透明地)。这称为透明应用程序故障转移(TAF)?
基本上在单个连接级别处理故障转移,对吧?
如何在发生故障转移时注册回调以获得通知?
我正在寻找OracleDataSource级别或OracleConnection级别的特定API。有人可以提供几行示例代码吗?
DB版本12c,jdbc8和oracle瘦驱动程序。
有两种方法可以处理故障转移。此外,这取决于您是否只想处理计划内维护或意外中断。 (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)