使用MVEl出现NoClassDefFoundError in Drools规则引擎

摘要:在Drools中使用MVEL方式编译执行规则文件,在高并发的情况下会出现NoClassDefFoundError。

解决方案:添加参数设置-Dmvel2.disable.jit=true 禁用MVEL2 JIT。这样设置可能会使服务器的负载增加,比如CPU和Memory。

相关链接

http://jira.codehaus.org/browse/MVEL-213
https://issues.jboss.org/browse/JBRULES-2253

 

Context info: drools engine version is 5.1.1, jdk version is HotSpot 64-Bit 1.6.0_24, mvel version is mvel2-2.1.Beta3.jar, tomcat version is 5.5.23 and it is just one tomcat instance not distributed.

Our test steps:
1) We use 21 sample test parameters one in one which means not under high concurrent thread number. This doesn't reproduce NoClassDefFoundError.
2) Use JMeter to simulate multiple users and if 50/second or 75/second, This doesn't reproduce NoClassDefFoundError.
3) If 100/second or 150/second, definitely reproduce NoClassDefFoundError.

So this issue is related to high concurrent thread number.

Here are two related links:
http://jira.codehaus.org/browse/MVEL-213
https://issues.jboss.org/browse/JBRULES-2253

Although this bug of MVEL(if it is) was fixed after version 2.0.18, it seems still occur in 2.1.Beta3.

转载于:https://www.cnblogs.com/lingdangdie/archive/2012/03/20/2407538.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值