SQL 解説書

アプリケーション制御の分散作業単位の接続管理

アプリケーション制御の分散作業単位では、タイプ 2 の接続を使用します。 タイプ 2 の接続は、 指定されたアプリケーション・サーバーにアプリケーション・プロセスを接続し、 アプリケーション制御の分散作業単位のための規則を確立します。

アプリケーション・プロセスと接続状態の概要

タイプ 2 のアプリケーション・プロセスは、常に以下の状態になっています。

アプリケーション・プロセスの各接続は、 その接続のアプリケーション・サーバーのデータベース別名によって、一意に識別されます。

個々の接続の状態は、常に以下の中のいずれか 1 つになっています。

初期状態および状態遷移

タイプ 2 のアプリケーション・プロセスは当初、 未接続状態 であり、接続はありません。

初期の接続は、 現行保留状態 です。

状態の移行する様子を次の図に示します。

図 6. アプリケーション制御の分散作業単位とアプリケーション・プロセスの接続状態遷移

sqls0duw

アプリケーション・プロセスの接続状態

明示的または暗黙の CONNECT ステートメントの実行により、 種々のアプリケーション・サーバーを確立することができます。 10 以下の規則が適用されます。

アプリケーション・プロセスに現行の接続がある場合、 アプリケーション・プロセスは接続済み 状態です。 CURRENT SERVER 特殊レジスターに、 現行の接続のアプリケーション・サーバーの名前が入れられています。 アプリケーション・プロセスは、 アプリケーション・サーバーによって管理されるオブジェクトを参照する SQL ステートメントを実行できます。

未接続状態のアプリケーション・プロセスは、 CONNECT または SET CONNECTION ステートメントが正常に実行されたときに、 接続済み状態に移行します。 アプリケーションに接続がなく、SQL ステートメントが発行された場合に、 DB2DBDFT 環境変数がデフォルトのデータベースで定義されているなら、 暗黙の接続が行われます。

アプリケーション・プロセスに現行の接続がない場合、 アプリケーション・プロセスは未接続 状態です。 実行できる SQL ステートメントは、CONNECT、 DISCONNECT ALL、 データベースを指定した DISCONNECT、 SET CONNECTION、 RELEASE、COMMIT、 および ROLLBACK だけです。

接続状態 のアプリケーション・プロセスは、 現行の接続が意図的に終了された場合、 またはアプリケーション・サーバーでのロールバック操作を引き起こして、 接続が失われることになるような障害のために SQL ステートメントが正常に実行されなかった場合、 未接続状態 に移行します。 接続が解放保留状態 のときに、 DISCONNECT ステートメントが正常に実行された場合、 またはコミット操作が正常に実行された場合、接続は意図的に終了させられます。 意図的な接続終了の動作は、 DISCONNECT プリコンパイラー・オプションで指定される各種のオプションの影響を受けます。 それが AUTOMATIC に設定されている場合は、すべての接続が終了します。 CONDITIONAL に設定されている場合は、 オープンされている WITH HOLD カーソルのない接続がすべて終了します。

接続状態

アプリケーション・プロセスが CONNECT ステートメントを実行し、 サーバー名がアプリケーション・リクエスターに認識され、 かつ、そのサーバー名がそのアプリケーション・プロセスの既存の一連の接続にない場合は、 以下のようになります。

サーバー名がすでにアプリケーション・プロセスの既存の接続の集合に含まれている場合に、 アプリケーションを SQLRULES(STD) オプション付きでプリコンパイルすると、 エラー (SQLSTATE 08002) になります。

接続の終了時

接続が終了すると、アプリケーション・プロセスが接続によって獲得していたすべての資源、 および接続を確立し維持するために使用されたすべての資源が割り振り解除されます。 たとえば、アプリケーション・プロセスが RELEASE ステートメントを実行すると、 その次のコミット操作で接続が終了するときにオープンしているカーソルがすべてクローズされます。

接続は、通信の障害によっても終了することがあります。 終了する接続が現行の接続であった場合、 アプリケーション・プロセスは未接続状態に移行します。

アプリケーション・プロセスが終了すると、そのプロセスのすべての接続が終了します。


脚注:

10
タイプ 2 の暗黙接続は、タイプ 1 よりも制限が厳しくなります。 詳細については、CONNECT (タイプ 2)を参照してください。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]