Thank you! Let me check all of them, and let you know about the result. On Mon, May 23, 2016 at 7:52 PM, John Blum <[email protected]> wrote:
> An updated link Spring support for Apache Geode is here... > > > https://spring.io/blog/2016/04/29/spring-data-geode-1-0-0-apache-geode-incubating-m2-released > > Cheers! > > On Mon, May 23, 2016 at 9:48 AM, Udo Kohlmeyer <[email protected]> > wrote: > >> Hi there Ali, >> >> In order to enable subscriptions on the client pool you need to set this >> property on your <pool> settings in your client's cache.xml file. >> >> Can you confirm that you have the following setup. >> >> 1. A running Locator and server(s) >> 2. A region set up on the server >> 3. A configured client using >> 1. Client cache.xml >> 2. the provided Java API >> 3. Using Spring Data Gemfire/Geode as described here >> >> https://spring.io/blog/2015/06/12/spring-data-gemfire-supports-apache-geode >> 4. You have configured the "OperationRegion" on both your server and >> client. >> >> --Udo >> >> On 24/05/2016 2:35 am, Ali Koyuncu wrote: >> >> Udo, hi, >> >> Here new questions come --- I am a newbie to Geode: >> >> >> 1. How to set "subscriptions-enabled=true" on the client pool? How to >> enable subscription? >> 2. Do you have a sample code on events? >> >> Thanks. >> >> On Mon, May 23, 2016 at 7:28 PM, Udo Kohlmeyer <[email protected]> >> wrote: >> >>> Hi there Ali, >>> >>> When you say "it does not fetch any event" do you mean you are >>> inserting/updating data entries on the server and the client does not get >>> notified? Or are you making changes on the client and not being notified? >>> >>> CacheListeners or CacheWriters should fire when you are making your >>> local region (in your case client). >>> >>> In order to have events propagated from the server to the client you >>> need to use "registerInterest" on your client region. This can be turned on: >>> >>> 1. enable subscriptions on your client pool, by setting >>> "subscriptions-enabled=true" >>> 2. On the client region set >>> "operationRegion.registerInterest("ALL_KEYS", >>> InterestResultPolicy.KEYS_VALUES) >>> >>> After this any changes on the server will be propagated to your client. >>> >>> Is this the functionality you are looking for? >>> >>> --Udo >>> On 24/05/2016 2:00 am, Ali Koyuncu wrote: >>> >>> John, >>> >>> My code as as follows: >>> >>> this.listener = new OperationCacheListener(); >>> this.OperationRegion = cache >>> .<String, iEvent>createClientRegionFactory(ClientRegionShortcut.PROXY) >>> .initCacheListeners(new CacheListener[] >>> {this.listener}) >>> .addCacheListener(this.listener) >>> .create(OperationRegionName); >>> >>> >>> where; >>> >>> private Region<String, iEvent> OperationRegion; >>> >>> private ClientCache cache; >>> >>> Despite I registered the listener, it doesn't fetch any event. >>> >>> Is the above code segment true? >>> >>> On Mon, May 23, 2016 at 6:49 PM, John Blum < <[email protected]> >>> [email protected]> wrote: >>> >>>> Hi Ali- >>>> >>>> You need to register the CacheListener on the *Region* in which the >>>> data access operations/entry events (gets/puts/etc) are taking place. E.g. >>>> ... >>>> >>>> ClientRegionFactory operationRegionFactory = >>>> clientCache.createClientRegionFactory(ClientRegionShortcut.PROXY); >>>> >>>> *operationRegionFactory.addCacheListener(new OperationCacheListener());* >>>> operatonRegionFactory. ... >>>> >>>> Region operation = operationRegionFactory.create("Operation"); >>>> >>>> -John >>>> >>>> >>>> On Mon, May 23, 2016 at 1:24 AM, Ali Koyuncu < <[email protected]> >>>> [email protected]> wrote: >>>> >>>>> Dear all, >>>>> >>>>> I created a region named Operation. >>>>> >>>>> What I want to do is to get notified upon creating or updating record >>>>> in this region. >>>>> >>>>> Following are my code segments: >>>>> >>>>> *Listener (named OperationCacheListener):* >>>>> >>>>> public void afterCreate(EntryEvent event) { >>>>> >>>>> iEvent message = (iEvent) event.getNewValue(); >>>>> >>>>> if(message instanceof CmdStartCSS) >>>>> { >>>>> logger.debug("[OperationCacheListener][Command: Start][Key: {}]"); >>>>> >>>>> try { >>>>> CmdStartCSS command = (CmdStartCSS) event.getNewValue(); >>>>> DialManager.getInstance().Start(command); >>>>> } >>>>> catch(Exception e) >>>>> { >>>>> logger.error("[OperationCacheListener][Start][{}][Exception: >>>>> {}]", e.getClass().getSimpleName(), e.getMessage()); >>>>> } >>>>> >>>>> } >>>>> else if(message instanceof CmdStopCSS) >>>>> { >>>>> logger.debug("[OperationCacheListener][Command: Stop][Key: {}]"); >>>>> try { >>>>> DialManager.getInstance().Stop(); >>>>> } catch (Exception e) { >>>>> // >>>>> } >>>>> } >>>>> >>>>> } >>>>> >>>>> public void afterUpdate(EntryEvent event) >>>>> { >>>>> System.err.println("Region entry was updated."); >>>>> } >>>>> >>>>> >>>>> *How I initiate the listener:* >>>>> >>>>> this.listener = new OperationCacheListener(); >>>>> this.OperationRegion = cache >>>>> .<String, >>>>> iEvent>createClientRegionFactory(ClientRegionShortcut.CACHING_PROXY) >>>>> .initCacheListeners(new CacheListener[] >>>>> {this.listener}) >>>>> .create(OperationRegionName); >>>>> >>>>> >>>>> *PROBLEM:* >>>>> >>>>> When I am to create/update a record in this region, my events are not >>>>> triggered. >>>>> >>>>> Could you please check and tell me where I am wrong or missing? (If >>>>> you have a sample code on this matter, I will be glad). >>>>> >>>>> Thank you in advance. >>>>> >>>>> >>>>> -- >>>>> >>>>> Saygılarımla, with my warm regards, >>>>> >>>>> Ali KOYUNCU >>>>> >>>> >>>> >>>> >>>> -- >>>> -John >>>> 503-504-8657 >>>> john.blum10101 (skype) >>>> >>> >>> >>> >>> -- >>> >>> Saygılarımla, with my warm regards, >>> >>> Ali KOYUNCU >>> >>> >>> >> >> >> -- >> >> Saygılarımla, with my warm regards, >> >> Ali KOYUNCU >> >> >> > > > -- > -John > 503-504-8657 > john.blum10101 (skype) > -- Saygılarımla, with my warm regards, Ali KOYUNCU
