2012-03-08 15 views
5

Qualcuno può spiegarmi questo errore e come posso ripararlo?ConflictError: errore di conflitto del database

Usiamo:

  • Plone 4
  • Zope 2.12.19
  • ZEO
  • ZODB-temporaneo stoccaggio

Registro errori

Site Error 

An error was encountered while publishing this resource. 

Sorry, a site error occurred. 

Traceback (innermost last): 

Module ZPublisher.Publish, line 239, in publish_module_standard 
Module ZPublisher.Publish, line 197, in publish 
Module ZPublisher.Publish, line 197, in publish 
Module ZPublisher.Publish, line 197, in publish 
Module ZPublisher.Publish, line 173, in publish 
Module plone.app.linkintegrity.monkey, line 17, in zpublisher_exception_hook_wrapper 
Module ZPublisher.Publish, line 135, in publish 
Module Zope2.App.startup, line 291, in commit 
Module transaction._manager, line 93, in commit 
Module transaction._transaction, line 322, in commit 
Module transaction._transaction, line 419, in _commitResources 
Module ZODB.Connection, line 767, in tpc_vote 
Module ZEO.ClientStorage, line 1068, in tpc_vote 
Module ZEO.ClientStorage, line 905, in _check_serials 

ConflictError: database conflict error (oid 0x08, class Products.Transience.Transience.Length2, serial this txn started with 0x0394fddba7126fbb 2012-03-08 07:23:39,157504, serial currently committed 0x0394fddbb0a4cb22 2012-03-08 07:23:41,400873) 

Troubleshooting Suggestions 

The URL may be incorrect. 
The parameters passed to this resource may be incorrect. 
A resource that this resource relies on may be encountering an error. 

For more detailed information about the error, please refer to the error log. 

If the error persists please contact the site maintainer. Thank you for your patience. 

Ho provato a ripagare il Data.fs senza errori ...

Grazie in anticipo.

+2

Gli errori di conflitto del database possono essere errati. si verificano, se una transazione non può essere completata. Si tratta di un'istanza di produzione o di produzione? Da quando si verifica l'errore e quali cambiamenti hai fatto poco prima? –

+0

Si tratta di un server di produzione Gli errori si verificano in modo casuale - quando gli utenti aprono una vista browser, una semplice cartella o un editor funziona su di esso ... – user966660

+0

@ user966660 - qualsiasi fortuna su questo problema? Ho a che fare con lo stesso identico problema: sembra che sia qualcosa correlato all'autenticazione/sessione (0x08 oid ​​è nella memoria temporanea del gestore di sessione) –

risposta

3

Conflitto Gli errori si verificano quando due utenti tentano di aggiornare lo stesso oggetto (spesso uno che fa parte di una struttura dati del catalogo) contemporaneamente e il sistema non è in grado di risolvere il conflitto. Dovresti assicurarti che il tuo server ZEO includa tutte le uova dell'istanza Zope per assicurarti di avere tutto il codice di risoluzione dei conflitti.

Se le vedi su viste semplici, probabilmente significa che hai del codice che sta aggiornando il database sul rendering di quella vista. Questa non è una buona idea con ZODB.

+0

_verificare che il server ZEO include tutte le uova dell'istanza Zope_ - È necessario ? Non ho trovato alcuna documentazione per questo. [Zope2 wiki] (http://wiki.zope.org/zope2/ZEOZopeEnterpriseObjects) dice: Nota: Data.fs è conservato nel server ZEO, tutti i prodotti sono installati nel client. –

+1

avevi ragione, lo hai trovato nei documenti buildout di plone.recipe.zeoserver - _ "uova - Imposta se devi includere altri pacchetti come uova, ad esempio per rendere disponibile il codice dell'applicazione sul lato server ZEO per l'esecuzione della risoluzione dei conflitti (tramite _p_resolveConflict() gestore. "_ e c'è un tale gestore in Products.Transience, ora parte di Zope 2.12 egg –

+0

@Laurence Rowe - Quando dici" codice che aggiorna il database sul rendering di quella vista "intendi ZODB? – Ravi

Problemi correlati