Transcript
Page 1: WebLogic Scripting Tool 入門

<Insert Picture Here>

WebLogic Scripting Tool 入門

日本オラクル株式会社 カスタマーサポート総本部テクニカルアナリスト 永井 英一2009年 5月 14日

Page 2: WebLogic Scripting Tool 入門

Copyright© 2009, Oracle. All rights reserved. 2

以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。

Oracle、PeopleSoft、JD Edwards、及びSiebelは、米国オラクル・コーポレーション及びその子会社、関連会社の登録商標です。その他の名称はそれぞれの会社の商標の可能性があります。

Page 3: WebLogic Scripting Tool 入門

Copyright© 2009, Oracle. All rights reserved. 3

Agenda

• WebLogic Scripting Tool(WLST) とは?

• WLST 実行モード

• 使い方

• スクリプト例

• DEMO

• TIPS

• 参考資料

Page 4: WebLogic Scripting Tool 入門

Copyright© 2009, Oracle. All rights reserved. 4

WebLogic Scripting Tool(WLST) とは?

• 管理コンソールと同様に、 WebLogic Server の管理、運用の操作に使用できるコマンドライン スクリプト環境

• Built on Jython 2.1• 100% pure java のPython 実装

• WebLogic Server 9.x から利用可能

C:¥>java weblogic.WLST

Initializing WebLogicScripting Tool (WLST) ...

wls:/offline>

Page 5: WebLogic Scripting Tool 入門

Copyright© 2009, Oracle. All rights reserved. 5

WebLogic Scripting Tool(WLST) とは?

• WebLogic Server の MBean を利用• 実行時 MBean

サーバまたはリソースの現在の状況に関する情報を管理する MBean

• コンフィグレーション MBean

サーバおよびリソースのコンフィグレーションに関する情報を管理する MBean

Page 6: WebLogic Scripting Tool 入門

Copyright© 2009, Oracle. All rights reserved. 6

WebLogic Scripting Tool(WLST) とは?

[MBean ブラウザで見た ServerRuntimeMBean]

Page 7: WebLogic Scripting Tool 入門

Copyright© 2009, Oracle. All rights reserved. 7

WebLogic Scripting Tool(WLST) とは?

• UNIX 環境のディレクトリ操作のように MBean を表示• serverRuntime, serverConfig..etc ドライブ

• MBean タイプ/インスタンス ディレクトリ

• 属性/オペレーション ファイル

• ls / cd コマンドを利用して階層を移動• ls コマンドで属性、子MBeanを取得

• cd コマンドで MBean 階層を移動

Page 8: WebLogic Scripting Tool 入門

Copyright© 2009, Oracle. All rights reserved. 8

WebLogic Scripting Tool(WLST) とは?

[WLST で見た ServerRuntimeMBean]

Page 9: WebLogic Scripting Tool 入門

Copyright© 2009, Oracle. All rights reserved. 9

WebLogic Scripting Tool(WLST) とは?

• 100% pure java のPython 実装

• オブジェクト指向のスクリプト言語

• オープンソース

• 動的な型付け

• インデントを利用したブロック構文

> a = 5 + 10

> print a

> def func(arg):

> return “Hello, “ + arg

Page 10: WebLogic Scripting Tool 入門

Copyright© 2009, Oracle. All rights reserved. 10

WebLogic Scripting Tool(WLST) とは?

• Javaの提供する機能がスクリプトから利用可能

パッケージのインポートfrom java.lang import * (WLST は標準で実行)

import javax.swing as swing

オブジェクトの作成str = String(“Test String”)

メソッドの呼び出しprint System.currentTimeMillis()

Page 11: WebLogic Scripting Tool 入門

Copyright© 2009, Oracle. All rights reserved. 11

WLST 実行モード

• 対話形式• java weblogic.WLST

• スクリプトを実行後、対話形式に戻る -i XXX.py

• 組み込み実行• weblogic.management.scripting.utils.WLSTInterpreter

• weblogic.WLST は一つの実装

• スクリプト実行• java weblogic.WLST XXXX.py

• スクリプトを実行し、終了

Page 12: WebLogic Scripting Tool 入門

Copyright© 2009, Oracle. All rights reserved. 12

使い方Current Management Object

• cmo = 現在の MBean オブジェクト• serverRuntime() cmo = ServerRuntimeMBean

• MBean の持つAPIを呼び出し可能• cmo.shutdown()

• cmo.getState()

• 他の変数に代入可能• sruntime = cmo

• sruntime.getState()

Page 13: WebLogic Scripting Tool 入門

Copyright© 2009, Oracle. All rights reserved. 13

使い方Python パッケージ - 1

• 文字列の置換> name = (‘taro’, ‘jiro’)

> print ‘Hello %s and %s’ % name

• ウェイト> import time

> time.sleep(5)

