DBFERQは、DBCHCLのEnd Request関数です。
DBFERQは、明示的に要求をクローズし、その要求に対する応答を破棄し、その要求に関連付けられている内部データ構造体の割り当てを解除するために使用されます。
どのように機能するか
DBFERQは、次の機能を実行します。
- アプリケーションでオプションの更新を要求していた場合には、オプションの設定/検証ロジックを実行します。
- Keep Responseが設定されていないときにEndRequestパーセルが受け取られた場合には、続行します。
- Keep Responseが設定されているか、そのEndRequestパーセルが受け取られなかった場合には、Cancelパーセルを含んだContinue Requestメッセージを送ります。
- セッションが活動状態であれば、そのセッションが完了するまで待ちます。
- Cancelパーセルを含んだContinue Requestメッセージを送り、完了するまで待ちます。
- 要求文脈を破壊します。
成功する要求の終了操作
要求の終了の正常な処理を行なうためには、以下に示す順序で操作します。
- DBFERQ関数のDBCHCLを呼び出します。
- その戻りコードがゼロであることを確かめます。
DBFERQは、DBFCON、DBFRSUP、およびDBFIRQ関数のDBCHCLを呼び出したときに生成される要求に適用できます。
DBFERQは、Teradata SQLリクエストの応答が破棄されることで、データベース コンピュータのスペースを解放し、CLIの内部バッファの割り当てを解除(クライアントのスペースを解放)します。
アプリケーション プログラムで要求が不要になったときに直ちにDBFERQ関数のDBCHCLを呼び出せば、これらのスペース節約処理を有効に活用することができます。実際に、Keep Responseが'N'に設定された要求が実行依頼され、その応答が消費、あるいはデータベースによって破棄された場合でも、DBFERQのDBCHCLを呼び出せば、(特にIBMのPCクライアントで)スペースの節約効果があります。
DBCHCLは、応答バッファの割り当てを必ず解除します。
DBCHCLは、Open Requestフィールドを使用しません。
読み取りおよび使用され、保存されない値
Wait Across Crash、Tell About Crash、Return time、およびWait For Responseの値は、読み取られて使用されます。ただし、保存されません。
インターフェース
関数: | DBFERQ - End Request |
目的: | 指定した要求の終了/クリーンアップ |
パラメータ: |