2

Zope2セッションのドキュメント:「競合エラーはZopeによって自動的に再試行され、エンドユーザーには表示されません。」

ただし、トラフィックの多い展開(4つのクライアントで共有されるZEO上のセッションデータの一時ストレージ、同じセットアップのzopeインスタンス)には最適なセットアップがあると思いますが、エンドユーザーは依然としてDatabaseConflictErrorsを受け取ります。

メールリストを検索すると、これはZOPがOOBTreeに基づいてセッションデータを実装する際の一般的な問題のようです。repoze.sessionの使用を提案する人もいますが、2009年以降はサポートされていません。

BTree / TransientObjectの競合エラーを修正するための他のアプローチはありますか?session_dataのデフォルト設定(データオブジェクトのタイムアウト値、タイムアウトの解決、サブオブジェクトの最大数)を変更する必要がありますか?

4

1 に答える 1

4

最善の策は、Products.BeakerSessionDataManagerを介して、セッションの実装を代わりにBeakerを使用するように切り替えることだと思います。これは、デフォルトのZope2セッションマネージャーのドロップイン代替品ですが、高負荷の下ではるかに優れたパフォーマンスを発揮し、ConflictErrorsの影響を受けません。

于 2012-04-17T13:43:43.533 に答える