WLST では、WebLogic Server インスタンスが実行時の状態を記述するために生成する情報を取得できます。以下の節では、WLST を使用した実行時情報の取得方法について説明します。
管理サーバは、ドメインに含まれる任意のサーバ上の任意の MBean へのアクセスを提供する、ドメインの実行時階層をホストします。管理サーバがドメインに対して実行されていない場合、WLST では個々の管理対象サーバに接続して実行時データを取得できます。
ドメインの実行時情報にアクセスする主な手順は、次のとおりです。
WLST を呼び出し、実行中の管理サーバのインスタンスに接続します。「WLST の呼び出し」を参照してください。
domainRuntime
コマンドを入力して、ドメインの実行時 MBean 階層に移動します。
wls:/mydomain/serverConfig>domainRuntime()
domainRuntime
コマンドにより WLST は、ドメイン全体の実行時管理オブジェクトのルート DomainRuntimeMBean
に置かれます。
ServerRuntimes
に移動してから、モニタするサーバ インスタンスに移動します。
wls:/mydomain/domainRuntime>cd('ServerRuntimes/myserver')
サーバ インスタンスで、実行時 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
コード リスト 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 Diagnostic Framework : WLDF) は、サーバおよびアプリケーションによって生成される診断データを収集できるモニタおよび診断フレームワークです。WLDF をコンフィグレーションして、データを収集し、そのデータをさまざまなソース (ログ レコード、データ イベント、および収集されたメトリック) に格納します。詳細については、『Oracle Fusion Middleware Oracle WebLogic Server 診断フレームワークのコンフィグレーションと使い方』を参照してください。
WLST を使用しての WebLogic 診断フレームワークのコンフィグレーションを示すサンプル スクリプトについては、『Oracle Fusion Middleware Oracle WebLogic Server 診断フレームワークのコンフィグレーションと使い方』の「WebLogic Scripting Tool のサンプル」を参照してください。
WLST で収集された診断情報を表示するには、次のいずれかのコマンドを使用して WLDF リポジトリからデータをエクスポートします。
WLST オフラインの場合、exportDiagnosticData
コマンド (『Oracle Fusion Middleware WebLogic Scripting Tool コマンド リファレンス』の「exportDiagnosticData」を参照)
WLST オンラインの場合、exportDiagnosticDataFromServer
コマンド (『Oracle Fusion Middleware WebLogic Scripting Tool コマンド リファレンス』の「exportDiagnosticDataFromServer」を参照)