Archive for October 25th, 2005

Java Transaction….. *sigh*

Sudah beberapa minggu saya mencoba mencari tahu apa itu Java Transaction API dan bagaimana menerapkannya pada pekerjaan saya.

Situasinya adalah seperti ini, selama ini saya membangun program pada J2EE box, yang telah menerapkan Distributed Transaction secara transparan. Yang saya kerjakan selama ini adalah

  • Panggil startTransaction
  • Transaksi yang saya definisikan
  • Jika berhasil panggil commitTransaction, jika gagal rollbackTransaction

dengan parameter nama transaksi. Karena selama ini apa yang saya kerjakan masih dalam scope diatas, maka tidak ada masalah.

Masalah datang ketika API dari satu database gagal setiap kali dieksekusi. Setelah dicoba berkali-kali tidak juga membawa hasil, maka saya membuat satu program kecil yang langsung mengeksekusi API dari JDBC, terpisah dari platform box aplikasi. That leads us to our current problem… karena dibuat pada JDBC yang terpisah, maka proses tersebut tidak termasuk dalam platform transaksi diatas, jadi ketika ada masalah disalah satu traksaksi, transaksi yang bersangkutan tidak bisa rollback. Sangat menyalahi konsep Distributed Transaction, Atomicity, yang pada intinya mengatakan sebuah traksaksi hanya menghasilkan satu keluaran, semua berhasil atau semua gagal, dan jika ada bagian dari transaksi yang gagal, state system harus dikembalikan pada keadaan sebelum transaksi. Darn. :shock:

Jadi kembali ke masa sekarang :roll:, setelah beberapa google kemudian, rasanya gambaran tentang Distributed Transaction sudah mulai nampak… dan rumit :neutral:

Tags: , ,