オブジェクトを永続にしたいことを Java に伝える

ユーザーにパラメーターとして渡されたか、または Java™ メソッドあるいはコンストラクターを呼び出すことによって作成されたか、いずれかの Java オブジェクトに対して、ユーザーが参照を行なう場合で、かつそのオブジェクトをユーザーのネイティブ・メソッドが戻った後も使用したい場合は、Java に対してそのオブジェクトを永続または「グローバル」にしたいということを伝える必要があります。これは、RPG ラッパー・プロシージャー getNewGlobalRef を呼び出し、結果をグローバル変数に保管することによって行ないます。
EVAL   globalString = getNewGlobalRef (JNIENV_P : string);

図 1 に、getNewGlobalRef のサンプル・ソース・コードを示します。

図 1. getNewGlobalRef のソース・コード
/*------------------------------------------------------*/
/* getNewGlobalRef                                      */
/*------------------------------------------------------*/
P getNewGlobalRef...
P                 B                    EXPORT
D getNewGlobalRef...
D                 PI              O    CLASS(*JAVA
D                                          : 'java.lang.Object')
D   env                           *    VALUE
D   localRef                      O    CLASS(*JAVA
D                                          : 'java.lang.Object')
D                                      VALUE

 /free
     jniEnv_P = env;
     return NewGlobalRef (env : localRef);
 /end-free
P getNewGlobalRef...
P                 E
注: このラッパーを呼び出すには、JNI 環境ポインター (下記の JNI 環境ポインターの入手で説明) が必要です。