リクエストのアボート: 例 - Call-Level Interface Version 2

Teradata® Call-Level Interfaceバージョン2リファレンス - ワークステーション接続システム

Product
Call-Level Interface Version 2
Release Number
17.10
Published
2021年6月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/ttt1608578409164.ditamap
dita:ditavalPath
ja-JP/ttt1608578409164.ditaval
dita:id
B035-2418
Product Category
Teradata Tools and Utilities

例として、セッションが作成されており、上で述べた単一バッファ処理をして巻き戻しをしない場合の例のようにリクエストが始動された場合について考えます。 アプリケーションでリクエストをアボートする場合には、以下の処理を実行しなければなりません。

アプリケーションは、DBCAREA内の関数コードをアボート(DBFABT)に設定して、DBCHCLを呼び出します。

このことは、エンドユーザーがリクエストをアボートする必要がある場合には、Wait For Responseオプションがnoに設定された状態で、以前から保留中のリクエストをアプリケーションによって実行依頼しなければならず、これにより開始応答がデータベースから返される前にアプリケーションが制御権を得られることを意味します。

DBCHCL

DBCHCLは、リクエスト バッファを割り当て、リクエスト バッファのメッセージ本体の部分にAbortパーセルを置きます。 DBCHCLは、セッションIdとリクエストIdをMTDPCBに置き、関数コードをMTDPABOTに設定して、MTDPを呼び出します。

MTDP

MTDPは、Abort Requestメッセージを用意してデータベースに送り、Abort Responseメッセージを待ちます。 MTDPは、そのあとで制御をDBCHCLに返します。

DBCHCL

MTDP制御ブロック内の戻りコードが正常でなければ、DBCHCLは、DBCAREAが指しているエラー メッセージをアプリケーションに返します。 戻りコードが正常であれば、そのリクエストに割り当てられたバッファが空きメモリに返されて、RCBがRCBリストから削除されて空きメモリに返されます。

DBCAREAの戻りコードまたはエラー フラグが正常でなければ、アプリケーション プログラムで、DBCAREAを適切に変更してDBCHCLに再び送ります。