JBOSS 6.1在同时调用有状态bean时运行EJB 3.1性能问题

时间:2013-06-20 15:20:03

标签: jboss ejb javabeans stateful

将大型服务器应用程序从运行EJB 3.0的JBOSS 4.0.5迁移到运行EJB 3.1的JBOSS 6.1.0后,我注意到当并发(100+)访问有状态bean和方法时,响应时间一致增加调用

在几个测试中,方法调用的平均响应时间在旧环境中大约是几毫秒,而在较新版本上,在相同系统上平均值大约为数百,所有内容都在本地运行,因此排除了网络问题。 (主要是setter)(SFB查找在本地完成)

如何进一步调查导致这种情况的原因?

1 个答案:

答案 0 :(得分:0)

我的想法

有状态会话Bean的生命周期

  

http://docs.oracle.com/javaee/6/tutorial/doc/giplj.html#gipln

在Jboss中,如果缓存变得太满或bean太旧,Bean会从Ready状态转为Passive状态。

  

http://docs.jboss.org/ejb3/docs/reference/1.0.7/html/SessionBean_and_MDB_configuration.html

我认为“完全缓存”可能是导致响应延迟的原因之一,因为它会开始钝化有状态会话bean。确认这一点的一种方法是将调试日志添加到有状态会话Bean中的PrePassivate回调函数,并逐渐强调应用程序观察行为。