https://blogs.oracle.com/newgendbaccess/entry/does_ords_support_rac_fast
手短に言うと、ORDS2.0.x、3.0.xの両方でYesですが、ちょっと詳しく説明します。
ORDSは、UCPをサポートするすべてのApplication Server環境(WebLogic Server、Tomcat、GlassFishなど)でUCP(Universal Connection Pool)とともに動作します。UCPはFast Connection Failover (FCF) をサポートします。UCPを有効にする方法を知っておく必要があります(現在のところ、ドキュメントには記載されていません)。
FCFはFAN (Fast Application Notification) イベントを待機、応答して、次の2個のシナリオに対処します。
- 計画外停止
RACがインスタンス障害を検知すると、RACはFAN Downイベントを生成し、そのイベントをFCFが拾います。その後、FCFは障害が発生したインスタンスへのすべての接続を終了し、すべての将来のリクエストを生存しているRACインスタンスに向けます。 - 計画停止(DBAがRACインスタンスをメンテナンス実施などの理由で停止する場合など)
インスタンスのシャットダウン時にFAN Planned Downイベントを生成し、FCFがそのイベントを拾います。その後、FCFがすべての新規リクエストを別のRACインスタンスに向け、「排出(drain)」します。つまり、インスタンスをシャットダウンしつつ、現在アクティブなトランザクションを完了させます(非常に長期間のトランザクションの場合、強制終了が必要になることがありますので、常にgraceful shutdownになるとは限りません)。
フェールオーバーのような特定のFCFの機能を有効化したい場合、負荷分散のようなその他のFCF機能が必要な場合、構成ファイルを少々編集し、カスタム接続エントリを追加する必要があります。<entry key="jdbc.enableONS">true</entry> <entry key="jdbc.ONSConfig">nodes=racnode1:4200,racnode2:4200\nwalletfile=/oracle11/onswalletfile</entty>
ORDSを実行している場合には、再起動が必要です。<entry key="db.connectionType">customurl</entry> <entry key="db.customURL">jdbc.oracle.thin:@(DESCRIPTION=(FAILOVER=ON)(ADDRESS_LIST=(LOAD_BALANCE=ON) (ADDRESS=(PROTOCOL=TCP)(HOST=prod_scan.example.com)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ISPRD)))</entry>
UCPやRAC FCFに関する詳細や背景は以下のドキュメントをご覧ください。
Oracle® Universal Connection Pool for JDBC開発者ガイド 12cリリース1 (12.1)Information on the ORDSの構成ファイルに関する情報は以下のドキュメントをご覧ください。
Oracle RAC機能の使用方法
http://docs.oracle.com/cd/E57425_01/121/JJUCP/rac.htm#CHDCDFAC
Oracle® Universal Connection Pool for JDBC Developer's Guide 12c Release 1 (12.1)
Using Oracle RAC Features
http://docs.oracle.com/database/121/JJUCP/rac.htm#JJUCP8197
REST Data Services Installation, Configuration, and Development Guide
About the Oracle REST Data Services Configuration Files
http://docs.oracle.com/cd/E56351_01/doc.30/e56293/config_file.htm#BABIBHAJ
0 件のコメント:
コメントを投稿