我们有一个集群,并部署了一些无状态的ejb会话bean。当前,我们仅在客户端代码中缓存InitialContext对象,并且我有几个问题:
在当前情况下,如果我们调用lookup()以获得副本感知
存根,哪个服务器将返回存根对象,与我们相同的服务器
获取InitialContext,否则它将负载均衡到其他服务器
每次我们调用查找方法?
我们应该只缓存存根吗?线程安全吗?如果是,则存根如何处理来自客户端线程的并发请求?在
并行还是按顺序?
还有一个问题,当我们调用new InitialContext()时,它将需要一个
如果服务器等待很长一段时间,它才能返回超时异常
无法访问,如何为这种情况设置超时?
最佳答案
最好的了解方法是编写一些测试客户端代码。
您可以使用其toString()方法检查存根来自哪个服务器,该方法应该打印一种URL(至少在WebLogic 10上是这样)。您可能会对结果感到惊讶。