| 
			Systemwalker Operation Manager リファレンスマニュアル - UNIX/Windows(R)共通 -
		 | 
	
	
		
			目次
			索引
			  
		 | 
	
16.5 スクリプトのデバッグ例
本節では、Systemwalkerスクリプトのデバッグ例として以下の2つの例を説明します。
- デバッグで使用するコマンドの組み込み例
 - トレースレベルの変更の仕方の例
 
■デバッグで使用するコマンドの組み込み例
“デバッグで使用するコマンド”をスクリプト内に組み込んだ例を以下に示します。
例:引数で渡されたファイルを読み込むスクリプト
| 
 スクリプトファイル  | 
 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での運用中にトレースレベルの変更が必要になった場合、スクリプト内を直接修正するのは困難なため、以下に示すような方法により、スクリプトを変更せずにトレースレベルを変更可能にしておくことができます。
- スクリプトの引数による指定
スクリプト起動時の引数によりトレースレベルを受け渡します。
例:第1引数がトレースレベルを表す場合【Windows版】
| 
 # 第1引数からトレースレベル取得 
set trclevel [lindex $argv 0] 
# 指定値チェック 
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  | 
例:第1引数がトレースレベルを表す場合【UNIX版】
| 
 # 第1引数からトレースレベル取得 
set trclevel [lindex $argv 0] 
# 指定値チェック 
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  | 
 - 外部ファイルによる指定
トレースレベルを記述したファイルからトレースレベルを読み込むようにします。
 
- 例:
 
- トレースレベル定義ファイル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  | 
 
All Rights Reserved, Copyright (C) 富士通株式会社 1995-2007