[WLS, Database] Testing WLS and ONS Configuration

原文はこちら。
https://blogs.oracle.com/WebLogicServer/entry/testing_wls_and_ons_configuration

Introduction

Oracle Notification Service (ONS) はOracle Clusterwareのインストール時にインストール、構成されます。クラスタに参加するすべてのノードは、Oracle Clusterwareインストール中に自動的にONSに登録されます。構成ファイルは各ノードの $ORACLE_HOME/opmn/conf/ons.config にあります。詳細はドキュメントをご覧ください。このエントリではクライアント側に着目します。
Oracle RAC Fast Application Notification (FAN) イベントはOracle Database 11gR2からご利用いただけます。これはWebLogic Server Active GridLinkのデータベースに対する最小要件です。FANイベントはOracle RACを実行するクラスタが送信する通知であり、サブスクライバにクラスタ内の構成が変わったことを知らせることを目的としています。サポート対象のFANイベントはサービスの立ち上げ、サービスの停止、ノードの停止、ロードバランス・アドバイザリ(LBA)です。

fanWatcher Program

WebLogic Serverの実行とは関係なく、ONSの構成をテストすることができます。これはONSクライアントからONSサーバへの接続をテストするもので、RACサービスの構成をテストするものではありません。fanWatcherプログラムの入手、コンパイル、実行に関する詳細は、以下のエントリをご覧ください。
Monitoring FAN Events
https://blogs.oracle.com/WebLogicServer/entry/fanwatcher_sample_program
https://orablogs-jp.blogspot.jp/2016/02/monitoring-fan-events.html
前提として、WebLogic Server 10.3.6以後を使っており、クラスパスを適切に構成しているものとします。テストプログラムを以下のように実行します。
java fanWatcher "nodes=rac1:6200,rac2:6200" database/event/service
Oracle Database 12.1.0.2のクライアントjarファイルを使っている場合、複数のクラスタを用いたより複雑な構成を取り扱うことができます。例えばDataGuardを組み合わせている場合、以下のようなコマンドを使って実行します。
java fanWatcher "nodes.1=site1.rac1:6200,site1.rac2:6200 
nodes.2=site2.rac1:6200,site2.rac2:6200" database/event/service
注意いただきたいのは、新しい行を使って複数のノードリストを分けている、という点です。ONSサーバがSSL通信を使うように構成済みであれば、walletファイルとパスワードを使ってテストすることもできます。
このプログラムを実行すると、時々わずかにLBAの通知が表示されるでしょう。サービスを開始もしくは停止した場合、関連するイベントが表示されるはずです。

Auto ONS

ONSの情報を指定しなくても、自動ONS構成と呼ばれる機能を使って実行することができますが、以下の条件を満たす場合、自動ONS構成を使うことはできません。
  • 11gドライバもしくはOracle Database 11gを使う場合。自動ONS構成はドライバとデータベースサーバ間のプロトコルフローに依存します。この機能は12cで追加されました。
  • 12.1.3以前のWebLogic Serverを使う場合。自動ONS構成はWebLogic Server 12.1.3からサポートされています。
  • SSL通信でOracle walletを使っている場合。walletの構成にあたってはONS情報の構成も必要です。
  • 複雑なONSのトポロジーで実行する場合。一般に、自動ONS構成は必要とするものを理解してくれますが、時として正確に指定しなければならない場合があります。WebLogic Server 12.2.1では、ONS構成の拡張を使ってプロパティノードリストを使って正確なトポロジーを指定することができます。詳細は以下のリンクをご覧下さい。
    Oracle® Fusion Middleware Administering JDBC Data Sources for Oracle WebLogic Server 12c (12.2.1)
    Configure ONS Host and Port
    http://docs.oracle.com/middleware/1221/wls/JDBCA/gridlink_datasources.htm#BABGJBIC
    Oracle® Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの管理 12c (12.2.1)
    ONSホストおよびポートの構成
    http://docs.oracle.com/cd/E72987_01/wls/JDBCA/gridlink_datasources.htm#BABGJBIC
