View
11.222
Download
10
Embed Size (px)
DESCRIPTION
第一回 WebLogic Server 勉強会資料
Citation preview
<Insert Picture Here>
WebLogic Scripting Tool 入門
日本オラクル株式会社 カスタマーサポート総本部テクニカルアナリスト 永井 英一2009年 5月 14日
Copyright© 2009, Oracle. All rights reserved. 2
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。
Oracle、PeopleSoft、JD Edwards、及びSiebelは、米国オラクル・コーポレーション及びその子会社、関連会社の登録商標です。その他の名称はそれぞれの会社の商標の可能性があります。
Copyright© 2009, Oracle. All rights reserved. 3
Agenda
• WebLogic Scripting Tool(WLST) とは?
• WLST 実行モード
• 使い方
• スクリプト例
• DEMO
• TIPS
• 参考資料
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>
≒
Copyright© 2009, Oracle. All rights reserved. 5
WebLogic Scripting Tool(WLST) とは?
• WebLogic Server の MBean を利用• 実行時 MBean
サーバまたはリソースの現在の状況に関する情報を管理する MBean
• コンフィグレーション MBean
サーバおよびリソースのコンフィグレーションに関する情報を管理する MBean
Copyright© 2009, Oracle. All rights reserved. 6
WebLogic Scripting Tool(WLST) とは?
[MBean ブラウザで見た ServerRuntimeMBean]
Copyright© 2009, Oracle. All rights reserved. 7
WebLogic Scripting Tool(WLST) とは?
• UNIX 環境のディレクトリ操作のように MBean を表示• serverRuntime, serverConfig..etc ドライブ
• MBean タイプ/インスタンス ディレクトリ
• 属性/オペレーション ファイル
• ls / cd コマンドを利用して階層を移動• ls コマンドで属性、子MBeanを取得
• cd コマンドで MBean 階層を移動
Copyright© 2009, Oracle. All rights reserved. 8
WebLogic Scripting Tool(WLST) とは?
[WLST で見た ServerRuntimeMBean]
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
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()
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
• スクリプトを実行し、終了
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()
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? ‘)
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)
Copyright© 2009, Oracle. All rights reserved. 15
使い方スクリプトを作成する
• WLST の中で記録• startRecording(‘c:/temp/record.py’)
• stopRecording()
• 管理コンソールからの WLST スクリプトの記録[管理コンソール → 環境設定 → WLST スクリプトの記憶]
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]
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')
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
Copyright© 2009, Oracle. All rights reserved. 19
DEMO
• WebLogic Server のスレッドプールをモニタする
• 他にもこんなことが出来ます• WebLogic Server への Deploy を自動化する
• JMS のキューをモニタする、キューのメッセージを管理する
• サーバの状態を監視する(ヘルスチェック)
• GUIでモニタ情報を出力させる
等々…
Copyright© 2009, Oracle. All rights reserved. 20
TIPS
• prompt()• プロンプトの表示/非表示を切り替える
• find()• 現在の階層の MBean から文字列を検索する
• jndi()• JNDIツリーを表示するモード
• help()• コマンドおよび変数に関する情報を表示
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プログラミング 』
西尾 泰和 (著)
出版社: 毎日コミュニケーションズ
Copyright© 2009, Oracle. All rights reserved. 22