chat eczaonline.com yazılım uzmanı gaziantep web tasarım

ASP de baglantıları kapatma olayı ?

Katılım
6 Mar 2006
Mesajlar
2,016
Beğeniler
3
Konum
@nkara
#1
Kod:
<% conn_STRING = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/database/veritabanim.mdb") %>

<% set rsBag = Server.CreateObject("ADODB.Recordset")
rsBag.ActiveConnection = conn_STRING
rsBag.Source = "SELECT AD,NO,KAYIT WHERE ..... "
rsBag.CursorType = 0
rsBag.CursorLocation = 2
rsBag.LockType = 3
rsBag.Open() %>
yukarıdakini

<% rsBag.close()
set rsBag = nothing %> lke kapatıyoruz. Peki farklı sekilde acılanlar nasıl oluyor ?

örnegin :

Kod:
<% set hitArtir = Server.CreateObject("ADODB.Command")
hitArtir.ActiveConnection = conn_STRING
hitArtir.CommandText = "UPDATE KAYITLAR SET HIT = HIT + 1 WHERE ...."
hitArtir.CommandType = 1
hitArtir.CommandTimeout = 0
hitArtir.Prepared = true
hitArtir.Execute() %>
veya :

Kod:
<% Set bagIRTIBAT = Server.Createobject("ADODB.Connection")
bagIRTIBAT.Open ("DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/database/IRTIBAT_veritabanim.mdb")) %>
şeklinde acılmıs bi baglantıyı da kapatmak gerekirmi ? yani veriyolu olayındada kapatılma işlemi gerekiyormu ?

Kod:
<% bagIRTIBAT.close()
set bagIRTIBAT = nothing %>
şeklinde ...??? yoksa boyle bişi sadece Kayıt icin acılan baglardamı oluyor.
 

murdock

Müptela
Katılım
28 Mar 2005
Mesajlar
1,273
Beğeniler
3
#2
kapatmamanın hiçbir zararı olmaz. ücretsiz scriptlerin sonunu inceleyebilirsin..

ama aşağıda örnek bir sayfa sonunu verdim böyle bi durumda kapatabilirsin. bu durum db bağlantısıyla ilgili kullanım bittikten sonra sırf html kodları mevcutsa aşağıdaki gibi kapatıpda devam edebilirsin..
deis=mesaj
end function
rs.addnew
rs("yazan")=deis(yazan)
rs("yazanemail")=deis(yazanemail)
rs("yorum")=deis(yorum)
rs("onay")=onay
rs("yorumid")=deis(request.form("id"))
rs("yorumtarih")=date()
rs.update
rs.close:set rs=nothing
baglanti.close:set baglanti=nothing
%>
<%response.write "<b><font face='verdana' size='1'>Yorumunuz onaylandiktan sonra yayinlanacaktir.</font></b><br>"
%>
<p align="center"><a href="javascript:window.close()"><font face="verdana" size="1">Pencereyi kapat</font></a>
 
Katılım
6 Mar 2006
Mesajlar
2,016
Beğeniler
3
Konum
@nkara
#3
ilk soyledigim kısımda kapatmak sart oluyor. yoksa access biliosunki ŞİŞİYORMUYMUS neymiş :) tıkanıyor ve site acılmıyor.

Son iki durumda kapatılıyormu tereddütte kaldım. gerek yok diyosun sanırım ama birileride cıkar gereklidir derse onlarla urasıcam :)

ücretsiz scriptleri inceliyorumda hepsi adam akıllı olmuyor. Bazıları eksik bazıları yanlıs bile olabiliyor kodlamalar. Sunucuyu minimum yoran neyse onları ogrenmek istiyorum kısacası.

tesekkurler cevap icin :)
 

murdock

Müptela
Katılım
28 Mar 2005
Mesajlar
1,273
Beğeniler
3
#4
aga valla yehhu.com hiçbiri kapalı değil.. şişen patlayan yok hiç dbleride onarmadım 6-7 aydır.. genede senin kararın kapatsan zararı olmaz kapatmasanda..
 

