ページの先頭行へ戻る
 Apcoordinatorユーザーズガイド
FUJITSU Software

27.2.6 値渡しと参照渡しの違い

EJBクライアントとセションBean間のオブジェクトの受け渡し方法には、値渡しと参照渡しがあります。

値渡し

オブジェクトのコピーが渡されます。

参照渡し

オブジェクトがコピーされずに渡されます。


リモートビジネスインタフェース経由の呼び出しでは値渡し、ローカルビジネスインタフェース経由の呼び出しでは参照渡しとなります。

参照

Interstageは、リモートビジネスインタフェース経由の呼び出しで参照渡しを利用することが可能です。詳細は、Interstage Application Serverチューニングガイドの「EJBコンテナのチューニング」を参照してください。

Apcoordinatorを利用している場合、以下のオブジェクトがEJBクライアントとセションBeanの間で受け渡されます。これらが値渡しとなるか参照渡しとなるかは、上記の仕様にしたがいます。

値渡しと参照渡しで、以下の動作に違いがあります。

EJBクライアントがWebアプリケーションの場合、以下のオブジェクトは複数のHTTPリクエストで共有されます。

参照渡しの場合、Webアプリケーションが上記のオブジェクトをセションBeanに渡し、セションBeanがそのオブジェクトを書き換えている途中で別のHTTPリクエストが発生すると、書き換え途中の状態がWebアプリケーションから参照されます。また、セションBeanの実行中にHTTPリクエストが発生し、Webアプリケーションで上記のオブジェクトを書き換えると、書き換え途中の状態がセションBeanから参照されます。このことが問題となる場合は、排他を考慮したプログラミングが必要です。