Sql Server Locked by Transaction What The Solution
Di hari ini, hari Jum'at 25 Januari 2019 saya kembali mendapatkan rejeki sebuah masalah yang merupakan sumber ilmu yang sangat indah.
Karena masalah itu adalah sumber uang juga sumber ilmu... :-D
Karena suatu kebutuhan, saya harus merubah type data sebuah field dari VARCHAR(40) ke VARCHAR(200), kemuadian saya coba buka tabel lewat SSMS dan ternyata SSMS tidak bisa membuka daftar tabel di treeview-nya. dan mendapatkan kode error 1222.
Menuut mbah google errror 1222 adalah karena ada timeout, dan timeout itu diebabkan karena ada table yang dikunci (lock) oleh 'transaction'.
Langkah pertama saya coba KILL Connection Database da ternyata GAGAL.
Langkah kedua saya coba kill ID yang IDnya saya dapat dari Query
SELECT conn.session_id
, host_name
, program_name
, nt_domain
, login_name
, connect_time
, last_request_end_time
FROM sys.dm_exec_sessions AS sess
JOIN sys.dm_exec_connections AS conn ON sess.session_id = conn.session_id
where open_transaction_count
ID yang dihasilkan saya KILL #nomor_ID
dan ternyata GAGAL TOTAL.
kemudian saya tanya lagi mbah google dan akhirnya menemukan script ini di sini
USE Master
GO
EXEC sp_who2
GO
Coba lihat kolom BlkBy, nah ID yang saya tandai itulah penyebab Database terkunci.
ID tersebut saya kill (KILL #nomor_ID)
Dan alhamdulillah berhasil ...
Karena masalah itu adalah sumber uang juga sumber ilmu... :-D
Karena suatu kebutuhan, saya harus merubah type data sebuah field dari VARCHAR(40) ke VARCHAR(200), kemuadian saya coba buka tabel lewat SSMS dan ternyata SSMS tidak bisa membuka daftar tabel di treeview-nya. dan mendapatkan kode error 1222.
Menuut mbah google errror 1222 adalah karena ada timeout, dan timeout itu diebabkan karena ada table yang dikunci (lock) oleh 'transaction'.
Langkah pertama saya coba KILL Connection Database da ternyata GAGAL.
Langkah kedua saya coba kill ID yang IDnya saya dapat dari Query
SELECT conn.session_id
, host_name
, program_name
, nt_domain
, login_name
, connect_time
, last_request_end_time
FROM sys.dm_exec_sessions AS sess
JOIN sys.dm_exec_connections AS conn ON sess.session_id = conn.session_id
where open_transaction_count
ID yang dihasilkan saya KILL #nomor_ID
dan ternyata GAGAL TOTAL.
kemudian saya tanya lagi mbah google dan akhirnya menemukan script ini di sini
USE Master
GO
EXEC sp_who2
GO
Coba lihat kolom BlkBy, nah ID yang saya tandai itulah penyebab Database terkunci.
ID tersebut saya kill (KILL #nomor_ID)
Dan alhamdulillah berhasil ...
Komentar
Posting Komentar