Bulutlar

Profesyonel
Katılım
30 May 2004
Mesajlar
281
Beğeniler
0
Yaş
42
Konum
Tekirdağ
#5
ilk yazdığında benimde bildiğim şekilde kesinlikle kapatmak şart. açılan dbleri kapatmadığın zaman *.mdb lerin yanında birde *.ldb ler oluşur. bu ldb'ler veritabının kilitli olduğunu gösterir ve bir süre scriptin sitenin herneyse açılmamasına sebep olur ve sitede 500 hata koduyla bir hata verir, iç sunu hatası olur(sanırım ismi buydu). uzun yıllardır asp kullanıyorum ve benim bildiğim kesinlikle kapatılmasıdır. Site üzerinde online ziyaretçi sayısı arttığında yukarıda da yazdığım gibi ldb'ler oluşur, kapatılmadığı taktirde.
 

murdock

Müptela
Katılım
28 Mar 2005
Mesajlar
1,273
Beğeniler
3
#6
ben zararını görmediğim için söyledim. ldblerin bende farkındayım ama 500 hata kodu olmadı bende hiç.. demek istediğin bi zaman sora yüklenmeden dolayı dbnin kullanıldığı sayfamı açılmaz yoksa komple sitemi açılmaz?

bilgi verdiğin için teşekkürler bu arada +rep
 

Senol

Onursal Üye
Onaylı Üye
Katılım
25 Haz 2005
Mesajlar
4,856
Beğeniler
1
Konum
Bursa
#7
benim yaşadığım en buyuk sorunlardan birisi bu bağlantı kapanmadığı zaman db yi kilitliyordu hemen hergun sitem kilitleniyordu 7000 tekil hitim var suan ve mecburen server aldım sırf site kilitlenmesi yuzunden
 

murdock

Müptela
Katılım
28 Mar 2005
Mesajlar
1,273
Beğeniler
3
#8
peki benim ayrı bi sorum olucak.. bağlantı ismini belirtmeden açık bütün db bağlantısını kapatmak için kısa küçük bi kod varmı.. include olan alt bölgeye otomatik koysak olurmu.. ve ayrıca açık db olmasa onu koymamızdan dolayı hata verirmi ?
 

Bulutlar

Profesyonel
Katılım
30 May 2004
Mesajlar
281
Beğeniler
0
Yaş
42
Konum
Tekirdağ
#9
ben zararını görmediğim için söyledim. ldblerin bende farkındayım ama 500 hata kodu olmadı bende hiç.. demek istediğin bi zaman sora yüklenmeden dolayı dbnin kullanıldığı sayfamı açılmaz yoksa komple sitemi açılmaz?

bilgi verdiğin için teşekkürler bu arada +rep
db nin kullanıldığı sayfada sürekli gel gitler olur. bu gel gitlerin sıklığı ve süresi kullandığınız host resel. vb. şeylerede biraz bağlı en azından tecrübe ettiğim kadarıyla böyle. örneğin sitenizde bir banner yönetim scripti kullanıyorsanız ve banner gösterim sayfasını sitedeki tüm sayfalarınıza include ettiyseniz bu .lbd ler tüm sitenizi etkileyecektir. ama atıyorum magazin haberleri için kullandığınız db farklı ve o db kilitlendi bu sefer sadece magazin haberleriniz açılmayacak. gibi gibi gibi... bu ldb lerden çok çektim bende :)

peki benim ayrı bi sorum olucak.. bağlantı ismini belirtmeden açık bütün db bağlantısını kapatmak için kısa küçük bi kod varmı.. include olan alt bölgeye otomatik koysak olurmu.. ve ayrıca açık db olmasa onu koymamızdan dolayı hata verirmi ?
benim bildiğim öyle bir kod yok. varsada benim haberim hiç olmadı, duymadım. Eğer bu şekil birşey varsa güzel olur gerçekten, öğrenmek isterim. kolay gelsin herkese
 
