Ceviz Forum

Geri Dön   Ceviz Forum > Programlama > Veritabanları & SQL

Cevapla
 
LinkBack Seçenekler
Eski 03/12/2006, 03:20   #1 (permalink)
wanna sleep more
 
Volkan Uzun Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 11/2002
Yer: CA
Mesaj: 2,655
Varsayılan sql server ve deadlock

universitenin kullandigi bir sistemde, uygulama arada bir hataya dusuyor, uygulamanin loglarina baktigimizda veritabani deadlock oldugunu goruyoruz.
maalesef elimizde uygulamanin source kodu yok, olsa da degistirmeye iznimiz yok sanirim.
googledan sql server deadlock olayini arastirdim biraz, sql server da LOCK_TIMEOUT suresi bir processin ne kadar sure bir objeye lock koyabilecegini gosteriyormus, ve default olarak bu defer inifinite yani sonsuz sureymis.

simdi sorum su, ben query analyzerdan lock_timeout u degistidigim zaman bu sadece benim query analyzer ile yaptigim baglanti icin mi gecerli yoksa, tum veritabani lock_timeout degiecekmi ?
ya da aklinizda baska bir yol geliyor mu ? sorgulari degistirme sansimiz yok.
__________________
http://www.msnetprogrammer.net/blog (MCP & MCTS & MVM)
Volkan Uzun hatta değil   Alıntı Yaparak Yanıtla
Eski 03/12/2006, 10:38   #2 (permalink)
Bilgi Paylaştıkca Çoğalır
 
erdkd Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 11/2006
Yer: Bilgisayarın Önü
Mesaj: 169
Varsayılan

selamlar
bilebildiğim kadarıyla
SET deadlock_PRIORITY ile deadlock işlemini ekarte edebilirsiniz fakat sonuçta bu sizin query inizde etkili olur.
SQL Server transactionlardan birisini kurban seçip transactionı geri alırken hata mesajı olarak 1205 nolu hata mesajını üretir.
Sanırım bu hata yakalanarak işlem yapılabilir.
Yardımcı olabildiysem sevinirim
kolaygelsin
__________________
Sevgide güneş gibi,dostluk ve kardeşlikte akarsu gibi ,hataları örtmede gece gibi,tevazuda toprak gibi ,öfkede ölü gibi ol,her ne olursan ol,ya olduğun gibi görün,ya göründüğün gibi ol.(Mevlana)
erdkd hatta değil   Alıntı Yaparak Yanıtla
Eski 03/12/2006, 22:05   #3 (permalink)
wanna sleep more
 
Volkan Uzun Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 11/2002
Yer: CA
Mesaj: 2,655
Varsayılan

tamam ama soru tam olarak su
bu transactionlari baslatan 3. firma yazilimi, ben nasil bir sey yapmaliyim ki bu 3. firma yaziliminin transactionlari deadlock a dustugunde sql server birini oldursun
__________________
http://www.msnetprogrammer.net/blog (MCP & MCTS & MVM)
Volkan Uzun hatta değil   Alıntı Yaparak Yanıtla
Eski 03/12/2006, 23:30   #4 (permalink)
Bilgi Paylaştıkca Çoğalır
 
erdkd Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 11/2006
Yer: Bilgisayarın Önü
Mesaj: 169
Varsayılan

SQL Profiler dan hangi kodların deadlock oluşturduğunu tespit etmeniz gerekiyor.
sonrasında örneğin 'SET LOCK_TIMEOUT 1000' la 1000 mili saniye içerisinde kilitlenmenin açılmasını bekleyen ve eğer bu kadar zamanda kilitlenme devam ediyorsa size bir hata mesajı dönecektir.
bu hata mesajı 1222 dir.
bu mesaj @@error=1222 ile yakalanabilir.
sonrasındada rollback ile işlemi geri alabilirsiniz.
fakat önemli olan önce kilitlenmenin hangi kodlardan oluştuğunu bulmaktır.SQL Profiler in döneceği trace bu konuda size yardımcı olacaktır.
__________________
Sevgide güneş gibi,dostluk ve kardeşlikte akarsu gibi ,hataları örtmede gece gibi,tevazuda toprak gibi ,öfkede ölü gibi ol,her ne olursan ol,ya olduğun gibi görün,ya göründüğün gibi ol.(Mevlana)
erdkd hatta değil   Alıntı Yaparak Yanıtla
Eski 03/12/2006, 23:33   #5 (permalink)
Bilgi Paylaştıkca Çoğalır
 
erdkd Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 11/2006
Yer: Bilgisayarın Önü
Mesaj: 169
Varsayılan

select @@LOCK_TIMEOUT değeri ile kilitlenme zaman aşımı öğrenilebilir.
__________________
Sevgide güneş gibi,dostluk ve kardeşlikte akarsu gibi ,hataları örtmede gece gibi,tevazuda toprak gibi ,öfkede ölü gibi ol,her ne olursan ol,ya olduğun gibi görün,ya göründüğün gibi ol.(Mevlana)
erdkd hatta değil   Alıntı Yaparak Yanıtla
Eski 03/12/2006, 23:34   #6 (permalink)
Bilgi Paylaştıkca Çoğalır
 
erdkd Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 11/2006
Yer: Bilgisayarın Önü
Mesaj: 169
Varsayılan

