No Rewinding, Single Buffering | Analytics Database (SQL Engine) - 単一バッファ処理をして巻き戻しをしない場合 - Call-Level Interface Version 2

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

Product
Call-Level Interface Version 2
Release Number
17.20
Published
2022年10月10日
Language
日本語
Last Update
2022-11-21
dita:mapPath
ja-JP/zws1641280432166.ditamap
dita:ditavalPath
ja-JP/obe1474387269547.ditaval
dita:id
B035-2418
Product Category
Teradata Tools and Utilities
以下に、リクエストを開始したときにアプリケーションで単一バッファ処理を選択し、現在は応答を巻き戻さずに見ることを選択している場合について説明します。

アプリケーション

DBCAREAで、アプリケーションは、データを取り出す必要のあるリクエストのセッションidとリクエストidを与え、関数コードをDBFFETに設定します。

リクエストが移動モードの処理オプション付きで実行依頼された場合には、アプリケーション プログラムは、応答領域の長さと応答領域を指すポインタもDBCAREAに与えなければなりません。次に、DBCHCLが取り出しを実行するために呼び出されます。

DBCHCL

DBCHCLは、指定されたリクエストのRCBのオプションのフラグ、またはDBCAREAのsetオプションのフラグが設定されているかどうかを最初に判定します。 setオプションのフラグがYであればDBCAREAのオプションが使用され、Yでなければ、RCB内のオプションが使用されます。

その次の単位の応答が応答バッファ内にない場合には、DBCHCLは以下の処理を行ないます。
  • 指定されたリクエストのセッション識別子とリクエスト識別子をMTDPCBに与えます。
  • RespまたはKeepRespパーセルを作成することによって、続きのリクエストをそのリクエストのためのリクエスト バッファに作成します。
  • MTDPCBの関数コードをMTDPCONTに設定します。
  • MTDPを呼び出します。

MTDP

MTDPは、Continue Requestメッセージをデータベースに送信します。 MTDPは、そのあとで制御をDBCHCLに返します。

DBCHCL

指定したたリクエストがアクティブな場合、DBCHCLは次のタスクを実行します。
  • 活動状態のリクエストのセッションidとリクエストidを、MTDPCBに与えます。
  • 入力オプションのwaitdata値に応じて、waitdataオプションのフラグを設定します。
  • 関数コードをMTDPRETに設定します。
  • MTDPを呼び出します。

MTDP

MTDPは、リクエストが完了したかどうかを調べて、waitdataがTRUEであれば、その前のリクエストに対する応答メッセージが到着するかエラーが発生するまで待ったあとで、制御をDBCHCLに返します。

DBCHCL

MTDPに対して以前に実行されたすべての呼び出しが正常に返された場合には、DBCHCLはバッファのオーバーフローを調べます。オーバーフローが見つかれば、バッファはさらに大きな応答を収容できるように増やされて、リクエストが続行されます。 DBCHCLは、その次のパーセルを見つけ出して、応答バッファ内を指すポインタによって、それをアプリケーションに返すか、または移動モードが指定されていれば、アプリケーションによって提供され、DBCAREAのデータ フィールドとしてポインタで指し示されたバッファ内にそのパーセルをコピーして、そのパーセルをアプリケーションに返すことによって、その次の単位の応答をアプリケーション プログラムで使用できるようにします。

アプリケーション

DBCAREAの戻りコードまたはエラー フラグが正常でない場合、アプリケーションは適切な変更を行って、MTDP制御ブロックをDBCHCLに再実行依頼します。それ以外の場合、アプリケーションはその単位の応答を消費します。通常、アプリケーションはEndRequestパーセルを取得するまで、ループ バックして別の単位の応答を処理します。