Should have sent you this Geode document instead of GemFire document, but
they are essentially the same:

http://geode.docs.pivotal.io/docs/developing/events/configure_client_server_event_messaging.html

On Mon, May 23, 2016 at 9:41 AM, Jianxia Chen <[email protected]> wrote:

> Hi Ali,
>
> Here is the document:
>
>
> http://gemfire.docs.pivotal.io/docs-gemfire/latest/developing/events/configure_client_server_event_messaging.html
>
> Thanks,
> Jianxia
>
> On Mon, May 23, 2016 at 9:35 AM, Ali Koyuncu <[email protected]>
> 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]> 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
>>
>
>

Reply via email to