Forum

Veritabanı bağlantı...
 
Bildirimler
Hepsini Temizle

Veritabanı bağlantı/veri çekme sorunu

10 Yazılar
3 Üyeler
0 Reactions
2,668 Görüntüleme
(@HalilSAHiN)
Gönderiler: 5
Active Member
Konu başlatıcı
 

Merhaba,

Asp.NET + MSSql -> Yönetim paneli olan bir site geliştirmekteyim.Hosting olarak natro ile çalışıyoruz.Kimi zaman veritabanına bağlanırken kimi zaman ise açık bağlantı ile ilgili hata vermekte.

 Aldığım hatalar aşağıdaki gibidir.

Veritabanına bağlanırken aldığım hata:

Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.


 

Veri çekerken aldığım hata

executereader requires an open and available connection. the connection's current state is closed

 


 

 

Örnek Örnek Kod:

 

public static string KategoriAdiGetir(string AltKatID)

{

DB DB = new DB();
DB.DB_Baglan();
string KategoriAdi = "";
try
{

string Sql = "select AltKatID,AlKatAdi from tbl_urun_alt_kategori where AltKatID=" + AltKatID+" ";

SqlCommand cmd = new SqlCommand(Sql,DB.conn);

SqlDataReader dr = cmd.ExecuteReader();
dr.Read();
if (dr.HasRows)
{
KategoriAdi=dr["AlKatAdi"].ToString().Trim();

}
dr.Close();
}

catch (Exception ex)
{

Messagebox.show("Kategori Adı Getirilirken Hata Oluştu." + ex.Message);

}

DB.DB_Kapat();

return KategoriAdi;

}

 

---------------------------------------------------------------------

Bu şekilde açılan bağlantıları aslında DB.kapat(); ile kapatıyorum aslında.Aynı şekilde datareader nesnesini de  close() metodu ile kapatıyorum.Bunların dışında yapılması gereken herhangi bir şey var mıdır ? Örneğin Dispose gibi.Yada başka bir teknik mi kullanmalıyım örneğin bağlantı açık kalmış mı gibi ?

 
Gönderildi : 26/09/2017 17:47

(@zulfumehmetozcifci)
Gönderiler: 734
Prominent Member
 

Siteyi localde çalıştırırken hata alıyor musunuz?

Kişisel bir olay

 
Gönderildi : 26/09/2017 22:20

(@HalilSAHiN)
Gönderiler: 5
Active Member
Konu başlatıcı
 

Localde çalışırken hata almıyorum.Paylaşımlı hosting kullanıyoruz.Buna ek olarak da bir tane daha mssql veritabanı aldık.Verdikleri cevapta sorguların neden olduğu yönünde ancak bunu anlamanın yolu hangi sorgunun ne kadar süede cevap verdiği değil midir ? Bu bilgiyi paylaşmadılar.

Bunun yanında bağlantıların açık olduğu gibi bir cevap verdiler ancak ben   gerek veritabanındaki bağlantıyı gerekse açık olan datareaderları kapatıyorum.

 
Gönderildi : 27/09/2017 11:38

(@zulfumehmetozcifci)
Gönderiler: 734
Prominent Member
 

İyi günler Halil bey,

Genelde paylaşımlı hostinglerde bu tür sorunlar olabiliyor malesef. Çünki her host için bir sınırlama getiriliyor. Sorununuz da bundan kaynaklı olabilir. Bunu çözmenin en güzel yolu eğer iyi bir proje ise ve bütçeniz de varsa Windows bir VPS (Sanal Sunucu) kiralayıp işlemlerinizi daha rahat yapabilirsiniz. Ödemeler genelde aylık olduğu için hem sorununuz tekrar nüksetmesi durumunda kapatma imkanınız da var.

Ücretsiz de denemek isterseniz Digital ocean üzerinden bir droplet açarak da deneyebilirsiniz.

Ücretsiz droplet açabilmek için:

https://www.zulfumehmet.com/ucretsiz-sanal-sunucu-vps/  makaleyi inceleyebilirsiniz. 

Windows kurmak için de:

https://www.zulfumehmet.com/digitaloceana-windows-kurulumu/  

Makalelerini incelemenizi tavsiye edrim.

Kolay gelsin.

Kişisel bir olay

 
Gönderildi : 27/09/2017 14:20

(@HalilSAHiN)
Gönderiler: 5
Active Member
Konu başlatıcı
 

Öncelikle verdiğiniz cevap için teşekkür ederim.VPS sunucu aslında seçenekler arasında ve uzun vadede geçmeyi düşünüyoruz ancak ilk etapta hataya neyin sebep olduğunu bulmam gerekiyor.

 
Gönderildi : 27/09/2017 15:51

(@zulfumehmetozcifci)
Gönderiler: 734
Prominent Member
 

MsSQL ve ASP.Net uzmanı olan arkadaşlar yardımcı olacaklardır bu konuda. Veritabanınızda çok veri var mı?

Kişisel bir olay

 
Gönderildi : 27/09/2017 16:55

(@HalilSAHiN)
Gönderiler: 5
Active Member
Konu başlatıcı
 

Veritabanı boyutu şu an 6MB civarında.

 
Gönderildi : 27/09/2017 17:28

(@eravse)
Gönderiler: 1753
Üye
 

merhaba bu tur hostıngler shared db ve SQL express kullanırlar. Bazen tımeout alabılırsınız. Kodda bır sıkıntı goremedım db kapama ıslemlerı de dogru gozukuyor. şu makalede bulunan timeout özelliği ile connection time out süresi arttırılabilir fakat bu yönetimsel olarak sizin hostinginizde mevcut ve yetki dahilindemidir sormanız gerekiyor

 

https://msdn.microsoft.com/tr-tr/library/system.data.sqlclient.sqlconnection.connectiontimeout(v=vs.110).aspx

 

saygılarımla

 

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 27/09/2017 19:57

(@HalilSAHiN)
Gönderiler: 5
Active Member
Konu başlatıcı
 

Verdiğiniz cevap için teşekkür ederim.Dün gün boyu test ettim.Herhangi bir sorun çıkarmadı.Sanırım üzerinde durduğumuz konu ile alakalı (paylaşımlı hosting)  yoğunluk olduğu zaman sorgulara geç yanıt veriyor.Mssql manager dan bağlantığımda 444 tane veritabanı saydım.Tek bir sunucu üzerinde mi konumlandırmışlar bilmiyorum.

 
Gönderildi : 28/09/2017 12:06

(@zulfumehmetozcifci)
Gönderiler: 734
Prominent Member
 

Doğrudur tek sunucuda barındırıyorlar. Natronun bir güzel yanı şu, Windows sunucularda sadece ASP çalıştırıyor, Php çalıştırmak içinde Linux sunucu temin ediyordu galiba. Bir senedir kullanmıyorum, hala aynı durumda mı bilmiyorum.

Kişisel bir olay

 
Gönderildi : 28/09/2017 13:24

Paylaş: