問題の原因はループであるか
ループは、コードのあるセクションを繰り返し実行するときに使用します。ループが計画されたものでない場合、またはアプリケーションの設計に組み込んだループを終了できない場合、問題の症状は、コードの処理内容によって異なります。ループは待機やパフォーマンス上の問題と似ている場合があります。これは、ループしているタスクのシステム・リソース要求が、そのループに関係していない他のタスクと競合するからです。
ループの特徴的な症状を、次にいくつか示します。
- CPU 使用量が非常に多く (おそらく 100% 近くに) なりますが、長時間にわたって、一部のタスクが中断状態または作動可能状態のまま実行されません。CPU 使用量の確認については、CICS が実行中に停止する場合を参照してください。
- 端末での活動が少なくなるか、まったく行われなくなる可能性があります。
- 1 つ以上の CICS® 領域が、停止しているか低速でのみ実行されているように見えます。
- CICS が、予期したタイミングで任意の宛先にメッセージを書き込まなくなります。
- 反復出力が見られる場合があります。次のいずれかの領域を調べてみてください。
- 端末
- 一時記憶域キュー (オンラインでブラウズするには、CEBR を使用します)
- データ・ファイルおよび CICS ジャーナル
- あるタスクで過剰な量のストレージが要求されます。ループに EXEC CICS GETMAIN SHARED 要求が含まれている場合、CICS は、タスクがループ内でこの要求部分に達するたびに、要求を満たすだけのストレージが確保されている限り、ストレージを獲得します。タスクがループ内の EXEC CICS FREEMAIN でもストレージを解放しない場合、 CICS は最終的にストレージ不足 (SOS) になります。この場合、CICS にストレスがかかっていることを報告するメッセージが表示されます。GETMAIN SHARED 用のストレージが存在しない場合、CICS は問題のプログラムで条件を発生させます。
- 統計が、開始されているタスクが多いことを示します。
- 統計が、個々のタスクへのファイル・アクセスが多いことを示します。
ループで反復出力を生成することによって、ループを待機やパフォーマンス上の問題と区別できる場合があります。待機やパフォーマンス上の問題が発生しても、反復出力は生成されません。ループから出力が生成されない場合、トレースから反復パターンがわかる場合があります。問題をループに分類するだけの十分な情報がある場合は、ループの制限を定義する必要があります。詳細については、ループの処理を参照してください。