java-远程EJB3调用
作者:互联网
是否在同一场景中始终将来自同一应用程序服务器的远程EJB调用优化为本地内存调用,并且是否跳过了数据序列化?
换句话说,即使在同一个容器中部署了两个EJB模块,也始终可以使用远程EJB来实现应用程序组件之间的解耦,这是否有效?我正在使用Glassfish.
另外,如果必须对远程EJB进行运行时查找(直到运行时我才知道EJB的JNDI名称),最好的缓存方法是使用所提供的现有EJB基础结构上尽可能少的开销来缓存调用.由应用服务器提供(因此,没有像Guice这样的附加库,而Glassfish已经提供了).
解决方法:
远程服务的参数语义与本地服务的参数语义不同.由于远程服务具有序列化行为,因此它们实际上具有按值传递的语义(即,复制了参数),而本地服务是标准的Java的按引用传递.这不仅仅是性能方面的考虑,它改变了参数含义.
因此,由于这种语义差异,我认为容器无法像本地容器那样优化对远程EJB接口的调用.
标签:ejb-3-0,java 来源: https://codeday.me/bug/20191210/2101120.html