This content has been marked as final. Show 4 replies
A couple of questions.
1) Can you post a snippet of code calling your EntryProcessor? Is it called from Java or C++?
2) In your EntryProcessor, are you able to try the following instead of creating a new ProdState() object.
ProdState prodState = (ProdState) entry.getValue();
// Call setters to change values for prodState.
3) Are you sure you are updating the same key for the ProdState object?
Your EP and CQC look valid enough.
Have you tried replacing the CQC with a near-cache, or even attaching the listener directly to the grids distributed cache? This might help to isolate your issue, as it may be purely CQC related. If all three result in the same issue its much more likely to be the EP.
Perhaps the ContinuousQueryCache constructor is registering the listener in "lite" mode (see method addFilterListener in http://docs.oracle.com/cd/E24290_01/coh.371/e22845/classcoherence_1_1util_1_1_observable_map.html).
To verify, trying explicitly adding a listener using addFilterListener setting "fLite" to false.
It may not be useful as a solution to your problem, in that adding the listener afterwards means you'll miss the events arising from initial population of the CQC, but may at least clarify what's happening.
Thanks for the suggestions - unfortunately I haven't had time to try any of them out so haven't identified the root cause.
We came up with a workaround based on data in our newState object.
As I'm moving on to new development pastures I doubt I'll get chance to look at this problem again but would be interested if anyone solves it.