Oracle Database 11gのドライバやDatabaseを使う構成があって、Oracle Database 12cのドライバやDatabaseで実行する場合、自動ONS構成による簡素化を使うのではなく、常にONS構成のみ指定したいと思うかもしれません。上記のfanWatcherのリンクは自動ONS構成を使ってfanWatcherをテストする方法を示しています。

WLS ONS Configuration and Testing

次のステップは、エンドツーエンドのコンフィギュレーションを実行していることを確認します。イベントをAGLデータソースに対してイベントを生成するデータベース・サービスの確認を含みます。このデータソースは対応するサービスのためのイベントを処理します。
サーバ側では、データベース・サービスを実行時接続ロードバランシング(Runtime Connection Load Balancing、以下RCLB)を有効にして構成する必要があります。RCLBは、CLBの目標(GOAL)ではなく、サービスの目標がSERVICE_TIMEもしくはTHROUGHPUTに設定されている場合、当該サービスに対して有効です。サービス作成時にsrvctlを使ってこの設定を実施する方法の詳細はドキュメントをご覧ください。
WebLogic Server側で主要なポイントはURLとONSの構成です。
URLは指定されたこのサービス名を用いて、長い形式を使って構成します。URLはOracle Single Client Access Name (SCAN) アドレスを使うことができます。
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=scanname)(PORT=scanport))(CONNECT_DATA=(SERVICE_NAME=myservice)))
もしくは、LOAD_BALANCE=onを指定して複数の非SCANアドレスを使う場合の例は以下の通りです。
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=host1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=myservice)))
URLの定義は複雑なトピックなので、詳細はドキュメントをご覧ください。
上述の通り、ONSは自動ONSを使って暗黙のうちに、もしくは明示的に構成することができます。トレードオフと制限事項は上記の通りです。明示的なONS情報の形式は以下のドキュメントをご覧ください。
Oracle® Fusion Middleware Administering JDBC Data Sources for Oracle WebLogic Server 12c (12.2.1)
Using Active GridLink Data Sources
http://docs.oracle.com/middleware/1221/wls/JDBCA/gridlink_datasources.htm#BABGJBIC
Oracle® Fusion Middleware Oracle WebLogic Server JDBCデータ・ソースの管理 12c (12.2.1)
Active GridLinkデータ・ソースの使用方法
http://docs.oracle.com/cd/E72987_01/wls/JDBCA/gridlink_datasources.htm#JDBCA373
管理コンソールから明示的なONS構成を使ってデータソースを作成した場合、ONS構成のテストのためのボタンがあります。これを使って、ONSサーバとのシンプルなハンドシェイクのテストを実施します。
当然ながら、WebLogic ServerでのONS構成の実際のテストは、データソースのデプロイ時、つまりサーバ起動時、もしくはデータソースのターゲットを実行中のサーバに指定した場合に初めて実施します。
管理コンソールでは、AGLランタイムのONS監視ページで監視できます。特に自動ONS構成を使っている場合、ONSの構成を確認することができます。

インスタンスのページを見て、LBAイベントで更新対象のアフィニティフラグとインスタンスの重み属性を確認することができます。以下のコマンドなどを使ってサービスを停止した場合、このページで重みとキャパシティが0になっていく様子を見ることができます。
srvctl stop service -db beadev -i beadev2 -s otrade

サーバ・ログ(例えば、servers/myserver/logs/myserver.log)を見ると、次のような停止をトラックしているメッセージがあるはずです。
... <Info> <JDBC> ...  <Data source JDBC Data Source-0 for service otrade received a service down event for instance [beadev2].>
LBAイベントのようにより多くの情報を見たい場合には、以下の例のように、–Dweblogic.debug.DebugJDBCRAC=trueを指定して、JDBCRACデバッギングを有効化することができます。
... <JDBCRAC> ... lbaEventOccurred() event=service=otrade, database=beadev, event=VERSION=1.0 database=beadev service=otrade { {instance=beadev1 percent=50 flag=GOOD aff=FALSE}{instance=beadev2 percent=50 flag=UNKNOWN aff=FALSE} }
この設定により、数多くのデバッグ出力が出てきますので、本番環境での利用はお勧めしません。

0 件のコメント:

コメントを投稿