问题
Zope2 Sessioning documentation: "Conflict errors will be retried automatically by Zope, and the end user should never see one."
However, although I think I have the best setup for a high traffic deployment (temporary storage for session data on ZEO, shared by four clients, zope instances with identical setup), end user still gets Database ConflictErrors.
Searching the mail lists, it seems this is a common issue for Zope's implementation of session data based on OOBTree. Some suggest using repoze.session, but that's unsupported since 2009.
Any other approach for fixing BTree / TransientObject conflict errors? Do I have to change default settings for session_data (Data object timeout value, Timeout Resolution, Maximum no of subobjects)?
回答1:
I think your best bet is to switch the session implementation to using Beaker instead, via Products.BeakerSessionDataManager. It is a drop-in replacement for the default Zope2 session manager, but performs much better under high load and certainly won't suffer from ConflictErrors.
来源:https://stackoverflow.com/questions/10187813/less-conflicting-session-manager-for-zope-2