缓存初始上下文时,远程查找ejb失败

时间:2012-08-08 21:40:34

标签: caching ejb websphere lookup

我的情况是,在我的Web层中,我进行远程EJB查找并缓存初始上下文。现在,远程EJB部署在WAS集群中。因此,如果远程ejb跨server1,server2和server3部署并让我们第一次说,则缓存指向server1的初始上下文。

此服务器1关闭后,其他服务器仍在运行。但由于初始上下文被缓存,ejb调用失败。

现在简单的解决方案是删除缓存并每次都进行新的查找。但这会降低性能。有没有办法在这里拥有两全其美......可靠性和性能?

1 个答案:

答案 0 :(得分:0)

corbaloc:提供程序URL中的引导程序服务器列表仅在构造InitialContext时使用。在构建上下文期间,客户端获取可以回答该上下文查找的服务器列表,之后仅使用该列表。如果提供程序URL中的引导程序服务器是群集成员,则只要至少有一个群集成员正在运行,InitialContext将继续工作。因此,InitialContext可以安全地缓存。

请注意,如果提供程序URL中的引导程序服务器不是群集成员,而是节点代理程序,则情况会有所不同。在这种情况下,InitialContext引用特定于单个节点代理的上下文,并且当该节点代理关闭时查找将失败。即使在提供者URL中指定了多个节点代理,情况也是如此:在构造InitialContext期间选择了一个节点代理,之后选择不会改变。