有没有一种方法可以停用Weblogic默认用于特定EJB的optimization for collocated objects

编辑:一些上下文:

我们有一个调度程序服务,该服务在群集的一个节点内运行。这是出于历史原因,目前无法更改。

该服务调用EJB,我们希望对这些调用进行负载平衡。不幸的是,由于问题中提到的优化,目前每个调用都在承载调度程序服务的节点上运行。

我当时在考虑编写一个自定义的负载平衡类,但是这种优化似乎是在负载平衡步骤发生之前完成的。

最佳答案

假设您正在尝试调用远程EJB(只能通过诸如Patrick提到的间接技巧来获得本地ejb上的负载平衡),那么您将不得不使用集群的地址而不是特定的服务器来创建一个新的InitialContext。这种新的IC将像您是外国客户一样提供 stub ,并遵循与它们相同的负载平衡策略。

不幸的是,这意味着EJB3注入(inject)将不起作用。您将必须自己进行查找。这是纯粹的推测,您可以从集群IC上获得的那些 stub 是可序列化的。换句话说,可以绑定(bind)它们,然后使用@Resource将它们注入(inject)。

08-28 16:00