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.

Kirim email ke