Checkfree transaction managed in specified layer: In a dedicated class, say TransactionAdapter, it encapsulated the transaction handling over com.checkfree.isolutions.persist.PersistServer 1. begainTransaction: PersistServer.activate() -> PersistServer.beginTransaction() 2. commitTransaction: PersistServer.commitTransaction() -> PersistServer.deactivate() 3. rollbackTransaction: PersistServer.rollbackTransaction() -> PersistServer.deactivate() try{ txnStarted = TransactionAdapter.beginTransaction(); // boolean flag = checkfree invocation }finally{ if(flag == "success" ) TransactionAdapter.commitTransaction(txnStarted); else TransactionAdapter.rollbackTransaction(txnStarted); }