4.5 Javaセッションの状態に使用する2層の期間
Javaセッションの状態は2つの層に分けられます。一方の層の期間の方が長く、この中にもう一方の層の期間が含まれます。短い層の期間は以前と同じで、つまり、Javaメソッドを起動すると開始し、JVMが終了すると終了します。長い層の期間は、RDBMSセッションで最初にJavaメソッドを起動すると開始します。このセッションは、RDBMSセッションが終了するか、またはファンクションdbms_java.endsession_and_related_state
のコールによってセッションを明示的に終了するまで続きます。Javaセッションの2種類の期間で構成される、次の2つのPL/SQLファンクションをDBMS_JAVA
パッケージに追加することで、この問題に対応しています。
-
FUNCTION endsession RETURN VARCHAR2;
このファンクションは、以前にJavaを実行したときからRDBMS現行セッションに残っているJavaセッションの状態をすべてクリアします。戻り値は、実行されるアクションを示すメッセージです。
-
FUNCTION endsession_and_related_state RETURN VARCHAR2;
このファンクションは、以前にJavaを実行したときからRDBMS現行セッションに残っているJavaセッションの状態と、Javaの実行に関連するサポート・データ(プロパティの設定や出力仕様など)をすべてクリアします。戻り値は、実行されるアクションを示すメッセージです。
Javaの実行に関連するほとんどの値は、引き続き短い層にあります。JVMを複数起動する場合に役立つ値は、長い層に移動されました。たとえば、dbms_java.set_property
で設定するシステム・プロパティの値や出力リダイレクトの仕様などです。