geode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Barry Oglesby <bogle...@pivotal.io>
Subject Re: Async queue mechanism
Date Wed, 01 Jun 2016 16:55:42 GMT
Sure. Its a pretty simple fix. When the xml is parsed, the AEQ's attributes
are set into an intermediate object called an AsyncEventQueueCreation. The
AsyncEventQueueImpl is instantiated based on this AsyncEventQueueCreation.
During this processing, any configured GatewayEventFilters were left behind
and not set on the AsyncEventQueueImpl. The fix was to not leave any
configured GatewayEventFilters behind.

Thanks,
Barry Oglesby


On Tue, May 31, 2016 at 11:16 PM, Gal Palmery <Gal.Palmery@amdocs.com>
wrote:

> Thanks a lot Barry!
>
> Can you pls share the quick explanation about the fix?
>
>
>
> *From:* Barry Oglesby [mailto:boglesby@pivotal.io]
> *Sent:* Wednesday, June 01, 2016 03:44
> *To:* user@geode.incubator.apache.org
> *Cc:* geode (dev@geode.incubator.apache.org)
> *Subject:* Re: Async queue mechanism
>
>
>
> I see the issue. It looks like a merge issue. I have a fix that I'll check
> in in the next day or so.
>
>
> Thanks,
>
> Barry Oglesby
>
>
>
>
>
> On Tue, May 31, 2016 at 12:52 PM, Barry Oglesby <boglesby@pivotal.io>
> wrote:
>
> I see this same behavior. I'll look into it a bit more and let you know
> what I find.
>
>
> Thanks,
>
> Barry Oglesby
>
>
>
>
>
> On Sun, May 29, 2016 at 5:38 AM, Gal Palmery <Gal.Palmery@amdocs.com>
> wrote:
>
> +Adding the dev group
>
>
>
> Thanks,
>
> Gal
>
>
>
> *From:* Gal Palmery
> *Sent:* Sunday, May 29, 2016 15:30
> *To:* user@geode.incubator.apache.org
> *Subject:* Async queue mechanism
>
>
>
> Hi,
>
>
>
> We are using the Async queue mechanism when inserting objects into the
> regions, which is defined as follows:
>
> <async-event-queue id="myQueue" persistent="false" parallel="true"
> batch-size="10"
>
>    disk-store-name="queue-overflow" maximum-queue-memory="256">
>
>                 <gateway-event-filter>
>
>
> <class-name>imdg.listeners.myClassFilter</class-name>
>
>                 </gateway-event-filter>
>
>                 < >
>
>
> <class-name>imdg.listeners.myClassSubstitutionFilter</class-name>
>
>                 </gateway-event-substitution-filter>
>
>                 <async-event-listener>
>
>
> <class-name>imdg.listeners.myClassListener</class-name>
>
>                 </async-event-listener>
>
> </async-event-queue>
>
>
>
> In gemfire version 8.2,these were the steps for inserting the object to
> the queue :
>
> ·         SubstitutionFilter : we are taking the required objects from the
> event object and return them as the result to the filter.
>
> ·         Filter: beforeEnqueue method is invoked and it’s decided if the
> object will be passed to the listener. (In our filter classes - if the
> object is null we are not sending it to the listener)
>
> ·         Listener: gets the de-serialized value, processes it puts it in
> the relevant regions.
>
>
>
> Seems like in geode we are not passing through beforeEnqueue method in the
> Fillter step, and the null objects are not been filtered.
>
> This means that when there is no object to pass through the queue, still
> null will be passed, and in the listener code, when asking for the
> de-serialized value,
>
> we are getting also the null object, which results in a Null Pointer
> Exception.
>
>
>
> Was anything changed recently in the Async queue mechanism?
>
>
>
> Thanks,
>
> Gal
>
>
>
> This message and the information contained herein is proprietary and
> confidential and subject to the Amdocs policy statement, you may review at
> http://www.amdocs.com/email_disclaimer.asp
>
>
>
>
>

Mime
View raw message