...
English |
---|
This article will explain on how to configure the Tomcat Persistent Manager, in the event the load balancer does not support sticky sessions, we can implement Persistent Manager for clustering, which has the capability to swap active (but idle) sessions out to a persistent storage mechanism, as well as to save all sessions across a normal restart of Tomcat. |
Info |
---|
title | Fixes in Joget DX 8.1.5 |
---|
|
After recent fix for clustering in Joget DX 8.1.5, the session persistence is working as intended and non-sticky session is possible using the Tomcat session persistence. Kindly note that for the non-sticky session to work properly, we don't need to add route in the Tomcat server.xml configuration. We have removed that step in the latest version of this article. |
Info |
---|
Note : This KB is only for the Tomcat configuration, for other clustering configurations eg. setting up shared directory etc please refer to Server Clustering Guide page here. |
In server.xml file, we need to add the jvmRoute.
Code Block |
---|
|
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1"> |
In catalina.properties, add the
...
Code Block |
---|
|
<Resources cachingAllowed="true" cacheMaxSize="100000" />
<Valve className="org.apache.catalina.valves.PersistentValve"/>
<Manager className="org.apache.catalina.session.PersistentManager"
maxIdleBackup="1"
maxIdleSwap="1"
minIdleSwap="0"
processExpiresFrequency="1"
saveOnRestart='true'>
<Store className="org.apache.catalina.session.JDBCStore"
connectionURL="jdbc:mysql://joget-db-server-ip/tomcat?user=tomcat&password=tomcat"
driverName="com.mysql.jdbc.Driver"
sessionAppCol="app_name"
sessionDataCol="session_data"
sessionIdCol="session_id"
sessionLastAccessedCol="last_access"
sessionMaxInactiveCol="max_inactive"
sessionTable="tomcat_sessions"
sessionValidCol="valid_session"/>
</Manager> |
...
Code Block |
---|
|
<Resources cachingAllowed="true" cacheMaxSize="100000" />
<Valve className="org.apache.catalina.valves.PersistentValve"/>
<Manager className="org.apache.catalina.session.PersistentManager"
maxIdleBackup="1"
maxIdleSwap="1"
minIdleSwap="0"
processExpiresFrequency="1"
saveOnRestart='true'>
<Store className="org.apache.catalina.session.JDBCStore"
connectionURL="jdbc:sqlserver://joget-db-server-ip:1433&databaseName=tomcat&user=tomcat&password=tomcat&encrypt=false&trustServerCertificate=false"
driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
sessionAppCol="app_name"
sessionDataCol="session_data"
sessionIdCol="session_id"
sessionLastAccessedCol="last_access"
sessionMaxInactiveCol="max_inactive"
sessionTable="tomcat_sessions"
sessionValidCol="valid_session"/>
</Manager> |
...
Code Block |
---|
|
<Resources cachingAllowed="true" cacheMaxSize="100000" />
<Valve className="org.apache.catalina.valves.PersistentValve"/>
<Manager className="org.apache.catalina.session.PersistentManager"
maxIdleBackup="1"
maxIdleSwap="1"
minIdleSwap="0"
processExpiresFrequency="1"
saveOnRestart='true'>
<Store className="org.apache.catalina.session.JDBCStore"
connectionURL="jdbc:postgresql://[YourDBIPHere]:[YourDBPortHere]/tomcat?user=tomcat&password=tomcat"
driverName="org.postgresql.Driver"
sessionAppCol="app_name"
sessionDataCol="session_data"
sessionIdCol="session_id"
sessionLastAccessedCol="last_access"
sessionMaxInactiveCol="max_inactive"
sessionTable="public.tomcat_sessions"
sessionValidCol="valid_session"/>
</Manager> |
...