単一バッファ処理をして巻き戻しをする場合 - Call-Level Interface Version 2

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

Product
Call-Level Interface Version 2
Release Number
17.10
Published
2021年6月
ft:locale
ja-JP
ft:lastEdition
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

以下の情報は、要求開始時、アプリケーションで単一バッファ処理が選択され、keep-responseで「Y」が設定されている場合のみ適用されます。ここでは、応答を巻き戻して調べることを選択する場合について説明します。

アプリケーション

アプリケーションは、DBCAREAで次のタスクを実行します。
  • 必要な応答のセッションidとリクエストidを与えます。
  • リクエストが移動モードの処理オプション付きで実行依頼された場合には、応答領域の長さと応答領域を指すポインタを与えます。
  • 関数コードをRewindおよびFetch(DBFREW)に設定します。
  • DBCHCLを呼び出します。

DBCHCL

指定されたセッションが活動状態であれば、以下の処理が行なわれます。
  • 活動状態のリクエスト用のRCBが作成されます。
  • リクエストに対するwaitdataオプションのフラグが、セッション識別子およびリクエスト識別子とともに、MTDPCB内のMTDPに渡されます。
  • MTDPが、リクエストが完了するのを調べるか待つために呼び出されます。

リクエストが正常に完了しなかった場合には、エラー メッセージがアプリケーションに返されます。

現在の応答バッファがリクエストに対する最初の応答バッファであった場合には、バッファ ポインタがそのバッファの先頭に再設定され、DBCHCLは制御をアプリケーションに正常に返します。 KeepRespがリクエストに指定されていなかった場合に応答バッファにEndRequestパーセルが入っていれば、DBCHCLは、応答を巻き戻せないことを示すメッセージを返します。 KeepRespがリクエストに指定されていた場合には、DBCHCLは、RewindパーセルとKeepRespまたはRespのどちらかのパーセル(KeepResp処理オプションの値に応じて決まる)をそのリクエストのリクエスト バッファ内に置き、指定されたリクエストのセッションidとリクエストidをMTDPCBに与え、MTDPCBの関数コードをMTDPCONTに設定して、MTDPを呼び出します。

MTDP

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

DBCHCL

成功または失敗のメッセージがDBCAREAのメッセージ フィールドに生成されて、DBCHCLは制御をアプリケーションに返します。

アプリケーション

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