我想知道EJB 3规范或Weblogic供应商特定方法是否提供有关在本地上下文中调用具有远程声明的无状态EJB(即在同一服务器和同一EAR中调用EJB的类)的性能/开销成本的信息。 我在网上进行了多次搜索,但没有找到完整的答案。 如果EJB被声明为本地,则调用处理是否相同? 因此,不昂贵。还是,调用处理是EJB远程调用的哪一个?因此,更昂贵。 如果您对此问题有参考资料,那就太好了。
启用本地优化是Weblogic特有的设置。请参见: https://docs.oracle.com/cd/E13222_01/wls/docs103/ejb/DDreference-ejb-jar.html#wp1113807 当启用“enable-call-by-reference”时,来自同一EAR文件或独立JAR文件的EJB方法将通过引用传递参数。这可以提高方法调用的性能,因为不需要复制参数。启用按引用调用不完全符合EJB规范,因为您不能再保证远程接口的参数实际上是原始参数的克隆,而可能是原始对象,因此必要时请小心进行防御性拷贝。