EAP 6 で EJB の pass-by-reference を行う方法
Issue
-
EAR 1 の EJB A が EAR 2 の EJB B を呼び出しています。呼び出しは機能しますが、シリアル化/デシリアル化が原因でパフォーマンスの問題が発生します。このオーバーヘッドを回避する方法は?
-
JBoss ejb3 サブシステムに以下のオプションを設定しました。しかし、ejb インターフェースと転送オブジェクトをパッケージングする 2 つの ear をテストすると
ClassCastExceptionが発生します。JBoss ではクラスローダーが同じである場合に限りpass-by-referenceを使用できるのでしょうか?<subsystem xmlns="urn:jboss:domain:ejb3:1.3"> ... <in-vm-remote-interface-invocation pass-by-value="false"/> </subsystem>以下に示すように、EJB 呼び出しにて渡された List からオブジェクトを読み込もうとすると
ClassCastExceptionが発生します。public TransferReturnValue hellos ( List<TransferParameter> params ) { for(TransferParameter param : params) { // ここで ClassCastException が投げられる log.info("received param:" + param.getValue()); } return new TransferReturnValue ( "Hello " + params ); } -
JBoss のデフォルトのメカニズムは
pass-by-referenceとpass-by-valueのどちらを使用していますか? -
どのようなシナリオで
pass-by-referenceを使用すべきでしょうか?
Environment
- Red Hat JBoss Enterprise Application Platform (EAP)
- 6.x
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
