跨war到ejb jar的Weblogic WorkManager策略
我有一个servlet,它使用defaultWM for Weblogic。这个servlet依次调用ejb。此ejb与不同的WM(WM_ejb)关联。我想知道的是,当通过servlet处理线程时,servlet是否使用defaultWM,然后将相同的WM上下文传递给ejb调用?还是有开关 i、 e跨war到ejb jar的Weblogic WorkManager策略,weblogic,workmanagers,Weblogic,Workmanagers,我有一个servlet,它使用defaultWM for Weblogic。这个servlet依次调用ejb。此ejb与不同的WM(WM_ejb)关联。我想知道的是,当通过servlet处理线程时,servlet是否使用defaultWM,然后将相同的WM上下文传递给ejb调用?还是有开关 i、 e 对ServletA的外部请求——ServletA配置了DefaultWM ServletA处理请求和调用EJB.helloWorld() helloWOrld()是用WM_EJB workmanag
很抱歉,如果这是在其他地方回答的,我找不到WM流的答案。我一直在对此进行调查,我的回答是Weblogic*将从DefaultWM切换到组件的工作管理器,如果定义了EJB\u WM* 请记住,执行线程保持不变——因此,一旦请求传入,相同的线程将执行servlet,然后执行EJB 在我的示例应用程序中,我对index.jsp发出50个并发调用,而在
weblogic ejb jar.xml
中,我仅为ejb定义了此约束
<work-manager>
<name>WorkManagerA</name>
<max-threads-constraint>
<name>MyMaxThreadCount</name>
<count>1</count>
</max-threads-constraint>
</work-manager>
现在再看一些日志语句
Calling EJB from index.jsp 1317985368088[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)'
Start EJB 1317985368088[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)'
end EJB 1317985368088[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)'
Calling EJB from index.jsp 1317985368088[ACTIVE] ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'
Start EJB 1317985368104[ACTIVE] ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'
end EJB 1317985368104[ACTIVE] ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'
正如时间戳(System.currentTimeMillis())所示,index.jsp同时被线程6和8调用,但是
名为“Start EJB”和“end EJB”的System.out.println语句对于线程6和8具有不同的时间戳。它们来自EJB内部
这表明EJB WorkManager正在执行将并行线程计数限制为每次仅1的任务
Calling EJB from index.jsp 1317985368088[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)'
Start EJB 1317985368088[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)'
end EJB 1317985368088[ACTIVE] ExecuteThread: '6' for queue: 'weblogic.kernel.Default (self-tuning)'
Calling EJB from index.jsp 1317985368088[ACTIVE] ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'
Start EJB 1317985368104[ACTIVE] ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'
end EJB 1317985368104[ACTIVE] ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'