mesaj düzenleme hakkım olmadığı için ayrı mesaj atmak zorunda kaldım.
__________________
Sevgide güneş gibi,dostluk ve kardeşlikte akarsu gibi ,hataları örtmede gece gibi,tevazuda toprak gibi ,öfkede ölü gibi ol,her ne olursan ol,ya olduğun gibi görün,ya göründüğün gibi ol.(Mevlana)
erdkd hatta değil   Alıntı Yaparak Yanıtla
Eski 04/12/2006, 09:09   #7 (permalink)
wanna sleep more
 
Volkan Uzun Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 11/2002
Yer: CA
Mesaj: 2,655
Varsayılan

uygulama benim olmadigi icin kodlarida bizde olmadigi icin, kill etmek disinda cozumum yok, ama sorum hala acik maalesef ya sorumu ben anlatamiyorum ya da yardimci olmaya calisan arkadaslar yarisini okuyup cevap veriyor.
ben uygulama kodlarini degistiremeyegime gore, oturup 24 saat hergun trace, profiler yapamayacagima gore, bu islemi otomatige baglamanin yontemi nedir ?
yani sql server a bir sekilde deadlock oldugunda sec birini ve oldur processi demenin yolu nedir ( ondan sonra hep otomatik olsun ben her deadlockta bunu demiyim )
__________________
http://www.msnetprogrammer.net/blog (MCP & MCTS & MVM)
Volkan Uzun hatta değil   Alıntı Yaparak Yanıtla
Eski 04/12/2006, 13:59   #8 (permalink)
Bilgi Paylaştıkca Çoğalır
 
erdkd Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 11/2006
Yer: Bilgisayarın Önü
Mesaj: 169
Varsayılan

Selamlar ve iyi pazarlar
problem şu hangi transaction da hata olduğunu ancak transaction işlemi bize bir mesaj gönderiyorsa bilebiliriz. Ve biz sonra bu hatayı yakalayıp kill nasıl yapabiliriz.
ben daha işin başında tıkandığımız kanısındayım. hangi transac veya transaction lar bu işleme neden oluyor. önce onu tespit etmemiz gerekiyor. ve bende bilgilerim oranında bunu tespit edebilirsek bu forumda başka arkadaşlarında yardımıyla bir yol alabiliriz diye düşünüyorum.
bende sizin gibi bir yol bulmaya çalışıyorum. biraz siz biraz ben ve biraz diğer arkadaşlar derken bilgilerimizi paylaşıp hepimize katkıda bulunacak bir sonuca ulaşacağız.
bu nedenle 'select @@LOCK_TIMEOUT' la kilitlenme zaman aşımlarını bulabilirsek ve bu zaman aşımına 'SET LOCK_TIMEOUT 1000' le veya 2000 le bir değer atarsak buradan @error=1222 yi alıp sonraki işlem adımlarını tartışabiliriz diye düşünerek bir yol önermeye çalışıyorum. belkide daha kolay bir yolu vardır. onuda henüz bilmiyorum.
kolay gelsin
Sevgiler
__________________
Sevgide güneş gibi,dostluk ve kardeşlikte akarsu gibi ,hataları örtmede gece gibi,tevazuda toprak gibi ,öfkede ölü gibi ol,her ne olursan ol,ya olduğun gibi görün,ya göründüğün gibi ol.(Mevlana)
erdkd hatta değil   Alıntı Yaparak Yanıtla
Eski 04/12/2006, 14:47   #9 (permalink)
Bilgi Paylaştıkca Çoğalır
 
erdkd Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 11/2006
Yer: Bilgisayarın Önü
Mesaj: 169
Varsayılan

pazar günü soruna devam
sp_who procedure ile blk kolonu -2 olduğunda işlemin kilitlendiği bilgisini geri gönderiyor. bunu yakalamayı bir transaction başlatıp sağlarsak blk kolonu -2 olduğunda rolback ve commit yapabiliriz
__________________
Sevgide güneş gibi,dostluk ve kardeşlikte akarsu gibi ,hataları örtmede gece gibi,tevazuda toprak gibi ,öfkede ölü gibi ol,her ne olursan ol,ya olduğun gibi görün,ya göründüğün gibi ol.(Mevlana)
erdkd hatta değil   Alıntı Yaparak Yanıtla
Eski 04/12/2006, 14:50   #10 (permalink)
Bilgi Paylaştıkca Çoğalır
 
erdkd Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 11/2006
Yer: Bilgisayarın Önü
Mesaj: 169
Varsayılan

sp_who ile dönen spid değeri
KILL 'spid değeri' yazılıp devredışı bırakılabilir.
__________________
Sevgide güneş gibi,dostluk ve kardeşlikte akarsu gibi ,hataları örtmede gece gibi,tevazuda toprak gibi ,öfkede ölü gibi ol,her ne olursan ol,ya olduğun gibi görün,ya göründüğün gibi ol.(Mevlana)
erdkd hatta değil   Alıntı Yaparak Yanıtla
Cevapla

Bookmarks

Seçenekler

Mesaj Yazma Hakları
Yeni mesajgöndermezsiniz
Cevap yazamazsınız
Dosya ekleyemezsiniz
Mesajınızı düzenleyemezsiniz

BB code is Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu açana göre Forum Cevap En Son Mesaj
Advanced Server & Standart Server Arasındaki Farklar? Lacix Windows 3 29/10/2005 13:19
Hata mesaji: [Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax resitgalip Veritabanları & SQL 4 16/05/2004 14:26
WinConnect Server XP: WinXP için Terminal Server ilacı selami_32 Windows 0 25/04/2004 14:16


Forum saati Türkiye saatine göredir. GMT +3. Şu anda saat 03:51.

Reklamlar & Desteklenenler
Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv |


Forum Yazılımı: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright ©2001 - 2008, Ceviz.net