Products | Versions |
---|---|
TIBCO BusinessEvents Enterprise Edition | - |
Not Applicable | - |
Resolution:
Description:
===========
The following errors are seen in the Inference Agent log.
bwb03.<project>.local Warning [$default.be.mt$.Thread.7] - [kernel.core] [inference-class] Object <be.gen...> already added to the right ObjectTable of JoinNode
[EquivalentJoinNode(2) link(3) stopLoad(true) tables(0L,1R):
Left Identifier = [e];
Right Identifier = [a];
Out Identifier = [e, a];
Condition Identifier = [e, a];
Left Exp Identifier = [e];
Right Exp Identifier = [a];
Join Left Index = 0 ;
Join Right Index = 1 ;
Condition = e.CLIENT_IP == a.CLIENT_IPV4_DATA_Address;(be.gen.Rules....)]
bwb03.<project>.local Warning [$default.be.mt$.Thread.3] - [kernel.core] [inference-class] Object <be.gen...> already added to the right ObjectTable of JoinNode
[EquivalentJoinNode(2) link(3) stopLoad(true) tables(0L,1R):
Left Identifier = [e];
Right Identifier = [a];
Out Identifier = [e, a];
Condition Identifier = [e, a];
Left Exp Identifier = [e];
Right Exp Identifier = [a];
Join Left Index = 0 ;
Join Right Index = 1 ;
Condition = e.CLIENT_IP == a.CLIENT_IPV4_DATA_Address;(be.gen.Rules.*)]
Environment:
===========
BusinessEvents 5.0
All Operating Systems
Symptoms:
=========
Warnings in Inference Agent log (see description)
Cause:
======
Two threads have modified a concept with cache+wm or memory-only mode near-simultaneously and then both try to assert the object into the rete network. It has to be nearly simultaneous or the second modifier will see that the concept is already in the network and remove it before re-asserting, which would avoid the error message.
Resolution:
========
Use locking (Cluster.DataGrid.Lock()) in PrepProcessor RuleFunction to avoid the issue.