ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Scripting Tool ガイド
11g リリース 1 (10.3.1)
B55524-01
 

目次
目次

戻る
戻る
 
次へ
次へ
 

8 実行時情報の取得

WLST では、WebLogic Server インスタンスが実行時の状態を記述するために生成する情報を取得できます。以下の節では、WLST を使用した実行時情報の取得方法について説明します。

実行時情報へのアクセス : 主な手順

管理サーバは、ドメインに含まれる任意のサーバ上の任意の MBean へのアクセスを提供する、ドメインの実行時階層をホストします。管理サーバがドメインに対して実行されていない場合、WLST では個々の管理対象サーバに接続して実行時データを取得できます。

ドメインの実行時情報にアクセスする主な手順は、次のとおりです。

  1. WLST を呼び出し、実行中の管理サーバのインスタンスに接続します。「WLST の呼び出し」を参照してください。

  2. domainRuntime コマンドを入力して、ドメインの実行時 MBean 階層に移動します。

    wls:/mydomain/serverConfig>domainRuntime() 
    

    domainRuntime コマンドにより WLST は、ドメイン全体の実行時管理オブジェクトのルート DomainRuntimeMBean に置かれます。

  3. ServerRuntimes に移動してから、モニタするサーバ インスタンスに移動します。

    wls:/mydomain/domainRuntime>cd('ServerRuntimes/myserver') 
    
  4. サーバ インスタンスで、実行時 MBean に移動し、照会を行います。

    wls:/mydomain/domainRuntime/ServerRuntimes/myserver>cd('JVMRuntime/myserver')>
    wls:/mydomain/domainRuntime/ServerRuntimes/myserver/JVMRuntime/myserver>ls()
    -r--   AllProcessorsAverageLoad             0.0
    -r--   Concurrent                           true
    -r--   FreeHeap                             15050064
    -r--   FreePhysicalMemory                   900702208
    -r--   GCHandlesCompaction                  true
    -r--   GcAlgorithm                          Dynamic GC currently running
    strategy: Nursery, parallel mark, parallel sweep
    -r--   Generational                         true
    -r--   HeapFreeCurrent                      14742864
    -r--   HeapFreePercent                      5
    -r--   HeapSizeCurrent                      268435456
    -r--   HeapSizeMax                          268435456
    -r--   Incremental                          false
    -r--   JVMDescription                       Oracle JRockit Java Virtual Machine
    -r--   JavaVMVendor                         BEA Systems, Inc.
    -r--   JavaVendor                           BEA Systems, Inc.
    -r--   JavaVersion                          1.5.0
    ...
    

以下の節では、WebLogic Server サーバ インスタンスおよびドメイン リソースに関する実行時情報を取得するためのサンプル スクリプトを示します。

サーバ状態をモニタするスクリプト

コード リスト 8-1 の WLST オンライン スクリプトは、ドメインの実行時階層を移動し、管理対象サーバの状態を 5 秒間隔でチェックします。このスクリプトは、サーバの状態が RUNNING から他の状態に移行した場合に、サーバを再起動します。ここでは、WLST がドメインの管理サーバに接続されていることが前提となります。

このスクリプトを実行する方法については、「WLST の呼び出し」を参照してください。

コード リスト 8-1 サーバ状態のモニタ

# このスクリプトを実行するには、ノード マネージャが実行中である必要がある。
import thread
import time
def checkHealth(serverName):
  while 1:
    slBean = getSLCRT(serverName)
    status = slBean.getState()
    print 'Status of Managed Server is '+status
    if status != "RUNNING":
      print 'Starting server '+serverName
      start(serverName, block="true")
    time.sleep(5) 
def getSLCRT(svrName):
    domainRuntime()
    slrBean = cmo.lookupServerLifecycleRuntime(svrName)
    return slcBean

JVM をモニタするスクリプト

コード リスト 8-2 の WLST オンライン スクリプトは、ドメインに含まれるすべての実行中サーバの HJVMHeapSize をモニタします。3 分ごとにヒープ サイズをチェックし、指定したしきい値をヒープ サイズが上回ると、警告を出力します。ここでは、ドメインの管理サーバの URL が t3://localhost:7001 であることが前提となります。

このスクリプトを実行する方法については、「WLST の呼び出し」を参照してください。

コード リスト 8-2 JVM ヒープ サイズのモニタ

waitTime=300000
THRESHOLD=100000000
uname = "weblogic"
pwd = "welcome1"
url = "t3://localhost:7001"
def monitorJVMHeapSize():
    connect(uname, pwd, url)
    while 1:
        serverNames = getRunningServerNames()
        domainRuntime()
        for name in serverNames:
            print 'Now checking '+name.getName()
            try:
           cd("/ServerRuntimes/"+name.getName()+"/JVMRuntime/"+name.getName())
            except WLSTException,e:
                # これは通常、サーバがアクティブでないことを意味しているので、無視する
                pass
            heapSize = cmo.getHeapSizeCurrent()
            if heapSize > THRESHOLD:
            # 必要な処理を実行する (アラートの送信、電子メールの送信など)
                print 'WARNING: The HEAPSIZE is Greater than the Threshold'
            else:
                print heapSize
        java.lang.Thread.sleep(1800000)
def getRunningServerNames():
    domainConfig()
    return cmo.getServers()
if __name__== "main":
    monitorJVMHeapSize()

ロギングのコンフィグレーション

WLST を使用すると、サーバ インスタンスのロギングおよびメッセージ出力をコンフィグレーションできます。

コンフィグレーションできるログ属性を判断するには、『Oracle Fusion Middleware Oracle WebLogic Server MBean Reference』の「LogMBean」および「LogFileMBean」を参照してください。このリファレンスでは、各属性の有効な値も示されています。

コード リスト 8-3 の WLST オンライン スクリプトでは、LogFileMBean を拡張する LogMBean の属性を設定します。このスクリプトを実行する方法については、「WLST の呼び出し」を参照してください。

コード リスト 8-3 ロギングのコンフィグレーション

# サーバに接続する
connect("weblogic","welcome1","t3://localhost:7001")
edit()
startEdit()
# CMO をサーバのログ コンフィグレーションに設定する
cd("Servers/myserver/Log/myserver")
ls ()
# LogMBean 属性を変更する
set("FileCount", 5)
set("FileMinSize", 400)
# カレント ディレクトリをリストし、新しい属性値を確認する
ls ()
# 変更を保存およびアクティブ化する
save()
activate()
# すべて完了 ...
exit()

WebLogic 診断フレームワークでの操作

WebLogic 診断フレームワーク (WebLogic Diagnostic Framework : WLDF) は、サーバおよびアプリケーションによって生成される診断データを収集できるモニタおよび診断フレームワークです。WLDF をコンフィグレーションして、データを収集し、そのデータをさまざまなソース (ログ レコード、データ イベント、および収集されたメトリック) に格納します。詳細については、『Oracle Fusion Middleware Oracle WebLogic Server 診断フレームワークのコンフィグレーションと使い方』を参照してください。

WLST を使用しての WebLogic 診断フレームワークのコンフィグレーションを示すサンプル スクリプトについては、『Oracle Fusion Middleware Oracle WebLogic Server 診断フレームワークのコンフィグレーションと使い方』の「WebLogic Scripting Tool のサンプル」を参照してください。

WLST で収集された診断情報を表示するには、次のいずれかのコマンドを使用して WLDF リポジトリからデータをエクスポートします。