Enterprise Beanのリモートビジネスインタフェースにアクセスすると、同一Java VM内のアクセスであっても、ビジネスメソッドの引数と返却値は値のコピーを転送します。このため、引数の値を呼出し先で変更したり、返却された値を呼出し元で変更しても、呼出し先と呼出し元のコピーされた値には影響を与えません。
これは、IIOP経由でJava VM外からEnterprise Beanにアクセスした場合には、必ずビジネスメソッドの引数と返却値は値のコピーを転送するため、同一Java VMで呼び出した場合とIIOP経由でJava VM外から呼び出した場合の仕様を統一するためです。仕様が統一されるためアプリケーションの汎用性が向上します。
しかし、値のコピーを作成することは、オーバーヘッドが大きく、性能に影響を与えます。転送する値を変更しなければ値の参照を転送しても動作上の差異はありません。
以上より、同一Java VM内でEnterprise Beanのリモートビジネスインタフェースにアクセスした場合、引数と返却値のコピーではなく参照を転送するように変更してメソッドのアクセス性能を改善できます。
参照
本機能の定義詳細については、以下のマニュアルを参照してください。
「4.2.3.1 Interstage application deployment descriptor (sun-application.xml)」の<sun-application><pass-by-reference>タグ
「4.2.3.3 Interstage EJB application deployment descriptor (sun-ejb-jar.xml)」の<ejb><pass-by-reference>タグ