Lucee在不稳定的时间丢失会话
我正在运行Lucee 5.1.3.18/Tomcat/centOS/mySql(3物理,6虚拟),我的会话丢失不稳定。我已经查看并验证这是不错的代码。情况是用户将项目添加到购物车(所有项目都加入到session_id中)。他们在结账页面上填写付款信息,信用卡等。一般情况下,如果您等待3到5分钟并提交给审查,则会引发错误,但不会看到这些项目(session_id已更改)。时间范围有所不同,但通常在5分钟左右。Lucee在不稳定的时间丢失会话
这发生在我让Lucee管理员设置使用我的数据源并在数据库中存储会话信息时。
的Application.cfc:
<cfset THIS.Name = "sessionName" />
<cfset THIS.SessionManagement = true />
<cfset THIS.ClientManagement = true />
<cfset THIS.ApplicationTimeout = CreateTimeSpan(0,12,0,0) />
<cfset THIS.SessionTimeout = CreateTimeSpan(0,4,0,0) />
<cfset THIS.SetClientCookies = true />
<cfset THIS.SetDomainCookies = false />
<cfset THIS.ScriptProtect = true />
<cfset THIS.sessionType = "jee">
<cfset THIS.sessionStorage = "myDatasource">
<cfset THIS.sessionCluster = true>
更改
<cfset THIS.sessionType = "jee">
到CFML,也有同样的问题(尝试的Ehcache以瓦特/没有成功)。
如果我切换到使用“内存”并消除数据库,我仍然有问题,但少得多。使用“内存”也会导致堆膨胀并最终导致服务器锁定。
日志没有显示任何有用的信息,但我一直在看到不时发生的管道故障错误和db连接丢失。我将它解释为锁定的服务器。
我没有试图提出一个开放式问题,但是您对遇到的问题有任何建议吗?我可能忽略了Lucee的具体设置吗?任何帮助表示感谢。
感谢, 亨利
你可以看看,看看是否能找到任何低于这些调用的代码中的某个地方因为他们可能是提前结束您的会话。
sessionInvalidate会终止会话(我不太确定它是立即还是在调用它的请求完成后),并且setMaxInactiveInterval调用将覆盖application.cfc中使用的会话超时。
<cfscript>
getPageContext().getSession().setMaxInactiveInterval(javaCast("int", 60));
sessionInvalidate();
</cfscript>
不在我的代码:( – Henry
更新:好的,所以我想出了服务器崩溃。这显然是来自达拉斯的一家阴暗公司的DDoS攻击。我做了一些防火墙调整,我的服务器不再融化。我现在正在监测会话损失是否消失。我的想法可能是压力下的服务器只是释放随机内存。 – Henry
会话丢失仍然不幸发生。 – Henry
可能不会帮忙,但我想我会指出你的THIS.sessionType应该是“j2ee”根据[cfapplication](http://docs.lucee.org/reference/tags/application.html)文档可能它会一直使用任何默认是在lucee服务器/网络管理员 – Snipzwolf