2011-03-16 78 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