Katılım
18 Ocak 2006
Mesajlar
1,523
Beğeniler
0
#10
Arkadaşlar asp net için konuşuyorum belki asp de de vardır.Web config dosyasına connectingstring yani bağlantı cümlenizi yazıp buna bir ad veriyorsunuz mesela "baglantim" ve bunlarda gerektigi kadar her veritabanina bir tane tanimliyorsunuz.
Sayfalarınızda kullanırken <%connectingstrings:baglantim %> benzeri bir yapı ile tanımladığınız baglantıları kullanıyorsunuz.
Bunun muazzam faydası oluyormus.Hem kullanım açısından kolaylık sağlar hemde datanıza farklı adlarla baglantıyı dolayısıyla gereksiz yormayı engellersiniz.
Kapatma olayında ben diyorumki open() diyorsan Close () da demelisin.
Execute de gerek olmadığını biliyorum.Ancak olsaki orada da kullansan bir sıkıntı olacağını sanmam olurda hata verirse zaten kaldırırsın.Ama bildigim kadarıyla execute li çalıştırmalar bağlanıp komutu çalıştırıp bağlantıyı keserer ve halihazırda bağlantı varsa o zaman sadece komutu çalıştırırlar mevcut bağlantıyı kesmezler...
Kolay gelsin..
 

Stain

Profesyonel
Katılım
2 Nis 2007
Mesajlar
116
Beğeniler
0
Konum
Sevdim O Zalimi
#11
dos da bile ana dizine çıkmak için cd\ komutu varsa aspde de bağlantıların hepsini kapatmak için bi kod vardır herhalde. araştırmak lazım..
ayrıca executelerde bağlantı kapamaya gerek kalmıyo. bilindiği üzere daha performanslı ve bu performansıda buradan kaynaklanıyor. fakat executelerde ben problemlerle karşılaşıyorum olmadık yerde site çalışmıyo bakıyosunuz çalışması lazım bu kodun ama çalışmıyo, diğer türlü deniyorum takır takır çalışıyo :D
 

sitemedya

Profesyonel
Katılım
11 Kas 2004
Mesajlar
284
Beğeniler
0
#12
konuyu özetliyip tartışmayı bitiriyim.

xxx.open komutu ile açtığın tüm DB bağlantılarını, kodda işinin bittiği yerde xxx.close ile kapatılması gerekir.

xxx.execute komutunda açma veya kapatılma diye birşey söz konusu değildir. Bu komutta "aç, işlem yapacağım" demiyorsun, "şunu hemen yap, bitsin" diyorsun. mesela INSERT veya UPDATE işleminde ozellikle bu kullanılır. SELECT için kullanılmaz.

xxx.open ile açılmış bağlantıyı xxx.close ile kapatmazsanız ne olur, şu olur: browser üzerinde sayfa tam olarak gelsede, browser kapatılsa bile, server üzerinde DB bağlantısı connectiontimeout da belirtilmiş süre kadar bağlantıda kalmaya devam eder. Eğer sayfa gösterimi çok ise veya komut çokca tekrarlanmış ise, zamanla kapatılmamış bağlantıların sayısının fazlalığı nedeniyle DB connection pool şişer ve DB nin tepki verme süresi düşer ve sonuçta sayfalar daha yavaş açılmaya başlar. Access kullananlarda ise access patlar..

Not: Access kullananlar, mutlaka asp diyorsanız mssql kullanın.. !!!
 

Bu konuyu okuyanlar (Üyeler: 1, Misafirler: 0)

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur. iyinet.com sayfalarında yer alan yazı, görsel ve linklerle ilgili hukuki şikayetleriniz için Buradan iletişime geçmeniz durumunda, ilgili kanunlar ve yönetmelikler çerçevesinde en geç 7 gün içerisinde iyinet yönetimince tarafınıza dönüş sağlanacaktır. Betcup Artemisbet Forum canlı bahis sohbet - - chat
Üst