Zope2会话文档: “Zope将自动重试冲突错误,最终用户永远不会看到冲突错误。”
但是,虽然我认为我拥有最佳的高流量部署设置(ZEO会话数据的临时存储,由四个客户端共享,zope实例具有相同的设置),但最终用户仍然会收到数据库冲突错误。
搜索邮件列表,这似乎是Zope基于OOBTree实现会话数据的常见问题。有人建议使用repoze.session,但自2009年以来一直没有支持。
修复BTree / TransientObject冲突错误的其他方法是什么? 我是否必须更改session_data的默认设置(数据对象超时值,超时分辨率,子对象的最大数量)?
答案 0 :(得分:4)
我认为您最好的选择是通过Products.BeakerSessionDataManager将会话实施切换为使用Beaker。它是默认Zope2会话管理器的直接替代品,但在高负载下性能更好,当然也不会受到ConflictErrors的影响。