Systemwalker Operation Manager 解説書 - UNIX共通 - - Microsoft(R) Windows NT(R)/Windows(R) 2000/Windows Server(TM) 2003 - |
目次
索引
![]() ![]() |
第2章 運用方法 | > 2.9 Systemwalkerスクリプト |
Systemwalkerスクリプトは、コンパイル手続きなしで動作させることができますが、スクリプト内に誤りがあった場合には、該当箇所を動作させるまで検出することができません。Systemwalker Operation Managerにおける実運用での支障がないように、スクリプト作成後の段階において動作確認・デバッグを実施し、これらの誤りを取り除くことが必要です。
スクリプト作成時に作り込む誤りには、次のものが考えられます。
条件式が文法上は正しいが本来意図した判定を行うものでない、条件分岐の仕方によっては必要な変数に値が設定されないなど。
必ず存在すると思っていたファイルが存在しない場合もある、起動プログラムからの出力情報として想定外のものがあるなど。
スクリプト内には、デバッグに備えてトレース拡張コマンドの呼び出しをあらかじめ入れておきます。
トレース拡張コマンドは、オプションでトレースレベルを指定します。トレースレベルの指定方法については、“Systemwalker Operation Manager リファレンスマニュアル”を参照してください。
トレースレベルを変えることでトレース情報の採取内容を切り替えることが可能です。トレースが採取されるトレースレベルは、2段階あります。トレースレベルは、以下のように使い分けることを推奨します。
異常を検知した場合の詳細情報など、「エラーログ」として残す情報の出力をする。
読み込みファイルの内容やループ処理内での変数値など、「スクリプト内情報」として残す情報の出力をする。
Systemwalkerスクリプトの動作確認とデバッグに関して、各工程で実施する内容は以下のとおりです。
スクリプト中にトレース拡張コマンドの呼び出し処理を適宜入れます。
運用開始後に顕在化する障害が存在する場合に備え、調査資料となる必要最低限のデバッグ情報は常時採取することを推奨します。スクリプトの動作で異常が発生した場合は、常時採取しているトレースの退避とその調査、さらに、必要に応じてトレースレベルを上げた状態でのトレース調査を行います。
TclProによるデバッグ方法
SystemwalkerスクリプトはTcl/Tkをベースにしているため、作成したスクリプトは、Tcl/Tk開発環境製品である以下のツールを使用してデバッグすることができます。
なお、TclProは、UNIX版ではSolaris OE版のみサポートされています。そのため、Solaris OE版以外では本デバッグ方法は利用できません。
以下に、ツールの概要を説明します。
スクリプトを実行することなく文法エラーの検出をします。
スクリプトのグラフィカルデバッガーです。
画面上にスクリプトファイル(プログラム)が表示されてそれを元に、スクリプトコマンドのステップ実行、指定した位置までの実行をします。また、デバッグ実行中のスクリプトで使用している変数に対し、値の監視や入力を行うことができます。
【参考】
TclProはマルチプラットフォームに対応した製品であり、Solaris OE版の場合、GUIはXウィンドウ上の表示となります。
拡張コマンドのダミー定義について
Systemwalkerスクリプトは、Tcl/Tkに対し以下の拡張コマンドを追加しています。
スクリプトファイル中に上記コマンドの呼び出しがある場合は、そのままTclProによるデバッグを行うことができません。そこで、テスト対象スクリプトファイルの先頭に以下の記述により、拡張コマンドのダミー定義を行ってください。
例:拡張コマンドのダミー定義
# ダミー拡張コマンド定義 |
また、execコマンドなどデバッグ中に誤って実際に動作させたくないコマンドがある場合も、同様にしてダミーコマンドの定義をしてください。
例:execコマンドのダミー定義【Windows】
# ダミー拡張コマンド定義 proc exec {args} { # 引数の指定値を記録する set fc [open {C:\tmp\exec.param} w+] puts $fc $args close $fc return "" } |
例:execコマンドのダミー定義【UNIX】
# ダミー拡張コマンド定義 |
TclProについての詳細は、TclPro1.4(Windows版)またはTclPro1.4(Solaris OE版)が提供するマニュアルを参照してください。
目次
索引
![]() ![]() |