ヘッダーをスキップ
Oracle® Fusion Middleware WebLogic Scripting Toolの理解
12c (12.1.2)
E48072-02
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

8 実行時情報の取得

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

この章の内容は以下のとおりです。

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

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

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

  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--   HeapFreeCurrent                              191881368
    -r--   HeapFreePercent                              87
    -r--   HeapSizeCurrent                              259588096
    -r--   HeapSizeMax                                  518979584
    -r--   JavaVMVendor                                 Sun Microsystems Inc.
    -r--   JavaVendor                                   Sun Microsystems Inc.
    -r--   JavaVersion                                  1.6.0_21
    -r--   Name                                         AdminServer
    -r--   OSName                                       Windows XP
    -r--   OSVersion                                    5.1
    -r--   Type                                         JVMRuntime
    -r--   Uptime                                       409141
    
    -r-x   preDeregister                                Void :
    ...
    

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

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

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

例8-1 サーバー状態のモニター

# Node Manager needs to be running to run this script.

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 slrBean

checkHealth("myserver")

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

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

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

例8-2 JVMヒープ・サイズのモニター

waitTime=180000
THRESHOLD=300000000
uname = "adminusername"
pwd = "adminpassword"
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())
              heapSize = cmo.getHeapSizeCurrent()
              if heapSize > THRESHOLD:
              # do whatever is neccessary, send alerts, send email etc
                print 'WARNING: The HEAPSIZE is Greater than the Threshold'
              else:
                print heapSize
            except WLSTException,e:
              # this typically means the server is not active, just ignore
              # pass
                print "Ignoring exception " + e.getMessage()
            java.lang.Thread.sleep(waitTime)
 
def getRunningServerNames():
        # only returns the currently running servers in the domain
        return domainRuntimeService.getServerRuntimes()
 
if __name__== "main":
    monitorJVMHeapSize()

ロギングの構成

WLSTを使用すると、サーバー・インスタンスのロギングおよびメッセージ出力を構成できます。

構成できるログ属性を判断するには、Oracle WebLogic Server MBeanリファレンスLogMBeanに関する項およびLogFileMBeanに関する項を参照してください。このリファレンスでは、各属性の有効な値も示されています。

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

例8-3 ロギングの構成

# Connect to the server
connect("adminusername","adminpassword","t3://localhost:7001")
edit()
startEdit()

# set CMO to the server log config
cd("Servers/myserver/Log/myserver")
ls ()

# change LogMBean attributes
set("FileCount", 5)
set("FileMinSize", 400)

# list the current directory to confirm the new attribute values
ls ()

# save and activate the changes
save()
activate()

# all done...
exit()

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

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

WLSTを使用してのWebLogic診断フレームワークの構成を示すサンプル・スクリプトについては、『Oracle WebLogic Server診断フレームワークの構成と使用』の「WebLogic Scripting Toolの例」を参照してください。

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