二重バッファ処理をして巻き戻しをしない場合 - 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で次のタスクを実行します。
  • 必要な応答のセッションidとリクエストidを提供し、DBFFETに関数コードを設定します。
  • リクエストが移動モードの処理オプション付きで実行依頼された場合には、応答領域の長さと応答領域を指すポインタを与えます。
  • DBCHCLを呼び出します。

DBCHCL

DBCHCLは、DBCAREAのsetオプションのフラグを検査してオプションを調べるときに、DBCAREAまたは指定されたリクエスト用のRCBを使用するかどうかを最初に判定します。 setオプションのフラグがYであればDBCAREAのオプションが使用され、Yでなければ、RCBのオプションが使用されます。 現在の応答バッファが消費されてEndRequestパーセルが受け取られなければ、リクエスト識別子およびセッション識別子、MTDPRET関数、および選択されたオプション領域のwaitdataオプションのフラグの値に応じて設定されたwaitdataオプションを備えたMTDPが呼び出されます。

MTDP

MTDPは、指定されたリクエストが完了したかどうかを調べて、そのリクエストが完了しておらず、waitdataオプションが設定されていた場合には、その前のリクエストに対する応答メッセージが到着するかエラーが発生するまで待ったあとで、制御をDBCHCLに返します。

DBCHCL

障害のため、または待機データ オプションが設定されていなかったためにMTDPが失敗した場合には、DBCHCLはエラー メッセージをアプリケーションに返します。 MTDPが失敗しなかった場合には、活動状態の応答バッファが現在のバッファになり、現在のバッファにEndRequestパーセルが入っていなければ、直前の現在バッファが活動状態のバッファになり、前に述べたように設定されたMTDPCBのセッションおよびリクエストの識別子フィールド、およびMTDPCONTに設定された関数フィールドを備えたMTDPが呼び出されます。

MTDP

MTDPは、Continue Requestメッセージをデータベースに送って、制御をDBCHCLに返します。

DBCHCL

MTDPが異常状態で制御を返した場合には、エラー メッセージがアプリケーションに返されます。 DBCHCLは、リクエストを開始したときにアプリケーションで選択した方法を使用してその次の単位の応答をアプリケーション プログラムで使用できるようにして、制御をアプリケーション プログラムに返します。

アプリケーション

DBCAREAの戻りコードが正常でなければ、上に述べたように、アプリケーションで、MTDP制御ブロックを適切に変更してDBCHCLに再び送ります。 戻りコードが正常であれば、アプリケーション プログラムはその単位の応答を消費します。 多くの場合には、アプリケーション プログラムは、EndRequestパーセルを入手するまで、ほかの単位の応答を処理するために出発点に戻ります。