Re: AjaxCall while failover return same page content
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 Date: Wednesday, September 21, 2022 at 3:22 AM To: users@wicket.apache.org Subject: Re: AjaxCall while failover return same page content On Tue, Sep 20, 2022, 17:06 Shengche Hsiao 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 > Date: Tuesday, September 20, 2022 at 9:05 PM > To: 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 > 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 > > Date: Friday, September 2, 2022 at 10:22 > > To: Wicket User Mailinglist > > 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 > encoding=”UTF-8”>. > > > > How do I fix it ? > > >
Re: AjaxCall while failover return same page content
On Tue, Sep 20, 2022, 17:06 Shengche Hsiao 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 > Date: Tuesday, September 20, 2022 at 9:05 PM > To: 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 > 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 > > Date: Friday, September 2, 2022 at 10:22 > > To: Wicket User Mailinglist > > 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 > encoding=”UTF-8”>. > > > > How do I fix it ? > > >
Re: AjaxCall while failover return same page content
Glad to see you, Martin 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. From: Martin Grigorov Date: Tuesday, September 20, 2022 at 9:05 PM To: 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 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 > Date: Friday, September 2, 2022 at 10:22 > To: Wicket User Mailinglist > 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 encoding=”UTF-8”>. > > How do I fix it ? >
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 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 > Date: Friday, September 2, 2022 at 10:22 > To: Wicket User Mailinglist > 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 encoding=”UTF-8”>. > > How do I fix it ? >
Re: AjaxCall while failover return same page content
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 Date: Friday, September 2, 2022 at 10:22 To: Wicket User Mailinglist 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 . How do I fix it ?