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.

