Weblogic Datasource


Datasource


Weblogicは、Datasourceを介してインスタンスをDBと通信させる.このとき、Weblogicには3つのデータソースが存在します.
  • Generic Datasource
    最も基本的なデータ・ソース.JNDIで検索や接続プール管理機能などを実行します.
  • Multi Datasource
    データ・ソース・グループの抽象化.JNDIでn個のデータソースを問い合わせることができます.
  • Grid Datasource
    RACデータベースとWeblogicサーバの連動を提供します.ONSベースでRACの状態変化に能動的に対応できる.
  • テストの概要


    サーバ構成



    1つのWeb論理サーバは、データ・ソースを介して2つの中和RACデータベースにバインドされます.

    キャビネットの設定

  • Generic DS & ScanIP
  • Generic DS & VIP
  • Multi DS & VIP
  • テストケース

  • ノードに負荷がある場合、テスト接続プールの作成
  • RACノード2の負荷が増加すると、Weblogicは
  • を開始する.
  • RACノード2は負荷
  • を終了する.
  • Weblogic起動後、RACノードのシャットダウン/再起動をテスト
  • Weblogic起動後、RACノード1は
  • を終了する
  • RACノード1機動
  • 確認命令


    DBセッションの確認
    select inst_id, sid, serial#, username, status, machine,
    program, last_call_et 
    from gv$session
    where username='SYSTEM' and MACHINE='waslan'
    order by 1,6;
    Weblogic TCPの検証
    netstat -po|grep node|grep [PID]|sort -k5|nl
    JMeter過負荷
    exec DBMS_SESSION.sleep(600);

    テスト


    Generic DS & SCAN IP (TEST 01)


    RAC node 2過負荷後にWeblogicを起動

    Node 1:35、node 2:5
    Oracle Database Scanは、リソースに基づいて自動的にロード・バランシングを行います.したがって,WAS起動時にNode 1を介してより多くの接続プールを見ることができる.
    リファレンス
    このときscanが負荷バランスをとる基準はOSのリソースではなく>DBの状態である.stressコマンドでDBではなくオペレーティングシステム自体に負荷を割り当てると、異常はなく20個分散しますが、longqueryで負荷をDBに割り当てると、上記の結果が表示されます.
    RAC node 2負荷をオフにする

    Node 1:35、node 2:5
    Node 2のクエリーは終了しましたが、正常ですが、接続プールの数は変わりません.この現象を解決するためにWASを再起動する必要がある.

    Generic DS & SCAN IP (TEST 02)


    Weblogicの起動後、RAC node 1を終了

    Node 1:0、node 2:40
    node 1をダウンロードすると、node 2接続のみが作成されます.
    RAC node 1起動

    Node 1:0、node 2:40
    node 1が起動しましたが、node 1で接続は作成されませんでした.
    この場合、接続プールを正常に割り当てるには、Weblogicを再起動する必要があります.

    Generic DS & VIP (TEST 01)


    RAC node 2過負荷後にWeblogicを起動

    Node 1:13、node 2:27

    Node 1:23、node 2:17

    Node 1:21、node 2:19
    3回のテストの結果、node 2に負荷がかかってもnode 1により少ないセッションが作成され、connectionpoolがランダムに生成されることが分かった.

    Generic DS & VIP (TEST 02)


    Weblogic起動後RAC node 1を終了

    Node 1:0、node 2:40
    RAC node 2は40個の接続プールを作成した.
    RAC node 1起動

    Node 1:0、node 2:40
    RAC node 1は正常に起動したが、接続プールに変化はなかった.接続プールを再分散するには、WebLogicを再起動する必要があります.

    Multi DS & VIP (TEST 01)


    RAC node 2過負荷後にWeblogicを起動

    Node 1:20、node 2:20
    MultiDSは基本的にn個のGeneric DSを用いてグループ化される.したがって、Max Capacity(最大接続プールサイズ)を20に設定した2つのGeneric DSを1つのMultiDSに組み合わせ、RACノードごとに20個、合計40個の接続プールとする.
    RAC node 2負荷をオフにする

    Node 1:20、node 2:20
    負荷を解除しても、既存の接続状態で変化は見られません.

    Multi DS & VIP (TEST 02)


    Weblogicの起動後、RAC node 1を終了

    Node 1:0、node 2:20
    RAC node 1起動

    Node 1:20、node 2:20
    node 1を起動すると、通常はnode 1の接続プールが正常に20個生成されます.

    n/a.結論