我在我的应用程序中使用 InitialContext 来查找远程 EJB。有一些外部系统会通知我一些事件,当发生这种情况时,我将此通知委托(delegate)给适当的远程 EJB。
我一直认为我应该为每组查找创建一个新的 InitialContext(甚至可能在这些之后关闭初始上下文)。在上述情况下,每次查找都是一个 InitialContext 实例。虽然我团队的一些成员不太确定。
所以问题是:
应该缓存 InitialContext 实例吗?如果是,那么我应该让这个实例存活多久,为什么?
最佳答案
请记住,InitialContext 实例不是同步的,因此,如果并发线程访问同一实例,则缓存可能很危险。
可能您已经知道了,但为了以防万一,有效提高远程方法调用过程性能的常见做法是缓存由查找操作获取的 ejb 引用。