Interstage Job Workload Server 運用ガイド |
目次 |
第3章 異常時の対処 | > 3.2 ジョブの異常 |
ジョブが実行中のまま想定した(これまで実績がある)時間内に終了しない場合、以下の原因が考えられます。
それぞれについて以下に説明します。
対象ジョブの入力ファイルのデータ量の増加が原因で、ジョブの実行時間が増加したことが考えられます。
対象ジョブの入力ファイルのファイルサイズを、lsコマンドなどで確認し、業務データがいつもより増加していないか確認してください。
いつもより増加しているようであれば、ジョブが終了するのを待ってください。
入力ファイルのファイルサイズがいつもと変わらないようであれば、“ファイルの排他待ちになっている場合”の確認を行ってしてください。
また、バッチ業務として次回運用時に同様の現象が発生しないように以下の対処を行ってください。
対象ジョブのファイルの排他情報の表示を、btfwexcinfoコマンドで行い対象ジョブが使用するファイルが、他のジョブとの間で排他関係にあり、排他待ち状態にないか確認してください。
ファイルの排他状況を表示するbtfwexcinfoコマンドの形式を以下に示します。
btfwexcinfo -j ジョブ名 |
btfwexcinfoコマンドについては、“Interstage Job Workload Server リファレンス”を参照してください。
ファイルの排他状況の出力例を以下に示します。
以下の例は、ジョブ名が job003 のファイルの排他状況を表示したものです。
Date Time Elapsed JobState Job -------------------------------------------------------------------------------- 2006/03/17 12:58:26 00:00:02 wait job003(00003) Elapsed FileState FileName -------------------------------------------------------------------------------- 00:00:02 wait (exc) /home/mcuser/file001 OwnerJob ---------------------------------------------------------------------- job001(00001) job002(00002) Date Time Elapsed JobState Job -------------------------------------------------------------------------------- 2006/03/17 12:58:25 00:00:02 exec job001(00001) Elapsed FileState FileName -------------------------------------------------------------------------------- 00:00:02 owner(shr) /home/mcuser/file001 Date Time Elapsed JobState Job -------------------------------------------------------------------------------- 2006/03/17 12:58:25 00:00:02 exec job002(00002) Elapsed FileState FileName -------------------------------------------------------------------------------- 00:00:02 owner(shr) /home/mcuser/file001 |
ファイルの排他状況の対象ジョブの"JobState"が"wait"になっていた場合には、ファイルの排他待ちとなっています。
上記例では、job003 の"JobState"が"wait"になっているため、ファイルの排他待ちになっていることがわかります。
排他待ち状態の場合には、排他待ちになっているファイル、およびそのファイルを排他獲得しているジョブを確認してください。
上記例では、job003が排他しようとしたファイル"/home/mcuser/file001"が、すでにjob001、job002によって排他獲得されていることがわかります。
この場合の対処としては、排他関係にあるジョブ(上記例ではjob001、job002を指します)が終了するまで待ってください。
また、排他待ち状態になっているジョブより、後続ジョブを優先して実行したい場合には、btfwcanjobコマンドで排他待ち状態になっているジョブをキャンセルしてください。
キャンセルしたジョブは、排他関係にあったジョブが終了したことを確認後、再度投入してください。
btfwcanjobコマンドについては、“Interstage Job Workload Server リファレンス”を参照してください。
また、次回運用時に同様の現象が発生しないように、排他関係にあるジョブとバッチ業務の関係を確認して、以下の対処を検討してください。
排他待ち状態以外の場合には、システム負荷が原因として考えられますので、“システム負荷が上がっている場合”を参照して対処してください。
システム負荷が上がって、対象ジョブに十分なCPUやメモリが割り当てられていないか確認します。
システム負荷として、システムのCPU使用率や、メモリ使用量を確認するには、sarコマンドやtopコマンドで行います。
システム負荷が上がっていた場合には、原因を調査して対処を行ってください。
システム負荷が上がっていない場合には、バッチアプリケーションが無限ループ状態になっていることが考えられますので、“バッチアプリケーションが無限ループしている場合”を参照して対処してください。
ジョブ情報の表示コマンド(btfwjobinfoコマンド)で、対象ジョブのジョブ詳細表示をします。
詳細表示には、実行中のジョブステップ名が表示されます。
btfwjobinfoコマンドについては、“Interstage Job Workload Server リファレンス”を参照してください。
実行中のジョブステップで実行している、バッチアプリケーションが無限ループしているか確認するために、そのバッチアプリケーションの入力ファイルと、出力ファイルのファイルサイズを比較して、出力ファイルのサイズが想定をはるかに超えていないか確認してください。
または、catコマンドなどを利用して、出力ファイルの中身を表示などして判断してください。
無限ループしている場合には、早急にジョブをキャンセルしてください。
ジョブをキャンセルする場合には、“ジョブのキャンセル”を参照してください。
無限ループしているか判断できない場合には、ジョブが終了するのを待ってください。
ジョブの実行時間が、ジョブの実行経過時間制限値を超えると、ジョブは以下の終了コードで異常終了します。
ジョブ終了コード |
意味 |
0x60000601 |
ジョブの実行経過時間制限値を超えたことによるジョブの実行中断 |
ジョブの実行経過時間制限値の設定がされていない場合は、btfwjobinfoコマンドでジョブの詳細情報を表示し、対象ジョブの実行開始日時(Start Time)をもとに、想定していた時間を大幅に超えていることを確認後、ジョブをキャンセルしてください。
ジョブの実行経過時間制限値を超えた場合や、キャンセルした場合には、必ずジョブログを確認し原因を究明して対処してください。
目次 |