ここでは、BTEQの処理について説明します。
Teradata Databaseシステム コンポーネントと、入出力処理におけるそれらの役割の詳細については、<Teradata入門、B035-1091>を参照してください。
- バッチまたは対話モードのBTEQセッションで、BTEQコマンドを発行し、SQLリクエストを送信する。
- コールレベル インターフェース(CLI)は、入力されたものをパッケージ化し、メインフレーム接続システムの場合にはTeradata Director Program(TDP)へ送り、ワークステーション接続システムの場合にはマイクロTeradataディレクター プログラム(MTDP: Micro Teradata Director Program)へ送る。
- TDPまたはMTDPは、セッションを確立し、CLIとTeradataサーバー間の通信を管理する。
- Teradataサーバーは、リクエストの構文を解析し、意味を解釈し、アクセス計画を立て、Teradata Databaseにリクエストをディスパッチする。
- Teradata Databaseは、リクエストを処理し、応答メッセージをTDPまたはMTDPに返す。
- TDPまたはMTDPは、応答をアンパッケージ化し、CLIが利用できるようにする。
- CLIは、BTEQが応答を利用できるようにし、BTEQは、その出力を、指定された端末、ファイル、またはプリンタへ送る。
デフォルトでは、BTEQはCLIの構成パラメータwait_across_delayを有効にします。つまり、BTEQがリクエストを送信した後に、クラッシュ、再起動、または低速のデータベースによって応答が遅延している場合に、CLIは制御をBTEQに戻すのを待機します。CLIは、自動再ドライブおよび復旧可能ネットワーク プロトコルの設定に応じて、そのリクエストを自動的に再ドライブします。
これにより、ダウンしているデータベースへのBTEQからのログオン試行がBTEQでハングアップしているように見える可能性があります。ログオンに成功した後にリクエストがBTEQから送信され、そのリクエストの処理中にデータベースがダウンした場合に、同様のハングアップが発生する可能性があります。これは、CLIがそのリクエストの自動的な再ドライブを無制限に試行することが原因です。
対話型モードでは、BTEQのBREAKキー シーケンス(通常はCtrl-C)を使用して、このようなハングアップを停止して、進行中のリクエストを中止するか、またはBTEQを終了することができます。詳しくは入力とアボート リクエストの破棄を参照してください。
BTEQのEXITONDELAYコマンドを使用すると、このようなハングアップの状況を回避できます。CLIの呼び出し時にタイマーが使用され、タイマーが期限切れになると、CLIがプロセス制御をBTEQに返すことようになります。その場合でも、CLIはタイマーの有効期間の間は自動再ドライブ機能を使用して実行できます。
詳しくはEXITONDELAYを参照してください。