В моем приложении для потокового вещания я передаю свои правила слюни, которые имеют вид объекта org.kie.api.KieBase . Конкретная реализация этого интерфейса - org.drools.core.impl.KnowledgeBaseImpl . Затем правило выполняется каждым исполнителем для некоторых данных.
У меня есть возможность обновлять мои правила слюни через определенный промежуток времени путем повторной трансляции нового объекта, и я не сопротивляюсь итакже уничтожает старую широковещательную переменную. В этом случае org.drools.core.impl.KnowledgeBaseImpl объект отбирается из памяти, но объекты ниже не освобождаются и получают увеличение каждый раз, когда я ретранслирую свой объект drool, я наблюдал это с помощью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
Заранее спасибо