Sun Java System Application Server Enterprise Edition 8.2 アップグレードと移行

pass-by-reference 要素

Sun Java System Application Server 8.2 は、デフォルトで Java 2 Platform, Enterprise Edition 仕様と互換性があります。この場合、移植性のあるすべての J2EE プログラムは、変更なしで Application Server 上で実行できます。ただし、J2EE の互換性要件で許可されている内容に従って、J2EE 仕様と互換性がない Sun Java System Application Server 8.2 の機能を使用するようにアプリケーションを設定することもできます。

sun-ejb-jar.xml ファイル内の pass-by-reference 要素は、リモート呼び出しのみに適用されます。EJB 2.0 仕様、セクション 5.4 で定義されているように、ローカルインタフェースへの呼び出しは pass-by-reference (参照渡し) のセマンティクスを使用します。

pass-by-reference 要素のデフォルト値が false に設定されている場合、リモートインタフェースへの呼び出しのセマンティクスを渡すパラメータは、EJB 2.0 仕様、セクション 5.4 に準拠します。true に設定されている場合、この仕様とは逆に、リモート呼び出しでは pass-by-value (値渡し) のセマンティクスではなく pass-by-reference (参照渡し) のセマンティクスが必要になります。

移植性のあるプログラムでは、このような呼び出しのときにオブジェクトのコピーが作成されることは想定できないので、元のオブジェクトを変更しても安全です。コピーが作成されないことも想定できないので、オブジェクトへの変更は、呼び出し元と呼び出し先の両方に表示されます。このフラグが true に設定されている場合、パラメータと戻り値は読み取り専用であると見なされます。このようなパラメータや戻り値を変更するプログラムの動作は定義されていません。pass-by-reference 要素の詳細については、『Sun Java System Application Server Enterprise Edition 8.2 Developer’s Guide 』を参照してください。