2011-03-16 21 views
2

我正在使用spring TransactionSynchronizationManager.Using這個管理器,我註冊了一個新的Synchronization TransactionSynchronizationAdapter,並且我重寫了此TransactionSynchronizationAdapter的afterCompletion(int status)方法。 這裏面afterCompletion執的狀態值必須爲未來COMMITED(0),但它是未來爲活動(0)使用彈簧時的問題TransactionSynchronizationManager

下面是一段代碼::

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); 
      } 
     } 
     } 
    }); 
     } 

回答

3

不要使用它與Spring沒有任何關係。改爲使用TransactionSynchronization.STATUS_COMMITTED

+0

感謝它的正常工作 – 2011-03-16 12:45:48