What is the type of "status" and "tradeAuditAction" fields? Is status enum type?
-Anil On Thu, Apr 9, 2020 at 1:03 PM Jason Huynh <[email protected]> wrote: > Hi Stephen, > > I am not sure how the cq operation is null. I tried to reproduce with a > test (not exactly the same and haven't been able to so far). The queries > themselves look like they should work. When populating the second region, > is the client cq just doing a put back to the server or is it using some > other mechanism to update the region? Is there more than 1 client that is > updating the region (not sure it would matter, just seeing if there is a > chance at a possible version incompatibility). It looks like the server is > on 1.9.2? > > Anyone else with any ideas, please chime in :-) > > -Jason > > > > > > On Wed, Apr 8, 2020 at 11:26 PM Chell, Stephen < > [email protected]> wrote: > >> Hi all, >> >> Has anyone come across the following error before when using continuous >> queries? >> >> java.lang.Throwable: Exception occurred while applying query on a cache >> event. >> at >> org.apache.geode.cache.query.cq.internal.CqEventImpl.setException(CqEventImpl.java:131) >> ~[geode-cq-1.9.2.jar!/:na] >> at >> org.apache.geode.cache.query.cq.internal.CqEventImpl.<init>(CqEventImpl.java:53) >> ~[geode-cq-1.9.2.jar!/:na] >> at >> org.apache.geode.cache.query.cq.internal.CqServiceImpl.dispatchCqListeners(CqServiceImpl.java:960) >> ~[geode-cq-1.9.2.jar!/:na] >> at >> org.apache.geode.internal.cache.tier.sockets.CacheClientUpdater.processCqs(CacheClientUpdater.java:1319) >> [geode-core-1.9.2.jar!/:na] >> at >> org.apache.geode.internal.cache.tier.sockets.CacheClientUpdater.handleUpdate(CacheClientUpdater.java:757) >> [geode-core-1.9.2.jar!/:na] >> at >> org.apache.geode.internal.cache.tier.sockets.CacheClientUpdater.processMessages(CacheClientUpdater.java:1660) >> [geode-core-1.9.2.jar!/:na] >> at >> org.apache.geode.internal.cache.tier.sockets.CacheClientUpdater.run(CacheClientUpdater.java:487) >> [geode-core-1.9.2.jar!/:na] >> >> I have two continuous queries in my app. The first one works, the second >> one doesn't. >> >> The first one is: >> SELECT * from /FM_TRADE_EVENTS WHERE tradeAuditAction <> 'MATURE' >> It fetches JSON documents that have been serialized as PDX. The onEvent >> method in my CqListener implementation is successfully called with events >> that look like: >> CqEvent [CqName=tradeEventListener; base operation=CREATE; cq >> operation=CREATE; key=TRADE-1006; value=PDX[19350515,__GEMFIRE_JSON]{...}] >> (I've replaced the JSON document with ... for brevity.) >> >> The second one selects from a different region: >> SELECT * from /FM_TRADE_EVENTS_STATE WHERE subscriberID = 'MIR' AND >> status.name = 'Pending' >> It fetches objects that were serialized from java POJOs of type >> GemfireEventState (a custom type). The onError method (not onEvent) in my >> CqListener implementation is called with events that look like: >> CqEvent [CqName=tradeEventStateListener; base operation=CREATE; cq >> operation=null; key=TRADE-1006:MIR; >> value=com.westpac.rdp.event.gemfire.GemfireEventState@2b503086 >> [eventKey=TRADE-1006,subscriberID=MIR,status=Pending,errorMessage=<null>]] >> ... and they contain a throwable as above. >> >> It looks like the second query fails because the event has the "cq >> operation" field set to null. The question is why is it null? (In the >> first one both the base operation and cq operation are CREATE). >> >> Another piece of info that may be relevant: the region queried by the >> second CqListener is populated by the first CqListener >> >> Any help would be much appreciated! >> >> Thanks in advance ... >> >> Stephen >> >> Confidential communication >> Westpac Banking Corporation (ABN 33 007 457 141, AFSL 233714) >> Westpac Institutional Bank is a division of Westpac Banking Corporation >> >
