Autonomous Databaseでのアプリケーション・コンティニュイティについて
アプリケーション・コンティニュイティは、停止後、影響を受けるデータベース・セッションの進行中の作業をリカバリすることで、エンド・ユーザーとアプリケーションから停止をマスクします。アプリケーション・コンティニュイティはこのリカバリをアプリケーションの下で実行するため、停止がアプリケーションでは実行のわずかな遅れのように見えます。
アプリケーションの継続的可用性を実現するのは、データベースの計画的メンテナンス、計画外停止および負荷のリバランスがアプリケーションからわらないときです。アプリケーション・コーディングのベスト・プラクティス、アプリケーション継続性構成およびAutonomous Databaseを組み合せることで、アプリケーションを継続的に使用できるようになります。
アプリケーションから計画メンテナンス・アクティビティを非表示にするための最良のアプローチは、アプリケーションを透過的にドレインまたはフェイルオーバーすることです。Oracle’s connection pools and mid-tiers, including the WebLogic Server, Oracle Universal Connection Pool (UCP), OCI session pool and ODP.NET Unmanaged Provider are Fast Application Notification (FAN ) aware and therefore are notified when maintenance is underway on Autonomous Database to allow graceful draining of work before maintenance.アプリケーション・コンティニュイティは、計画メンテナンス中に実行され、事前定義されたドレイン間隔(Autonomous Databaseでは5分)でドレインされないセッションをフェイルオーバーします。
コンポーネントや通信の障害によって引き起こされる計画外停止を認識させないようにするために、Oracleは次のものを提供しています:
-
通知。FANは、停止を認識させないようにするための最初のステップです。FANにより、停止が発生した際には、クライアントは通知を受けて、現在のネットワーク待機から抜け出すことができます。このため、アプリケーションが長時間ネットワークの待機で停止することがなくなります。Autonomous Databaseの場合、FANはドライバおよびAutonomous Databaseクラウド接続マネージャによって処理されます。
FANの通知によって、自動的にアイドル状態の接続がクローズされ、新しい接続が新しいサービスの場所でオープンされます。さらに、間もなくシャットダウンされるサービスの場所で、アクティブな作業を完了できる構成可能な時間が確保されます。IBM WebSphereなどの大手サードパーティのJDBC中間層は、UCPを使用して構成した場合、同様の動作を実現できます。UCPを使用できないJDBCベース・アプリケーションに対しては、Oracleドライバを使用したソリューションと接続テストが用意されています。Autonomous Database FANでは、計画メンテナンスが帯域内で送信されます。
-
リカバリ。クライアントに通知されると、透過的アプリケーション・コンティニュイティ(TAC)またはアプリケーション・コンティニュイティ(AC)を使用したフェイルオーバー処理によってAutonomous Databaseへの接続が再確立され、可能な場合は実行中、コミットされていない作業がリプレイされます。進行中の作業をリプレイすることで、アプリケーションは通常、障害の発生を認識せずに実行を続行できます。
アプリケーションに応じて、2つの構成のいずれかでAutonomous Databaseでアプリケーション・コンティニュイティを有効にします:
-
アプリケーション・コンティニュイティ(AC)
アプリケーション・コンティニュイティは、シンJavaベースのアプリケーション、およびNode.jsやPythonなどのオープン・ソース・ドライバをサポートするOracle Database Oracle Call InterfaceおよびODP.NETベースのアプリケーションの停止を非表示にします。アプリケーション・コンティニュイティは、セッション状態およびトランザクション状態を含む既知のポイントからセッションをリカバリすることによって、セッションを再作成します。アプリケーション・コンティニュイティは、処理中のすべての作業を再作成します。フェイルオーバーが発生した場合、アプリケーションは実行時間がわずかに遅延しますがそのまま続行されます。
-
透過的アプリケーション・コンティニュイティ(TAC)
透過的アプリケーション・コンティニュイティ(TAC)は、セッションとトランザクションの状態の透過的な追跡と記録を行うため、リカバリ可能な停止後にデータベース・セッションを回復できます。アプリケーションの知識やアプリケーション・コードの変更を必要とせずにこれが実行され、透過的アプリケーション・コンティニュイティがアプリケーションで有効になります。アプリケーションの透過性とフェイルオーバーは、アプリケーションがユーザー・コールを発行するときのセッション状態の使用状況を取得して分類する状態追跡情報を使用することによって実現されます。
アプリケーション・コンティニュイティの詳細は、「アプリケーション・コンティニュイティの概要」を参照してください。
デフォルトでは、Autonomous Databaseではアプリケーション・コンティニュイティは無効になっています。