Hi

>>
Maybe you keep reference to something that should not be serialized with
the page? For example some non-detachable model?!
>>

Let me check the source code and report later. Thank you.



From: Martin Grigorov <mgrigo...@apache.org>
Date: Wednesday, September 21, 2022 at 3:22 AM
To: users@wicket.apache.org <users@wicket.apache.org>
Subject: Re: AjaxCall while failover return same page content
On Tue, Sep 20, 2022, 17:06 Shengche Hsiao <shengchehs...@gmail.com> wrote:

> Glad to see you, Martin
>

Hi!


> As session replication issue was my first point want to figure out, after
> enable/disable wildfly nodes manually, I found session replicated to each
> node. And when I invoke normal http request (not ajax call), the session
> continued at live node, the page showed as usual.
> When I turned on debug log, I found when ajax call occurred, session id
> replicated to live node but session data not, because of session data size
> exceeded the max allowed size.
>
> In Wicket Application, I put http-session in memory and adopted
> MemorySizeEvictionStratege with 32 bytes, but such ajax calls had more
> session size and evicted by wicket (?). On the lived node, although session
> id replicated but no data exists.
>
> After all, I enlarge the MemorySize with 128 kbs to fix this issue.
>

Maybe you keep reference to something that should not be serialized with
the page? For example some non-detachable model?!


> From: Martin Grigorov <mgrigo...@apache.org>
> Date: Tuesday, September 20, 2022 at 9:05 PM
> To: users@wicket.apache.org <users@wicket.apache.org>
> Subject: Re: AjaxCall while failover return same page content
> Hi,
>
> Is Wildfly configured to replicate the http sessions across the nodes ?
> It seems you save a page instance on node 1 but then it is not available at
> node 2. I.e. Wildfly didn't replicate the http session from 1 to 2 and
> Wicket knows nothing about page with id 7 on node 2.
>
> On Fri, Sep 2, 2022 at 4:05 PM Shengche Hsiao <shengchehs...@gmail.com>
> wrote:
>
> > I found some log on failover node
> >
> >
> > 2022-09-02 20:57:41,270 DEBUG
> > [org.apache.wicket.pageStore.memory.HttpSessionDataStore] (default
> > task-352) Stored '32808' bytes for page '7' in session
> > '1Nlahj618TQ9MgwbQLPt6Agk-_F0zQTu1Qs-Vgp1'
> >
> > 2022-09-02 20:57:41,317 DEBUG
> > [org.apache.wicket.pageStore.memory.HttpSessionDataStore] (default
> > task-352) Loaded '-1' bytes for page with id '7' in session
> > '1Nlahj618TQ9MgwbQLPt6Agk-_F0zQTu1Qs-Vgp1'
> >
> >
> > I used HttpSessionDataStore to store pages, when node 1 closed
> > intentionally , I click none-ajax link, the node 2 take over the closed
> > node 1’s session, and showed correct page content. Then, I click the ajax
> > button, as the log showed, page ‘7’ stored with ‘32808’ bytes, but loaded
> > with ‘-1’ bytes for same pageid.
> >
> >
> >
> > From: ShengChe Hsiao <front...@gmail.com>
> > Date: Friday, September 2, 2022 at 10:22
> > To: Wicket User Mailinglist <users@wicket.apache.org>
> > Subject: AjaxCall while failover return same page content
> > Dear all
> >
> > I faced a strange situation, I built a wicket application which deployed
> > to Wildfly Cluster.
> > When I using Apache httpd as load balancer, everything works as expected.
> > But when I move application to GCP, and use their load balancer which has
> > gclb and gclib cookie to identity transfer to wildfly node with TTL of
> 300
> > seconds.
> > After GCP LB ttl timeout (wicket session still active), gcp lb route to
> > another wildfly node, and I clicked on ajaxbutton. I saw response code
> 200
> > on browser console and response payload is <?xml versio=”1.0”
> > encoding=”UTF-8”><ajax-response></ajax-response>.
> >
> > How do I fix it ?
> >
>

Reply via email to