Submitting a Request | CLI | 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で、アプリケーション プログラムは以下の処理を行ないます。
  • DBCAREAがこのセッション用に最後に使用されたあとで別のセッション用に使用されていた場合には、このセッションのセッションidを与えます。
  • DBCAREA内のリクエスト バッファおよび応答バッファの長さが最後に設定されたあとで別の長さに設定されて使用されていた場合には、それぞれのバッファの長さに最大値を与えます。
  • Teradata SQLリクエストの長さおよびポインタを供給します。USING修飾子を伴うリクエストとデータの組み合わせは、32Kバッファの場合は32500バイト、64Kバッファの場合は65000バイト、1Mバッファの場合は1048500バイトを超えることはできません。
  • USING修飾子を用いたTeradata SQL文がTeradata SQLリクエストに入っていた場合には、USING修飾子を指すポインタとUSING修飾子のデータを与えます。
  • 処理オプションの設定を変更することができます。
  • 関数コードをDBCFIRQに設定します。
  • DBCHCLを呼び出します。

DBCHCL

リクエストがDBCAREAのセッション識別子フィールドによって指定されたセッションで現在活動状態であれば、以下の処理が行なわれます。
  • MTDP制御ブロックの関数フィールドが、MTDPRETに設定されます。
  • MTDPCBのセッション フィールドおよびリクエスト識別子フィールドが、活動状態のセッションおよびリクエスト識別子に設定されます。
  • waitdataオプションが、DBCAREAのwaitdataオプションのフラグの値に従って設定されます。
  • MTDPが、活動状態のリクエストが完了するのを待つために呼び出されます。

MTDP

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

DBCHCL

活動状態のリクエストが完了したならば、そのリクエストのRCBの状態フラグが処理待ちとしてポストされ、そのリクエストがfetch関数で使用できるようになります。

DBCAREA内の情報を使用して、DBCHCLは以下の処理を行ないます。
  • 新しいリクエスト用にRCBを作成します。
  • 関連付けられたSCBのリクエスト リストの先頭に、作成したRCBを挿入します。
  • setオプションのフラグがYに設定されていれば、関連付けられたセッションのSCBまたはDBCAREAのどちらかの値を、オプション フィールドに入力します。
  • DBCAREA内に指定された長さ、または何も指定されていなければCLI2SPB内に指定されたデフォルトとしての長さに基づいて、リクエスト バッファおよび応答バッファを割り当てます。
  • リクエスト バッファを、以下に示すパーセルを使用してロードします。
    • レコード モード オプションのフラグの値に応じて決まる、Teradata SQLリクエストが入っているReq、FMReq、またはIndicReqパーセル
    • USING修飾子を用いたTeradata SQL文がTeradata SQLリクエストに含まれていた場合には、DataまたはIndicDataパーセル
    • 応答バッファの長さが入っているRespまたはKeepRespパーセル
MTDP制御ブロックで、DBCHCLは以下の処理を行ないます。
  • リクエスト バッファの長さとリクエスト バッファを指すポインタを与えます。
  • 応答バッファの長さと応答バッファを指すポインタを与えます。
  • selfrecovオプションを変更します(必要な場合)。
  • MTDPSTAを、MTDP制御ブロックの関数コードに設定します。
  • リクエストidを割り当てます。
  • MTDPを呼び出します。

MTDP

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

DBCHCL

MTDPから返された値に基づいて、以下の処理が行なわれます。
  • エラー メッセージまたは成功メッセージが生成されて、DBCAREAのメッセージ フィールドの中でアプリケーションに返されます。
  • 論理リクエスト識別子が、DBCAREAのリクエスト副構造体の中に返されます。
  • DBCHCLは、制御をアプリケーションに返します。

アプリケーション

DBCAREAの戻りコードが正常でなければ、アプリケーションは適切な変更を行なって、そのDBCAREAをDBCHCLに再実行依頼します。アプリケーション プログラムがそのDBCAREAを他のリクエストで同時に使用する場合、アプリケーションはそのリクエストIDを保存します。インターフェースは、アプリケーションがTeradata SQL応答を消費できる状態になります。