如何等待 JDO 中的事务结束?

How to wait for a Transaction ends in JDO?

我遇到了一个只有在最坏情况下才会发生的问题。前任。我有一个每分钟运行的作业

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

现在我有一个死锁(悲观策略)或一个乐观锁违规(乐观违规)如果在另一个段中我更新了一个objectA。我设置为 nonTransactionalRead 和 nonTransacionalWriete,但我仍然遇到死锁或违反光学锁的错误。但是有一种方法可以查看我是否可以等待交易结束?使用 JDO 和 KODO

您可以设置一个 Synchronization object on the Transaction,并使用它的方法在 txn commits/rolls 返回时得到通知。