重启服务器时会丢失会话变量吗?

Phi*_*enn 0 coldfusion

我们不得不经常重启(每天一次),因为我们的VPS上的SQL Server收到9001错误.重新启动似乎可以解决问题,我们正在与我们的提供商讨论它.

问:重启后,每个人都会失去会话范围吗?

Mig*_*l-F 6

是的,假设您在内存中使用ColdFusion的会话范围.重新启动服务器时,将清除所有内存.如果您使用数据库或其他外部源,会话可能会持续存在.

为了它的价值,应用范围和服务器范围也被清除.


Hen*_*nry 5

根据 Charlie Arehart's Hidden Gems in CF10,Tomcat 上的 CF10 能够在重新启动时保存会话

也许是 CF10(和 Tomcat)中最好的隐藏宝石

  • 能够在重新启动时保存会话。是的!
  • 一些需要认真考虑的重要利弊
  • 需要一些 Tomcat 中的配置知识(你现在已经有了)
  • 更多:http : //tomcat.apache.org/tomcat-7.0-doc/config/manager.html
  • 需要修改[cf10][instance]\runtime\conf\context.xml
  • Adobe doc 在“Installing CF 10”中的简短讨论令人困惑,遗憾的是
  • 请参阅第 20 页,“启用持久会话”(原文如此)
  • 说要取消注释已经取消注释的 XML 行
  • 关键是,如果没有注释,MANAGER 元素不能有空白 PATH,所以:
  • 可以评论它(在CF10中默认不评论,但PATH为空)
  • 或者可以设置一个 PATH 值。PATH="sessions.ser" 将会话保存到 session.ser 文件
  • 在 [cf10][实例]\runtime\work\Catalina\localhost\tmp

更改生效后需要重启CF

  • 测试:配置/重启/创建会话/重新启动/测试是否保存
  • 好消息:即使是复杂的变量(查询、CFC、结构等)
  • 问题:仅在正常 CF 关闭时保存会话
  • 如果 CF 崩溃/被杀死,会话不会被保存/恢复
  • 但当时的情况与现在没有什么不同。如果您“期望”保存,那就太糟糕了
  • 此外,关闭时可能会有大量 I/O,然后启动,尤其是。如果很多会话
  • 由于蜘蛛、机器人等,您的会话可能比您想象的要多。
  • 可能会让您感到困惑:当 CF 启动时,sessions.ser 文件不会出现
  • 关机时创建,启动后删除