We have a system deployed on the following platform:
We have ESB deployments across 4 clustered nodes with the rules deployed in Guvnor on one of the nodes. The clustering is working fine and we can start and stop nodes and messages are rerouted to other nodes just fine; however we're running into an issue with the rules if Guvnor is restarted. If we restart the node containing Guvnor and don't restart the other 3 nodes, once Guvnor is back up, all subsequent messages error out because no rules fire. We're using the Rule Agent configuration via the new change-set xml syntax.
It looks like the problem is in DroolsRuleService.getRuleBaseStateForRuleAgent(final RuleInfo ruleInfo). The KnowledgeAgent is cached using the name of the rule agent properties file as a key. Since this is the string name of properties file its value never changes so the cache is never updated. So in our case, nodes 2, 3, and 4 are still using the cached KnowledgeAgent even though Guvnor has been restarted. We have to restart these nodes to get them to refresh the KnowledgeAgent. Is there any other way of doing this without having to restart the nodes?