あるセッションに対するすべての処理が完了した後で、アプリケーションはセッションを終了する必要があります。
切断時にトランザクションが進行中の場合(つまり、ETが発行されていない場合)、Teradataサーバーはトランザクションに対して行なわれた作業をすべてロールバックします。
アプリケーション
DBCAREAで、アプリケーションは、終了させるセッションのセッションidを与え、関数コードを切断(DBFDSC)に設定します。そのあとで、DBCHCLを呼び出します。
DBCHCL
DBCHCLは、仮リクエスト(RCBとバッファを含む)を生成します。 DBCHCLは、Logoffパーセルをその仮リクエスト用のリクエスト バッファのメッセージ本体の部分に作成します。 DBCHCLは、次にMTDP制御ブロック内の関数コードをMTDPLOFFに設定して、MTDPを呼び出します。
MTDP
MTDPは、セッションを終了したあとで、制御をDBCHCLに返します。
DBCHCL
切断されたセッションに接続されたすべてのリクエストは、そのリクエストのバッファとRCBの割り当てを解除することによって削除され、次に、関連付けられたSCBが、セッション待ち行列から削除されて空きメモリ プールに返されます。 DBCHCLは、そのあとで成功コードをアプリケーション プログラムに返します。 MTDP制御ブロック内の戻りコードが異常であれば、DBCHCLはエラー メッセージをアプリケーションに返します。
アプリケーション
DBCAREA内の戻りコードが正常でなければ、上に述べたように、アプリケーションで、DBCAREAを適切に変更してDBCHCLに再び送ります。戻りコードが正常であれば、セッションは終了します。