2016-10-19 4 views
0

Ich stoße auf ein Problem, das im schlimmsten Fall nur passiert. Ex. Ich habe einen Job, der jede Minute läuftWarten auf eine Transaktion endet in JDO?

UpdateJobForAnObjectA: 
    PersistenceManager pm = Context.getPersistenceManager(); 
    Transaction tx = pm.currentTransaction(); 
    tx.begin(); 
    update a collection of an ObjectA 
    tx.comit(); 
    pm.close(); 

Jetzt habe ich ein Deadlock (Pessimist-Strategie) oder eine opstimic Sperre Verletzung (Optimistisch Verletzung), wenn in einem anderen Segment mir eine Objecta aktualisieren. Ich setze auf nonTransactionalRead und nonTransacionalWriete und immer noch habe ich den Fehler von Deadlock oder opstimic Sperreverletzung. Aber es gibt einen Weg, um zu sehen, ob ich auf eine Transaktion warten kann? Verwenden von JDO und KODO

Antwort

1

Sie können ein Synchronization Objekt auf dem Transaction setzen und seine Methoden verwenden, um benachrichtigt zu werden, wenn ein txn commit/rollt zurück.

Verwandte Themen