我正在使用 spring TransactionSynchronizationManager。使用这个管理器我注册了一个新的 Synchronization TransactionSynchronizationAdapter 并覆盖了这个 TransactionSynchronizationAdapter 的 afterCompletion(int status) 方法。 在这个 afterCompletion 中,status 的值必须以 commited(0) 的形式出现,但它是以 active(0) 的形式出现
这是一段代码::
TransactionSynchronizationManager
.registerSynchronization(new TransactionSynchronizationAdapter() {
public void beforeCompletion(){
int status =Status.STATUS_COMMITTED;
System.out.println("inside before completion block hurray");
}
public void afterCompletion(int status) {
System.out.println("the value of status is " + status);
System.out.println("coming after completion");
if (status == Status.STATUS_COMMITTED) {
final String memcachedKey = getMemcachedKey(pOrderId);
System.out.println("the value of memcached key is inside the aftercompletion " + memcachedKey);
mCmatesMemCachedClient.set(memcachedKey, PROVISIONING_PASS);
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("Tx commited. Set into memcached:Key="
+ memcachedKey + ",Value=" + PROVISIONING_PASS);
}
}
}
});
}