流口水对象org.drools.core.definitions.rule.impl.RuleImpl和其他对象的内存泄漏

时间:2018-08-25 10:45:45

标签: java memory-leaks spark-streaming drools kie

在我的Spark Streaming应用程序中,我广播了我的流口水规则,该规则以 org.kie.api.KieBase 对象的形式出现。此接口的具体实现是 org.drools。 core.impl.KnowledgeBaseImpl 。然后,该规则由每个执行者针对某些数据执行。

我具有通过重新广播新对象在特定时间间隔刷新流口水规则的功能,并且我持久存在并销毁了旧的广播变量。在这种情况下, org.drools.core.impl.KnowledgeBaseImpl 对象是从内存中收集的垃圾,但是每次重新广播流口水的对象时,下面的对象都不会释放并增加,我使用jprofiler观察到了这一点,我无法附加屏幕快照,因此给出了一些泄漏的对象。

org.drools.core.definitions.rule.impl.RuleImpl;
org.drools.core.rule.ConsequenceMetaData;
org.drools.core.rule.EvalCondition;
org.drools.core.spi.PatternExtractor;
org.drools.compiler.compiler.io.memory.MemoryFolder;
org.drools.compiler.compiler.io.memory.MemoryPath;
org.drools.compiler.compiler.io.memory.MemoryFile;
org.drools.core.rule.GroupElement;

长期来看,我正面临内存不足的错误。

我们正在使用以下版本的罐子。

kie-api-6.3.0.Final.jar
kie-internal-6.3.0.Final.jar
drools-core-6.3.0.Final.jar
knowledge-api-6.3.0.Final.jar
drools-compiler-6.3.0.Final.jar

预先感谢

0 个答案:

没有答案