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 ? > > >