Kalo memang diperlukan untuk mengakses beberapa table secara berurutan, usahan sequnece pengaksessannnya selalu sama. Misal function A mengakses table dgn urutan tab1,tab2,tab3...maka jika di function lain perlu mengakses seluruh/sebagian dari table2 itu usahakan urutannya sama misal tab2,tab3,tab4., shg resiko deadlock dapat dikurangi
2008/12/12 Samuel Franklyn <[email protected]> > Sandi Juniar wrote: > > Saya sedang mengembangkan Aplikasi Web memakai Database SQL 2000 SP4, > > untuk koneksinya pake Connection Pool dengan memakai Driver JTDS tetapi > > ada kendala, setelah di deploy dan beberapa komputer konek ke Web > > ternyata Web server mendadak menjadi ngehang alias no Response, Sudah > > pernah di ganti Webserver menggunakan Apache Tomcat maupun > > GlassFish/SJSAS tapi tetap juga No Response. > > > > I Have No Idea... > > > > Can You Help Me... > > > > Karena informasi yang kamu berikan amat sangat minim maka > ini cuma dugaan saja. Kemungkinan besar kamu mengalami > apa yang dinamakan deadlock. Deadlock akan terjadi kalau > ada 2 proses yang saling menunggu lepasnya lock terhadap > suatu tabel. > > Misalnya proses 1 perlu mengupdate tabel 1 dan 2. > Lalu proses 2 perlu mengupdate tabel 1 dan 2. > > 1. Nah proses 1 mengupdate tabel 1 dan pada saat yang sama > proses 2 mengupdate tabel 2. Pada saat ini masih aman. > > 2. Lalu proses 2 mau mengupdate tabel 1 tapi proses 1 belum > selesai mengupdate tabel 1. Akhirnya proses 2 menunggu proses 1. > > 3. Setelah proses 1 selesai mengupdate tabel 1 > maka mau mengupdate tabel 2 tapi tabel 2 masih di lock > oleh proses 2. Akhirnya proses 1 menunggu proses 2 dan > proses 2 menunggu proses 1. Terjadilah deadlock. > > Hal ini juga terjadi karena sistem locking di MS SQL Server. > Di SQL Server pada saat record dalam sebuah tabel di insert > atau diupdate maka tidak bisa dibaca. Record yang sedang di > baca juga tidak bisa diupdate. Ini jauh berbeda dengan > sistem locking database macam Oracle atau PostgreSQL. > > Lalu bagaimana solve dead lock? Nggak gampang. Kamu harus > melakukan analisa menyeluruh code dan menebak dimana lokasi > deadlock terjadi. Terus terang bug macam begini adalah > bug yang paling mahal untuk disolve karena butuh analisa > menyeluruh dari code. > >

