DBCHWATは、1つ以上のリクエストが、データベース上で完了して、その応答がワークステーションに到着するのを待ちます。すなわち、最初に終了したリクエストのセッションid、および関連付けられたToken(アプリケーションでリクエストを開始したときに与えた)を呼び出し側に返します。
DBCHWATは、アプリケーションが複数の活動状態のリクエストをデータベース上で同時に持つことができるように、複数セッション アプリケーションでの使用を主に目的としています。
DBCHWATは、多重スレッド アプリケーションでは通常使用されません。特定のプロセスで、1つ以上のCLIv2依存コンポーネントを用いる単一スレッド アプリケーションでも使用されません。DBCHWATは、プロセスの任意のセッションで準備が整うまで、現在の作業単位をブロックするため、万一、1つのコンポーネントが信号完了のリクエストを開始し、別のコンポーネントが制御下にある場合、予期しない結果が発生することが考えられます。このような問題を回避するため、当該アプリケーションでは代わりにDBCHWLを排他的に用いる必要があります。
イベントとは
DBCHWATは、あるイベントが起こるのを待ちます。イベントとは、データベースから何らかの応答が届いたことを指します。DBCHUECが呼び出されていれば、「イベント」はアプリケーション プログラムが定義したイベントの発生も示します。
パラメータ
Int32 DBCHWAT (ReturnCode, ContextArea, sessid, token) | |
Int32 | *ReturnCode; |
char | *ContextArea; |
Int32 | *sessid; |
Int32 | *token; |
次のような場合に当てはまります。
パラメータ | 内容 |
---|---|
ReturnCode | アプリケーション プログラムが4バイトの符号付き整数の記憶域として割り当てた領域の4バイト アドレス。 DBCHWATから制御が戻ると、この整数領域に、成功したかどうかの値を示すコードが入ります。
|
ContextArea | CLIおよびアプリケーション プログラムでは使用されないため、任意の値を入れることができる4バイトのフィールド。 メインフレーム クライアントでの呼び出しとの互換性を維持するために提供されています。 |
sessid (session) | アプリケーション プログラムが4バイトの符号付整数の記憶域として割り当てた領域の4バイト アドレス。 DBCHWATから制御が戻ると、この整数領域に、最初に完了するアクティブ リクエストの論理セッションIDが入ります。 |
token | アプリケーション プログラムが4バイトの符号付整数の記憶域として割り当てた領域の4バイト アドレス。 DBCHWATから制御が戻ると、この整数には、完了させる最初の活動状態のリクエストに関連付けてユーザーが与えたトークン(ある場合)が入っています。 |
使用上の注意
2つのリクエストが応答の到着をポストする場合に、2番目の通知が最初の通知を重ね書きすることはありません。 DBCHWATを呼び出すと、ポスティングのリストが空になるまで、毎回応答の到着通知が得られます。
また、アプリケーションに応答の到着を通知した後は、DBCHWATはそのポスティングの情報を保存しません。例えば、2つのリクエストが完了し、アプリケーションでDBCHWATを3回呼び出した場合には、DBCHWATを3回目に呼び出したときに、「nothing pending(保留なし)」が返されます。
多重スレッドのWindows CLIを導入すると、多重スレッド アプリケーションに対するDBCHWATのWindowsプラットフォームでの適用性が制限されます。 より適用性の高い待機関数DBCHWLは各スレッドのセッションのリストを待ちます。DBCHWATは任意のセッションから次に使用可能なリクエストを待ちます。
成功の場合0を返し、それ以外の場合はエラーを返します。