import java.sql.*; public class ExampleService2 extends BaseService{ public AService1 service1; public AService2 service2; public void doComplexServiceJob() { Connection con = null; try { con = getConnection(); // Vários métodos que dependem um do outro doFirstJob(con); Result result = doSecondJobWhichDependsOnFirst(con); service1.processResult(result, con); service2.createResultLogInDatabase(result, con); con.commit(); // Confirma as alterações } catch(Exception e) { try { if (con != null) con.rollback(); } catch(SQLException se) { } } finnally { try { if (con != null) con.close(); } catch(SQLException e) { } } } }