Drool with Wildfly在负载下没有响应

时间:2019-09-14 14:03:12

标签: wildfly drools rule-engine

我已经用Wildfly 15.0(jboss)服务器版本设置了Drool规则引擎7.15。通常,它工作正常。但是,当规则引擎的负载更多时,即同时发出更多请求。它停止响应,直到再次部署规则。 这可能是Wildfly容器的问题。在这方面可以帮助任何人。

-ram

2 个答案:

答案 0 :(得分:0)

亲爱的安东·吉尔特利

我正在使用“ wildfly-17.0.0.Final”服务器并部署了“ kie-server-7.17.0.0.war”,与此同时,我的应用程序代码也部署了“ kie-builder.war”。现在,我还部署了10条规则。当我用有效的jSON向服务器“ http://localhost:8080/kie-server/services/rest/server/containers/instances/RRTRULE”发出很少的请求时,一切正常。它返回所应用的规则的预期结果。

但是

  • 当我快速连续点击大约20 个相同的网址

    规则引擎停止响应,直到我重新启动服务器或再次部署规则。是否有任何配置可以阻止此API调用超过20次。

它给出以下日志:-

12:09:33,446信息[org.apache.activemq.audit.base](线程15(ActiveMQ-remoting-threads-ActiveMQServerImpl :: serverUUID = f5b54bf7-da0d-11e9-8113-c8d3ffe781b3-1841659077))AMQ601267 :匿名用户正在目标资源ActiveMQServerImpl :: serverUUID = f5b54bf7-da0d-11e9-8113-c8d3ffe781b3中创建核心会话[参数:[3d9b4ea8-daa8-11e9-9773-c8d3ffe781b3,d172f474-d677-475b-9601919-d86 ****,102400,RemotingConnectionImpl [ID = 3d99ef16-daa8-11e9-9773-c8d3ffe781b3,clientID = null,nodeID = f5b54bf7-da0d-11e9-8113-c8d3ffe781b3,transportConnection = InVMConnection [serverID = 0,id = 3d99ef16-daa8 -11e9-9773-c8d3ffe781b3]],false,false,false,true,null,org.apache.activemq.artemis.core.protocol.core.impl.CoreSessionCallback @ 6385727e,true,OperationContextImpl [646439018] [minimalStore = 9223372036854775807, storeLineUp = 0,stored = 0,minimumReplicated = 9223372036854775807,replicationLineUp = 0,replicated = 0,paged = 0,minimumPage = 9223372036854775807,pageLineUp = 0,errorCode = -1,err orMessage = null,executorsPending = 0,executor = OrderedExecutor(tasks = [])],{}]] 12:09:59,267 INFO [stdout](默认任务1)rule_MP_Refund,然后提取97 12:10:00,936 INFO [stdout](默认任务1)rule_MP_Refund,然后提取97 12:10:01,925 INFO [stdout](默认任务1)rule_MP_Refund,然后提取97 12:10:02,906 INFO [stdout](默认任务1)rule_MP_Refund,然后提取97 12:10:03,854 INFO [stdout](默认任务1)rule_MP_Refund,然后提取97 12:10:04,733 INFO [stdout](默认任务1)rule_MP_Refund,然后提取97 12:10:05,905 INFO [stdout](默认任务1)rule_MP_Refund,然后提取97 12:10:06,905 INFO [stdout](默认任务1)rule_MP_Refund,然后提取97 12:10:08,025 INFO [stdout](默认任务1)rule_MP_Refund,然后提取97 12:10:09,007 INFO [stdout](默认任务1)rule_MP_Refund,然后提取97 12:10:10,221 INFO [stdout](默认任务1)rule_MP_Refund,然后提取97 12:10:11,231信息[stdout](默认任务1)rule_MP_Refund,然后提取97 12:10:12,155 INFO [stdout](默认任务1)rule_MP_Refund,然后提取97 12:10:13,208 INFO [stdout](默认任务1)rule_MP_Refund,然后提取97 12:10:14,151 INFO [stdout](默认任务1)rule_MP_Refund,然后提取97 12:10:15,101 INFO [stdout](默认任务1)rule_MP_Refund,然后提取97 12:10:16,191 INFO [stdout](默认任务1)rule_MP_Refund,然后提取97 12:10:17,173 INFO [stdout](默认任务1)rule_MP_Refund,然后提取97 12:10:18,103 INFO [stdout](默认任务1)rule_MP_Refund,然后提取97 12:10:18,142警告[org.drools.core.rule.constraint.MvelConstraint](drools-worker-2)异常扩展:$ rm.getReturnScore()> =(0.0)|| 0 == 0.0这不是错误,也不会阻止正确执行,因为约束将在解释模式下求值 12:10:18,143警告[org.drools.core.rule.constraint.MvelConstraint](drools-worker-1)异常扩展:$ rm.getReturnScore()<=(0.0)|| 0 == 0.0这不是错误,也不会阻止正确执行,因为约束将在解释模式下求值 12:10:18,143警告[org.drools.core.rule.constraint.MvelConstraint](drools-worker-3)异常扩展:$ rm.getDiscount()<=(0.0)|| 0 == 0.0这不是错误,也不会阻止正确执行,因为约束将在解释模式下求值 12:10:18,143警告[org.drools.core.rule.constraint.MvelConstraint](drools-worker-4)异常扩展:$ rm.getDiscount()> =(0.0)|| 0 == 0.0这不是错误,也不会阻止正确执行,因为约束将在解释模式下求值 12:10:18,155警告[org.drools.core.rule.constraint.MvelConstraint](drools-worker-1)异常扩展:$ rm.getPrice()<=(0.0)|| 0 == 0.0这不是错误,也不会阻止正确执行,因为约束将在解释模式下求值 12:10:18,155警告[org.drools.core.rule.constraint.MvelConstraint](drools-worker-3)异常扩展:$ rm.getPrice()> =(0.0)|| 0 == 0.0这不是错误,也不会阻止正确执行,因为约束将在解释模式下求值 12:10:18,151警告[org.drools.core.rule.constraint.MvelConstraint](drools-worker-2)异常扩展:$ rm.getPrice()> =(10000.0)|| 0 == 10000.0这不是错误,也不会阻止正确执行,因为约束将在解释模式下评估

答案 1 :(得分:0)

!此问题已解决(继Disable JIT in Drools 6.2 with Java 8之后)

1)添加jvm属性(-Ddrools.jittingThreshold = -1)以在规则执行期间停止JIT编译器。 2)此外,我们看到'.contains()'正在创建问题并将其更改为'contains'也可以在.drt文件中解决此问题。

((((“ @ {pincode}”)。split(“,”))。contains($ rm.getPincode())||“ ”。equals(“ @ {pincode}”))),                  变成 :- ((((“ @ {pincode}”)。split(“,”))包含($ rm.getPincode())||“ ”。equals(“ @ {pincode}”))),