Mungkin lebih sederhananya gini. JTS itu implementasi JTA
Nah carapakainya gimana ? kita harus pakai JTA UserTransaction yang diambil lewat JNDI (karena dimanage oleh kontener). Jadi di kode kita ga ada lagi jdbc connection dan connection.commit, atau hibernate session.beginTransaction(). Terus di kode kita ya sudah seamlessly join. Jadi kalau kamu biasa bikin aplikasi gado2 mungkin kamu bikin program kayak gini. Transaction trx = session.beginTransaction(); // hibernate EntityTransaction trx2 = entityManager.getTransaction(); // jpa trx2.begin(); Connection connection =DriverManager.getConnection(); // jdbc try{ .... //ini aplikasi gado2 saya .... }finally{ trx.commit(); trx2.commit(); connection.commit(); } blok finally ini single point of failure. Nah dengan JTA yg jalan di JTS kamu buang semua kode gado2 diatas dengan satu transaction doank yg diambil dari jndi. InitialContext ic = new InitialContext(); UserTransaction transaction = ic.lookup("java:com/UserTrasnaction"); // tergantung dari nama bindingnya; transaction.begin(); try{ // sekarang ambil resource2nya dari jndi juga session.save(); entityManager.persist(); prepareStatement.executeQuery(); ... gongreng2 .. transaction.commit(); }catch(Exception e){ transaction.rollback(); } Nah kalau ada yg gonjreng2 di kode kamu, semuanya bakalan di rollback otomatis deh .... gitu cuy .... -- Warm Regards, Arif Rachim