永続オブジェクトの使用が終了したことを Java に伝える
グローバル参照を作成した場合で、そのオブジェクトが既に必要ではなくなったことが わかっている場合は、ユーザー側に関しては、このオブジェクトを次回 Java™ が ガーベッジ・コレクションを行なう時点で破棄してよい、ということを Java に 対して伝える必要があります。 (オブジェクトは、グローバル参照の対象でなくなり、かつ Java それ自身の中で他から参照されなくなった場合にのみ、破棄されます。) Java に、ユーザーがもうオブジェクトへの参照を必要としなくなったことを伝えるためには、RPG ラッパー・プロシージャー freeGlobalRef を呼び出します。
CALLP freeGlobalRef (JNIEnv_P : globalString);
図 1 に、freeGlobalRef のサンプル・ソース・コードを示します。
図 1. freeGlobalRef のソース・コード
/*------------------------------------------------------*/
/* freeGlobalRef */
/*------------------------------------------------------*/
P freeGlobalRef...
P B EXPORT
D freeGlobalRef...
D PI
D env * VALUE
D globalRef O CLASS(*JAVA
D : 'java.lang.Object')
D VALUE
/free
jniEnv_P = env;
DeleteGlobalRef (env : globalRef);
/end-free
P freeGlobalRef...
P E
注: このラッパーを呼び出すには、JNI 環境ポインター (下記の JNI 環境ポインターの入手で説明)
が必要です。