Systemwalkerスクリプトは、コンパイル手続きなしで動作させることができますが、スクリプト内に誤りがあった場合には、該当箇所を動作させるまで検出することができません。Systemwalker Operation Managerにおける実運用での支障がないように、スクリプト作成後の段階において動作確認・デバッグを実施し、これらの誤りを取り除くことが必要です。
スクリプト作成時に作り込む誤りには、次のものが考えられます。
単純な記述ミス
文法上の誤り
論理的な誤り
条件式が文法上は正しいが本来意図した判定を行うものでない、条件分岐の仕方によっては必要な変数に値が設定されないなど。
実行環境に対する考慮洩れ
必ず存在すると思っていたファイルが存在しない場合もある、起動プログラムからの出力情報として想定外のものがあるなど。
スクリプト内には、デバッグに備えてトレース拡張コマンドの呼び出しをあらかじめ入れておきます。
トレース拡張コマンドは、オプションでトレースレベルを指定します。トレースレベルの指定方法については、“Systemwalker Operation Manager リファレンスマニュアル”を参照してください。
トレースレベルを変えることでトレース情報の採取内容を切り替えることが可能です。トレースが採取されるトレースレベルは、2段階あります。トレースレベルは、以下のように使い分けることを推奨します。
起動時や処理結果など「動作ログ」として残す情報の出力をする。
異常を検知した場合の詳細情報など、「エラーログ」として残す情報の出力をする。
処理分岐点や外部プログラム起動の前後など、スクリプトがどのルートをどこまで実行したかの「ルートチェック」として残す情報の出力をする。
読み込みファイルの内容やループ処理内での変数値など、「スクリプト内情報」として残す情報の出力をする。
Systemwalkerスクリプトの動作確認とデバッグに関して、各工程で実施する内容は以下のとおりです。
スクリプト作成工程
スクリプト中にトレース拡張コマンドの呼び出し処理を適宜入れます。
動作ログ/エラーログ相当の採取箇所は、レベル1のトレースにします。
ルートチェック/スクリプト内情報の採取箇所は、レベル2のトレースにします。
スクリプト動作確認・デバッグ工程
テスト用の実行コマンド(swotclsh)を使用してスクリプトを実行します。その際、以下の点に留意してください。
アプリケーション起動など、テストでは実際に動作させられない、またはさせてはいけない処理がある場合は、該当処理をコメントにするか、テスト用のダミープログラム起動に置き換えるなどの修正を加えます。
動作確認時にはルートチェック用のトレースを採取・参照し、スクリプトが正しいルートを通っていることを確認します。
動作確認はスクリプトの正常ルートだけでなく、エラー処理ルートも含めて条件分岐により枝分かれする全ルートを1つずつ確認します(スクリプトは変数名のタイプミスなどがあってもそのルートが実行されない限りエラーが検知されないため)。
正常に動作しない場合は、Tcl/Tkが出力するエラーメッセージ(エラーが出ている場合)、および採取したトレースから問題のある箇所を探し出し、原因を取り除きます。
ジョブ運用開始後
運用開始後に顕在化する障害が存在する場合に備え、調査資料となる必要最低限のデバッグ情報は常時採取することを推奨します。スクリプトの動作で異常が発生した場合は、常時採取しているトレースの退避とその調査、さらに、必要に応じてトレースレベルを上げた状態でのトレース調査を行います。