java - 在 Oracle jdbc 驱动程序中为透明应用程序故障转移注册回调
问题描述
在我的应用程序中,我通过在创建连接时在数据库字符串 url 中提供两个数据库服务器名称来创建连接。据我了解,如果主数据库发生故障,将建立与辅助数据库的连接(透明)。这是否称为透明应用程序故障转移 (TAF)?
基本上故障转移是在单个连接级别处理的,对吧?
如何注册回调以在发生故障转移时获得通知?
我正在寻找 OracleDataSource 级别或 OracleConnection 级别的特定 API。有人可以提供几行示例代码吗?
DB 版本 12c、jdbc8 和 oracle 瘦驱动程序。
解决方案
有几种方法可以处理故障转移。此外,这取决于您是只想处理计划内维护还是计划外停机。(a) 您可以使用通用连接池 (UCP) 来处理计划内和计划外的中断。查看此白皮书。(b) 如果您想构建自己的逻辑,那么您可以使用simplefan.jar在数据库实例 UP/DOWN 事件发生时获取通知。
如果您正在寻找注册 TAF 回调的 API,请点击此处。请注意,这些仅与 OCI 和 JDBC-OCI 驱动程序一起使用。
oracle.jdbc.OracleConnection --
public void registerTAFCallback(oracle.jdbc.OracleOCIFailover cbk, Object obj)
推荐阅读
- python-3.x - WxPython StaticBitmap 未清除
- javascript - 如何创建一个函数来返回一个分隔 21 个航点的数组
- cmake - 使用 CMake 在另一台计算机上延迟安装下载的软件包
- python - TTk 单选按钮
- python - 将交错的数据拆分为单独的通道的 np.arrays?
- ios - 如何将 UIAlertAction 的标题作为该 VC 的标题发送到另一个 UIViewController
- laravel - Laravel 社交名流回调方法不起作用
- java - 何时使用 Lambda 表达式的 Java 最佳实践
- ios - FCM 通知未收到 iOS
- javascript - 如何使用工具提示将关键字包装在 html 代码中