管理不同tomcat实例上的会话

时间:2010-06-20 17:24:23

标签: session tomcat session-state

您好我的情况是我在我们的服务器上使用4个tomcat实例。当用户登录时,假设它连接到tomcat-1,所以我们将所有会话值存储在tomcat-1中。然后我们正在处理paypal.After paypal处理用户被转移到另一个tomcat说tomcat-2。所以这个用户的会话没有值。我面临问题。所以我想发送用户在同一个tomcat之后来自paypal处理的地方,以便他的所有我们可以获取的会话值。

1 个答案:

答案 0 :(得分:2)

为什么在服务器中使用多个Tomcat实例?对此的最佳答案是使用单个Tomcat实例并在其上部署所有Web应用程序,并在必要时使用virtual hosting

如果您坚持使用多个实例,那么唯一的解决方案是将感兴趣的信息作为请求参数或pathinfo传递并相应地处理它。如果此信息包含大量数据和/或复杂信息,则将其存储在共享数据存储区(SQL数据库?)中,并将其标识符(主键)值作为请求参数/ pathinfo传递。

如果您通过在服务器中使用单个Tomcat实例来解决此问题,那么您只需将emptySessionPath<Connector> conf/server.xml的{​​{1}} attrbute设置为{{ 1}}。这样,true将在所有已部署的Web应用程序之间共享。

如果实际上有4个物理上独立的服务器计算机,每个服务器计算机都有一个Tomcat实例,每个都包含webapps的备份/复制,那么您需要创建一个HTTP connector