Establishing a Session | 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
セッションにログオンする前に、以下のファイル内のCOPのエントリをチェックします。
  • UNIXシステムでは、/etc/hostsです。
  • Windowsシステムでは、%windir%\system32\drivers\etc\hostsです。

DNS(Distributed Name Service)が有効になっている場合は、これらのファイルが適切なDNSサーバーに置かれます。

データベースに、接続できる4つのCOPがある場合は、hostsファイル内のCOPエントリは次のようになります。

[IP address of NODE1] NODENAMEcop1
[IP address of NODE2] NODENAMEcop2
[IP address of NODE3] NODENAMEcop3
[IP address of NODE4] NODENAMEcop4
NODENAMEは、すべてのノードに対して同じである必要があります。

CLIは、COPエントリがcop1、cop2、cop3...、cop100のように連続的であることを想定します。環境変数が設定されている場合、同変数で指定された値に到達するまで、CLIはCOP接続を続けます。

例:

[IP address of NODE1] NODENAMEcop1
[IP address of NODE2] NODENAMEcop2
[IP address of NODE5] NODENAMEcop5
[IP address of NODE6] NODENAMEcop6

この例では、CLIはNODE5とNODE6を無視し、要求されたすべてのセッションをNODE1とNODE2に接続します。マシン(NODENAME)名と同じ名前の環境変数に、そのマシンで利用可能なCOPの数を指定することによって、ログオン プロセスのパフォーマンスを向上させることができます。上記の例で、最初のCONNECTリクエストを開始する前に、値が3である環境変数NODENAMEが存在している場合、CLIは最初の3つのノードに対してのみ接続を試行します。上記の例で、最初のCONNECTリクエストを開始する前に、値が3である環境変数NODENAMEが存在している場合、CLIは最初の3つのノードに対してのみ接続を試行します。ただし、値が7である環境変数NODENAMEが存在している場合、CLIは利用可能なすべてのノード(この場合はNODE1、NODE2、NODE5、NODE6)への接続を試行します。

  • NODENAME=x環境変数は、大文字にする必要があります。
  • COPの名前の書式はdbcnameCOPnです。dbcnameの最初の1文字はアルファベット文字にする必要があります。 残りの文字はアルファベット文字、数字のどちらでも構いません。
セッションを確立する前に、以下のファイル内のTeradataサービス エントリをチェックします。
  • UNIXシステムでは、/etc/servicesです。

このファイルには、以下のエントリが含まれている必要があります。

tdmst 1025/tcp

あるノードのゲートウェイ サービスが1025以外のポートでリスニングするように構成されている場合は、これらのエントリを修正して、ゲートウェイがリスニングしているポートを反映させる必要があります。 デフォルトのtdmstポート(1025)を変更する別の方法として、環境変数TDMSTPORTに適切なポートを設定することもできます。 CLIとゲートウェイでは、通信に同じポートを使用する必要があります。

DBCAREAで、アプリケーション プログラムは、ログオン文字列を指すポインタ、ログオン文字列の長さ、および任意選択で、実行文字列(パーティション名)を指すポインタおよび実行文字列の長さを与えます。 アプリケーション プログラムは、リクエスト バッファと応答バッファの最大の長さをDBCAREAに与えます。 任意選択で、アプリケーション プログラムはDBCAREA内の処理オプションを変更します。 次にアプリケーション プログラムは、DBCAREA内の関数コードをDBFCONに設定して、DBCHCLを呼び出します。

DBCHCL

DBCHCLは、CLI2SCBを取得して初期設定します。アプリケーションでDBCAREA内のオプション値を使用するように指定した場合には、そのオプションがDBCAREAからシステム制御ブロック(SCB)にコピーされます。そのように指定しなかった場合には、オプションはシステム パラメータ ブロック(SPB)からコピーされます。リクエスト制御ブロック(RCB)が、その後で割り当てられて、ログオン シーケンス用に初期設定されます。アプリケーションでは、リクエストまたはセッションの始動時にアプリケーション自体で使用するためのトークン識別子を与えることができます。DBCAREA内のこの識別子のフィールドの値は、ログオンRCBにコピーされて、ログオン リクエストが参照されたときには必ず返されます。

DBCHCLは、リクエスト バッファおよび応答バッファを取得して初期設定します。DBCHCLは、LogonパーセルおよびRun(またはConnect)パーセルをリクエスト バッファ内に用意します。リクエストは、MTDPに送られます。

MTDP

MTDPは、セッションが割り当てられたCOPのアドレスをデータベースから入手してそのCOPに接続し、データベース コンピュータにログオンして、要求されたパーティションに接続します。MTDPは、そのあとで制御をDBCHCLに返します。

DBCHCL

MTDPでの接続が成功して、データ待機オプションのフラグがYに設定されていた場合には、MTDPが再び呼び出されてログオン応答を受け取るまで待ちます。 何かのイベントが発生すると、エラー メッセージまたは成功メッセージがDBCAREAのメッセージ フィールド内に生成され、DBCHCLは制御をアプリケーション プログラムに返します。

アプリケーション

DBCAREAの戻りコードが正常でなければ、アプリケーションで、DBCAREAを適切に変更してDBCHCLに再び送ります。 アプリケーション プログラムで複数のセッションを同時に実行させる予定があれば、DBCAREA内のセッションidを保存します。

これで、インターフェースが始動リクエストまたは標準のTeradata SQLリクエストの実行依頼を受け入れる準備が整いました。