web-dev-qa-db-ja.com

JDBCでOracle 12c RACデータベースにアクセスして高可用性を確保するには、TAFまたはFCFを使用する必要がありますか?

私が遭遇するケースは、RACアレイ上のデータベースの1つが突然ダウンした場合、トランザクションがロールバックされ、JBossとデータベース間の接続が切断されることです。

私が欲しいのは、JDBC接続を保持し、それらをアレイ上の別のOracleデータベースにリダイレクトすることです。また、トランザクションは保持されますか?

この場合、TAFまたはFCFを使用する必要がありますか?

さらに、TAFの使用が提案されている場合、JBossでシックドライバーを使用する必要があるのは本当ですか?

3
Harold Chan

この場合、TAFまたはFCFを使用する必要がありますか?

TAF- Transparent Application Failoverは、データベースセッションレベルの接続フェイルオーバーメカニズムであり、OCIクライアントに対してのみ機能します。

FCF-高速接続フェイルオーバーは、アプリケーションレベルのフェイルオーバーメカニズムです。これは、暗黙的な接続キャッシュ機能に依存し、暗黙的な接続キャッシュを有効にする必要があります。

FCFはプールされた接続に役立ちますが、TAFは長時間実行されるセッションに非常に役立ちます。

私が欲しいのは、JDBC接続を保持し、それらをアレイ上の別のOracleデータベースにリダイレクトすることです。また、トランザクションは保持されますか?

TAFは、実行中のトランザクション障害でノードがクラッシュしたときにキャッチされた標準SQL SELECTステートメントをフェイルオーバーします。 INSERT、UPDATE、またはDELETEステートメントを含むトランザクションは、TAFではサポートされていません。

さらに、TAFの使用が提案されている場合、JBossでシックドライバーを使用する必要があるのは本当ですか?

はい。

参照:

  • クライアントフェイルオーバーのベストプラクティス-Oracle
  • 7
    JSapkota