Ah, please ignore. I was overriding the wrong method. It should be:
setPageManagerProvider(new DefaultPageManagerProvider(this) { protected IPageStore newCachingStore(IPageStore pageStore) { return new CachingPageStore(pageStore, new InSessionPageStore( 2, serializer)); } }); This now seems to be working locally fine now. On Tue, Apr 26, 2022 at 12:25 PM Wayne W <waynemailingli...@gmail.com> wrote: > Hello, > > Since migrating to 9.4 we have found that our app no longer supports > session failover correctly. We use Redission tomcat to store the tomcat > session in Redis. This works fine. > > However after a lot of debugging I can see that InSessionPageStore does > not serialize the page into the http session, and that for the next request > the page is always retrieved from the disk store. > > The reason it seems is that by default the serializer is null in > InSessionPageStore and in the SessionData::writeObject if this is null then > the page is not serialized and stored. > > So did this in the application: > > ISerializer serializer = new JavaSerializer(getApplicationKey()); > getFrameworkSettings().setSerializer(serializer); > getStoreSettings().setAsynchronous(false); > setPageManagerProvider(new DefaultPageManagerProvider(this) { > @Override > protected IPageStore newPersistentStore() { > return new InSessionPageStore( 2, serializer); > } > }); > > However now I have lots of strange behaviour where the page is not found > at all. This seems to stem from the fact that SessionData::get returns in > instance of SerializedPage now. However in > DefaultMapperContext::getPageInstance its expecting an instance of > IRequestablePage which SerializedPage is not. Therefore the page is never > found. > > How do I setup InSessionPageStore to actually serialize the page into the > http session? as by default the page variable is always null on the next > request? > > Many thanks >