与えられた値がアプリケーションにとって適切な値でなければ、DBCHCLを呼び出す前に、アプリケーション プログラムで次の値に設定することができます。
- オプションを’Y’に変更する。
- Wait For Responseの値を適切な値に変更します。
- 'Y': DBCHCLは、関数を実行または完了できるまで制御を返さない場合。
- 'N': 関数のリクエストがデータベースに送信された直後にDBCHCLが制御を返す場合。この場合、アプリケーション プログラムが、関数の応答が到着する時点を別の方法で検出する必要がある。
Wait For Responseが'N'に設定されている場合に上記の2つの状態のどちらかが発生すると、次の戻りコードが与えられます。
EM_NOTIDLE (208) or EM_NODATA (211),アプリケーション プログラムでは、再試行することができます。
- 再試行するのがよいかどうかを決める第1の方法は、DBCHWATを呼び出すことです。 DBCHWATから制御が戻ったならば、再試行をします。 この方法をとれば、待っている間に拘束されるシステム リソースが少なくて済みます。
何回か試みる必要があるかもしれません。場合によっては、CLIが実行中の操作を終了し、すぐに別の操作を始めることがあります。その場合、1つの操作が終わった時点でDBCHWATが制御を返しますが、アプリケーション プログラムで次にDBCHCLを呼び出しても、CLIがすでに別の操作を開始しているので、その呼び出しは「実行されません」。何回か試行する必要があるかもしれないことを、考慮に入れておいてください。
- 再試行するのがよいかどうかを決める第2の方法は、即座に再試行して、その呼び出しが「実行される」まで試行を続けることです。
- Wait For Responseが'N'に設定されているときに上記のいずれかの状態が発生した場合には、本来のDBCHCL呼び出しはまったく「実行されません」。CLIは、「I was not able to do that; try again later(関数を実行できませんでした。後で再試行してください)」と報告します。
- Abort関数およびDisconnect関数は、どちらもWait For Responseの設定による影響を受けません。
Fetch、Rewind、End Request、およびAbort関数は、Wait For Responseの値を読み取って使用します。ただし、格納はしません。
アプリケーションは、CLIログオフ処理中にWait for Responseを使用して、ゲートウェイがログオフ リクエストに応答しない場合でも、CLIが「永久に」待機しないようにすることができます。