Hi Stephen, For enum type, you have to use toString() in the query where clause. select * from /exampleRegion p where p.eStatus.toString() = 'active'
You can find more on this at: https://gemfire.docs.pivotal.io/910/geode/developing/query_select/the_where_clause.html -Anil On Thu, Apr 9, 2020 at 5:12 PM Chell, Stephen <[email protected]> wrote: > Hi Anil, > > Yes, status is an enum type. > tradeAuditAction is a field in the JSON document. > > Regards > Stephen > > ________________________________ > From: Anilkumar Gingade <[email protected]> > Sent: Friday, 10 April 2020 8:53 AM > To: [email protected] <[email protected]> > Subject: Re: Continuous Query problem > > 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]<mailto: > [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]<mailto:[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<http://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 > > Confidential communication > Westpac Banking Corporation (ABN 33 007 457 141, AFSL 233714) > Westpac Institutional Bank is a division of Westpac Banking Corporation >
