RELEASE (接続) ステートメント

RELEASE (接続) ステートメントは、1 つまたは複数の接続を解放ペンディング状態にします。

呼び出し

対話式 SQL 機能には外見上対話式の実行に見えるインターフェースが用意されている場合がありますが、 このステートメントはアプリケーション・プログラムに組み込むことだけが可能です。 これは、動的に作成できない実行可能ステートメントです。

許可

必要ありません。

構文

Read syntax diagramSkip visual syntax diagramRELEASEserver-name1host-variableCURRENTALLSQL
Notes:
  • 1 Note that an application server named CURRENT or ALL can only be identified by a host variable or a delimited identifier.

説明

server-name または host-variable
server-name (サーバー名) またはその server-name を含む host-variable (ホスト変数) によって、 アプリケーション・サーバーを指定します。

host-variable (ホスト変数) を指定する場合、 それは、長さ属性が 8 以下の文字ストリング変数でなければならず、 標識変数を含めることはできません。 その host-variable に入る server-name は、左揃えにする必要があり、引用符で区切ることはできません。

server-name は、 アプリケーション・サーバーを指定するデータベース別名である点に注意してください。 この名前は、アプリケーション・リクエスターの ローカル・ディレクトリーにリストされている必要があります。

指定されたデータベース別名、またはホスト変数に含まれているデータベース別名は、 そのアプリケーション・プロセスの既存の接続を指定するものでなければなりません。 データベース別名が既存の接続を指定していない場合、エラー (SQLSTATE 08003) になります。

CURRENT
アプリケーション・プロセスの現行接続を指定します。 アプリケーション・プロセスは、接続された状態でなければなりません。 接続されていない場合、エラー (SQLSTATE 08003) になります。
ALL または ALL SQL
アプリケーション・プロセスの既存のすべての接続を指定します。 この形式の RELEASE ステートメントの使用により、 アプリケーション・プロセスの既存のすべての接続が解放ペンディング状態になります。 そのような場合、すべての接続は、次回のコミット操作の過程で破棄されることになります。 ステートメント実行時に接続が存在していない場合でも、エラーまたは警告のメッセージは出されません。

  • 例 1: IBMSTHDB への SQL 接続は、アプリケーションではもはや必要でなくなりました。 以下のステートメントを実行すると、 次のコミット操作の過程でその接続が破棄されることになります。
       EXEC SQL RELEASE IBMSTHDB;
  • 例 2: 現行の接続は、アプリケーションでもはや必要でなくなりました。 以下のステートメントを実行すると、 次のコミット操作の過程でその接続が破棄されることになります。
       EXEC SQL RELEASE CURRENT;
  • 例 3: アプリケーションがコミット後にデータベースにアクセスする必要がなく、 実行はしばらく継続する場合、不必要に接続を続けないようにした方が得策です。 コミット時にすべての接続が破棄されるようにするために、 コミット前に次のステートメントを実行できます。
       EXEC SQL RELEASE ALL;