1

I'm trying to cluster Web Session on Liferay 4.2.1. I've followed the specifications in the documentation.

When I try to access the portal I get a :

ERROR [org.apache.catalina.core.ContainerBase.[Catalina].[local.host].[/].[MainServlet]] Servlet.service() for servlet MainServlet threw exception

java.lang.RuntimeException: java.io.NotSerializableException: com.liferay.portal.kernel.servlet.PortletSessionTracker
        at com.terracotta.session.SerializedAttributeStore$SerializedAttribute.<init>(SerializedAttributeStore.java:98)
        at com.terracotta.session.SerializedAttributeStore$SerializedAttributeWithCache.<init>(SerializedAttributeStore.java:141)
        at com.terracotta.session.SerializedAttributeStore.put(SerializedAttributeStore.java:60)
        at com.terracotta.session.SessionData.bindAttribute(SessionData.java:455)
        at com.terracotta.session.SessionData.setAttributeReturnOld(SessionData.java:322)
        at com.terracotta.session.SessionData.setAttribute(SessionData.java:313)
        at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:581)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at com.portal.filter.LoginProcessFilter.doFilter(LoginProcessFilter.java:123)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at com.liferay.filters.secure.SecureFilter.doFilter(SecureFilter.java:143)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at com.portal.filter.ClientHibernateFilter.doFilter(ClientHibernateFilter.java:74)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
        at org.terracotta.modules.tomcat.tomcat_5_5.SessionValve55.tcInvoke(SessionValve55.java:99)
        at org.terracotta.modules.tomcat.tomcat_5_5.SessionValve55.invoke(SessionValve55.java:85)
        at org.terracotta.session.ModernTomcatSessionValve.invoke(ModernTomcatSessionValve.java:66)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:541)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:662)
Caused by: java.io.NotSerializableException: com.liferay.portal.kernel.servlet.PortletSessionTracker
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
        at org.terracotta.cache.serialization.DsoSerializationStrategy.serialize(DsoSerializationStrategy.java:61)
        at com.terracotta.session.SerializedAttributeStore$SerializedAttribute.<init>(SerializedAttributeStore.java:96)
        ... 35 more

Any help is appreciated.

Thank you.

Update: Apparently Liferay 4.2.1 is not supported by Terracotta as it is too old. Suggestions would be to switch to the latest Liferay version(6).

Sergiu
  • 2,502
  • 6
  • 35
  • 57
  • Liferay 4.2 is quite ancient - any chance to update to 6.0? This might help, as there are only few left still working on 4.2, and the feature set would add a lot of value... If terracotta is mandatory you can get commercial support with Liferay Terracotta edition as well if that's an option. Might be that the improvements in this version are enough to go without terracotta: Typically clustering works quite well in standard VMs. – Olaf Kock Jun 17 '11 at 11:37
  • Thank you. We've decided to switch to Liferay 6.Once the app is on Liferay 6 I'll give it a try to cluster it with Terracotta. – Sergiu Jun 20 '11 at 10:50

0 Answers0