• ファイルの操作> f = open(‘c:/temp/test.txt', 'w')

> f.write("hello¥n")

> f.close()

• 入力を求める> name = raw_input(‘your name? ‘)

Page 14: WebLogic Scripting Tool 入門

Copyright© 2009, Oracle. All rights reserved. 14

使い方Python パッケージ - 2

• ループ> for i in range(1,10):

> print i

• 現在の時間> import time

> time.strftime('%Y-%m-%d %H:%M:%S')

• 文字列の変換> string.atoi(“5”)

> str(5)

• コマンドを確認> dir(time)

Page 15: WebLogic Scripting Tool 入門

Copyright© 2009, Oracle. All rights reserved. 15

使い方スクリプトを作成する

• WLST の中で記録• startRecording(‘c:/temp/record.py’)

• stopRecording()

• 管理コンソールからの WLST スクリプトの記録[管理コンソール → 環境設定 → WLST スクリプトの記憶]

Page 16: WebLogic Scripting Tool 入門

Copyright© 2009, Oracle. All rights reserved. 16

スクリプト例WebLogic Server のスレッドプールをモニタする

# ThreadPoolRuntimeMbean の情報を取得する関数

def getThreadPoolInf(threadPoolRuntime):

# 実行スレッドの総数を取得

oExecuteThreadTotalCount = threadPoolRuntime.getExecuteThreadTotalCount()

# アイドルスレッドの数を取得

oExecuteThreadIdleCount = threadPoolRuntime.getExecuteThreadIdleCount()

# STANDBY スレッドの数を取得

oStandbyThreadCount = threadPoolRuntime.getStandbyThreadCount()

# ACTIVE スレッドで実行中スレッドの数を取得

oRunActiveThread = oExecuteThreadTotalCount-oExecuteThreadIdleCount-oStandbyThreadCount

head = "----------[" + time.strftime('%Y-%m-%d %H:%M:%S') + "]----------"

sExecuteThreadTotalCount = "ExecuteThreadTotalCount : " + str(oExecuteThreadTotalCount)

sExecuteThreadIdleCount = "ExecuteThreadIdleCount : " + str(oExecuteThreadIdleCount)

sStandbyThreadCount = "StandbyThreadCount : " + str(oStandbyThreadCount)

sRunActiveThrea = "RunActiveThread : " + str(oRunActiveThread)

# 取得した情報をリストで返却

return [head,sExecuteThreadTotalCount,sExecuteThreadIdleCount,sStandbyThreadCount,sRunActiveThrea]

[ThreadMonitor.py]

Page 17: WebLogic Scripting Tool 入門

Copyright© 2009, Oracle. All rights reserved. 17

スクリプト例WebLogic Server のスレッドプールをモニタする

# ファイルに情報を書き出す関数

def outputFile(oList):

# 追記モードでファイルを作成

f = open('c:/temp/test.txt', 'a')

# リストの情報をファイルに書き出し

for i in range(0,len(oThreadRuntimeInf)):

f.write(oList[i] + "¥n")

f.close()

# WebLogic Server に接続

connect('weblogic','weblogic','t3://localhost:7001')

# Python time モジュールをインポート

import time

# Python traceback モジュールをインポート

import traceback

# ServerRuntimeMbean に接続

serverRuntime()

# ThreadPoolRuntimeMbean を取得

oThreadPoolRuntime = getMBean('ThreadPoolRuntime/ThreadPoolRuntime')

Page 18: WebLogic Scripting Tool 入門

Copyright© 2009, Oracle. All rights reserved. 18

スクリプト例WebLogic Server のスレッドプールをモニタする

while(true):

try:

# ThreadPoolRuntimeMbean 情報を取得

oThreadRuntimeInf = getThreadPoolInf(oThreadPoolRuntime)

# ThreadPoolRuntimeMbean の情報を出力

for i in range(0,len(oThreadRuntimeInf)):

print oThreadRuntimeInf[i]

# ThreadPoolRuntimeMbean の情報をファイルに書き出し

outputFile(oThreadRuntimeInf)

# 5秒間待機

time.sleep(5)

except:

# 例外が発生した場合、例外を出力

print "<<<error>>>"

traceback.print_exc()

break

Page 19: WebLogic Scripting Tool 入門

Copyright© 2009, Oracle. All rights reserved. 19

DEMO

• WebLogic Server のスレッドプールをモニタする

• 他にもこんなことが出来ます• WebLogic Server への Deploy を自動化する

• JMS のキューをモニタする、キューのメッセージを管理する

• サーバの状態を監視する(ヘルスチェック)

• GUIでモニタ情報を出力させる

等々…

Page 20: WebLogic Scripting Tool 入門

Copyright© 2009, Oracle. All rights reserved. 20

TIPS

• prompt()• プロンプトの表示/非表示を切り替える

• find()• 現在の階層の MBean から文字列を検索する

• jndi()• JNDIツリーを表示するモード

• help()• コマンドおよび変数に関する情報を表示

Page 21: WebLogic Scripting Tool 入門

Copyright© 2009, Oracle. All rights reserved. 21

参考資料

• WebLogic Scripting Tool の使用• http://otndnld.oracle.co.jp/document/products/wls/docs103/config_scripting/using_WLST.html

• WLST スクリプトの記録• http://otndnld.oracle.co.jp/document/products/wls/docs103/ConsoleHelp/taskhelp/console/RecordWLSTScripts.html

• 書籍『BEA WebLogic Server 9.x/10 構築・運用ガイド』

伊藤忠テクノサイエンス株式会社 (著)

日本BEAシステムズ株式会社 (著)

出版社:翔泳社

『みんなのPython 』

柴田 淳 (著)

出版社:ソフトバンククリエイティブ

『Jythonプログラミング 』

西尾 泰和 (著)

出版社: 毎日コミュニケーションズ

Page 22: WebLogic Scripting Tool 入門

Copyright© 2009, Oracle. All rights reserved. 22


Top Related