2008-09-30 64 views
4

有没有办法可以取消激活默认情况下Weblogic为特定EJB使用的optimization for collocated objects取消激活并置对象的Weblogic负载平衡优化

编辑:一些背景:

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

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

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

+0

你有解决这个问题吗?是否可以停用或定制WebLogic对并置对象的优化? – XpiritO 2010-01-06 09:26:14

回答

0

不太熟悉weblogic的胆量,但阅读他们的材料我会说你不能,没有一定的欺骗。

看起来您可以将JMS(MDB)外观置于您的EJB之前,而不遵守并置对象优化。

OR

如果调度基于servlet,你应该能够把它在容器内的单独的Web应用程序部署和有它执行到EJB集群呼叫。

0

集群中有多少个节点?您是否考虑过将EJB部署到除调度程序服务已部署到的节点以外的其他节点?

1

假设您试图调用远程EJB(本地ejbs上的负载平衡只能通过Patrick提到的间接技巧获得),您必须使用集群的地址而不是特定的服务器创建新的InitialContext 。这款新IC将提供存根,就像您是外国客户一样,但要遵守相同的负载平衡策略。

不幸的是,这意味着EJB3注入将无法正常工作。你必须自己做查找。有一个机会,这是纯粹的推测,你可以从集群IC获得的那些存根是可序列化的。换句话说,可能会绑定它们,然后使用@Resource注入它们。

+0

这不起作用。更确切地说,如果我们用像这样的节点的地址(t3:// node1,node2,node3)构建新的InitialContext,weblogic仍然会优化呼叫 – Michel 2010-10-20 14:08:54