Dear mbak Yuliaty, logikanya spt reservasi tempat ya ? dulu pernah terlibat untuk aplikasi model ini. Alur yang digunakan, adalah menggunakan table reservasi untuk menampung seat yang sedang di reserved (transaksi belum berakhir namun table reservasi sudah ditandai, hal ini dilakukan untuk me-lock alokasi seat sehingga tidak over quota). misalkan seat ada 60, terpakai 59, artinya ada 1 sisa seat yang available, kemudian ada 3 user yang hendak ambil seat tersebut, maka yang dilakukan adalah menandai/mengubah status seat tersebut dari available menjadi reserved di table reservasi,yang berhak adalah yang melakukan penandaan terlebih dahulu (first come first serve meminjam bahasa dari mas Yoel). 2 transaksi yang kalah cepat diletakkan pada tabel lain misalnya table overbooking. hal ini untuk menghindari misalnya transaksi dibatalkan,dan kursi menjadi unlock maka 2 user yang kalah cepat tetap mendapatkan kesempatan.
pada saat user melakukan commit(save) transaksi, maka table data reservasi baru dipindahkan ke table utama. kelemahan metode diatas, seat akan terblok pada saat reservasi, 2 user yang lain harus menunggu hingga lock di table reservasi release terlebih dahulu baru mendapatkan kepastian seat. metode yang diatas dulu disebut queue mode :) umumnya jika hanya menggunakan 1 table, kendala yang dihadapi adalah pada saat commit. kenapa jadi kendala, karena bisa saja user yang pertama melakukan reservasi tidak mendapatkan seat dikarenakan pada saat commit(save) lebih lama dibandingkan user yang lain. metode yang ini dulu disebut competition mode :) smoga dapat memberikan gambaran. cheers, tyo ________________________________ Dari: Yoel Susanto <[email protected]> Kepada: [email protected] Terkirim: Sen, 30 Agustus, 2010 17:30:44 Judul: Re: [indo-oracle] Kasus Kuota Pada saat menyimpan lakukan check lagi apakah quota udah penuh. Jadi first come first serve. Kalo udah penuh kasih message ke user bahwa tempat udah di book org lain lebih dulu. Tergantung seberapa real time anda mau info nya terupdate ke UI, applikasinya mesti sering check current datanya di database. HTH On 8/30/10, yuliaty tety <[email protected]> wrote: > Para suhu Oracle yg terhormat mohon pencerahannya > > Masalah : > kasus : > Misalnya : kuota di suatu tempat maximum untuk 60 yg sudah terisi 59 > Nah beberapa user akan mengisi sisa tempat tersebut.. > Jadi setelah update di cek apakah penuh ato tidak, yg jadi masalah krn > misalnya > ada 3 user sama-sama ingin menempati tempat tersebut > waktu pertama kali pasti akan terbaca 59, nah waktu pas menyimpan semua > tersimpan sehingga kuota melebih kapasitas yg ada. > > Mohon pencerahannya .. > > > > > [Non-text portions of this message have been removed] > > -- Sent from my mobile device Cheers, Yoel Susanto [Non-text portions of this message have been removed]

