ページのトップに戻る
Systemwalker Operation Manager  リファレンスマニュアル

16.5 スクリプトのデバッグ例

本節では、Systemwalkerスクリプトのデバッグ例として以下の2つの例を説明します。

デバッグで使用するコマンドの組み込み例

16.3 デバッグで使用するコマンド”をスクリプト内に組み込んだ例を以下に示します。

例:引数で渡されたファイルを読み込むスクリプト

スクリプトファイル

level
(注)

出力内容

# トレースオープン
  # 実運用時は"level 2"を削除のこと
  set Trchwnd [sw_TcOpenTrace -level 2 /var/log/G001]
  if {$Trchwnd < 0} {
        puts stderr "Trace open err"
        exit 1
  }
  # 起動ログ出力
  sw_TcWriteTrace $Trchwnd "業務001 START"
  # ファイル名取得
  set filename [lindex $argv 0]
  sw_TcWriteTrace -level 2 $Trchwnd "Input file name: $filename"
  # 動作制御ファイルオープン
  if {[catch {
         set cid [open $filename r]
         }]} {
         # open のエラーをキャッチした場合
         # エラーログ出力
         sw_TcWriteTrace $Trchwnd "File open err (filename :$filename)"
         sw_TcCloseTrace $Trchwnd
         exit 1
  }
  sw_TcWriteTrace -level 2 $Trchwnd "File opened "
  # ファイル読み込み
  set rc [gets $cid buf]
  if {$rc == -1} {
         # ファイルが空のため読み込みバッファにデフォルト値を設定する
         sw_TcWriteTrace -level 2 $Trchwnd "File empty  "
         set buf 100
  }
  sw_TcWriteTrace -level 2 $Trchwnd "Gets data: $buf"
  close $cid
  …
  # 終了ログ出力
  sw_TcWriteTrace $Trchwnd "業務001 END"
  sw_TcCloseTrace $Trchwnd








  1


  2






  1



  2




  2


  2



  1








動作ログ


スクリプト内情報
  (ルートチェック)





エラーログ



ルートチェック




ルートチェック


スクリプト内情報
  (ルートチェック)


動作ログ

注)

levelの欄は、トレースレベルを表します。
トレースレベルのデフォルトは1のため、1の場合はコマンド内での指定を省略しています。

トレースレベルの変更の仕方の例

トレースレベルの指定は、Systemwalkerスクリプト内に記述するトレース拡張コマンドのオプションで行います。Systemwalker Operation Managerでの運用中にトレースレベルの変更が必要になった場合、スクリプト内を直接修正するのは困難なため、以下に示すような方法により、スクリプトを変更せずにトレースレベルを変更可能にしておくことができます。

例:

トレースレベル定義ファイルc:¥home¥etc¥trclevelにレベルが記述されている場合【Windows版】

# トレースレベル記述ファイルのオープン,読み込み,クローズ
if {[catch {
        set cid [open {c:¥home¥etc¥trclevel} r]
        gets $cid trclevel
        close $cid
        }]} {
# トレースレベル記述ファイルのエラー
puts stderr "Can not read {c:¥home¥etc¥trclevel}"
exit 1
}
# 指定値チェック
if {$trclevel < 0 || $trclevel > 2} {
        # 指定値エラー
        puts stderr "trace level err :$trclevel"
        exit 1
}
# トレースオープン
set Trchwnd [sw_TcOpenTrace -level $trclevel {c:¥var¥log¥G001.trc}]

sw_TcCloseTrace $Trchwnd
exit 0

例:

トレースレベル定義ファイル“/home/etc/trclevel”にレベルが記述されている場合【UNIX版】

# トレースレベル記述ファイルのオープン,読み込み,クローズ
if {[catch {
        set cid [open /home/etc/trclevel r]
        gets $cid trclevel
        close $cid
        }]} {
# トレースレベル記述ファイルのエラー
puts stderr "Can not read /home/etc/trclevel"
exit 1
}
# 指定値チェック
if {$trclevel < 0 || $trclevel > 2} {
        # 指定値エラー
        puts stderr "trace level err :$trclevel"
        exit 1
}
# トレースオープン
set Trchwnd [sw_TcOpenTrace -level $trclevel /var/log/G001.trc]

sw_TcCloseTrace $Trchwnd
exit 0