8 実行時情報の取得
実行時情報へのアクセス:主なステップ
管理サーバーは、WebLogicドメインに含まれる任意のサーバー上の任意のMBeanへのアクセスを提供する、ドメインの実行時階層をホストします。WLSTを使用して実行時情報にアクセスできます。
管理サーバーがWebLogicドメインに対して実行されていない場合、WLSTでは個々の管理対象サーバーに接続して実行時データを取得できます。
WebLogicドメインの実行時情報にアクセスする主なステップは、次のとおりです。
次の項では、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を構成して、データを収集し、そのデータを様々なソース(ログ・レコード、データ・イベント、および収集されたメトリック)に格納します。
WLSTを使用してのWebLogic診断フレームワークの構成を示すサンプル・スクリプトを確認するには、Oracle WebLogic Server診断フレームワークの構成と使用のWebLogic Scripting Toolの例を参照してください。
WLSTで収集された診断情報を表示するには、次のいずれかのコマンドを使用してWLDFリポジトリからデータをエクスポートします。
-
WLSTオフラインの場合、『WebLogic Server WLSTコマンド・リファレンス』の説明に従って、exportDiagnosticDataコマンドを使用します。
-
WLSTオンラインの場合、『WebLogic Server WLSTコマンド・リファレンス』の説明に従って、exportDiagnosticDataFromServerコマンドを使用します。