we have recently updated our system from Plone 4.3.20 -> Plone 5.2.3 (still under Python 2.7.x) and used
ZPublisher until now.
However, due to an increased number of database conflict errors that occurred on the UI, we decided to change to
waitress and it seems that it works a lot better with the conflict resolution and is much faster!
But how can this be that it is such a difference between these two servers with regard to conflict resolution?
This is an error that occured very often to us under
ZPublisher that also popped up to the UI and that completely vanished now since we changed to
Traceback (innermost last): Module ZServer.ZPublisher.Publish, line 151, in publish Module ZServer.ZPublisher.Publish, line 393, in commit Module transaction._manager, line 257, in commit Module transaction._manager, line 135, in commit Module transaction._transaction, line 282, in commit Module transaction._transaction, line 273, in commit Module transaction._transaction, line 465, in _commitResources Module transaction._transaction, line 442, in _commitResources Module ZODB.Connection, line 692, in tpc_vote Module ZEO.ClientStorage, line 752, in tpc_vote Module ZEO.asyncio.client, line 764, in call Module ZEO.asyncio.client, line 743, in call Module ZEO.asyncio.client, line 756, in wait_for_result Module concurrent.futures._base, line 462, in result Module concurrent.futures._base, line 414, in __get_result ConflictError: database conflict error (oid 0x0861df8c, class BTrees.IOBTree.IOBucket, serial this txn started with 0x03dd91b7edf040bb 2021-01-25 09:27:55.766833, serial currently committed 0x03dd91bf28989b22 2021-01-25 09:35:09.514715)
I always thought that conflict resolution is part of the transaction manager which tries 3 times until it raises an error...
Maybe someone can bring some light for me with this behavior.
Thanks a lot