İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

ASP de baglantıları kapatma olayı ?

annudora

0
İyinet Üyesi
Katılım
6 Mart 2006
Mesajlar
2,016
Reaction score
3
Konum
@nkara
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

0
İyinet Üyesi
Katılım
28 Mart 2005
Mesajlar
1,273
Reaction score
3
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>
 

annudora

0
İyinet Üyesi
Katılım
6 Mart 2006
Mesajlar
2,016
Reaction score
3
Konum
@nkara
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

0
İyinet Üyesi
Katılım
28 Mart 2005
Mesajlar
1,273
Reaction score
3
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

0
İyinet Üyesi
Katılım
30 Mayıs 2004
Mesajlar
281
Reaction score
0
Konum
Tekirdağ
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

0
İyinet Üyesi
Katılım
28 Mart 2005
Mesajlar
1,273
Reaction score
3
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

0
İyinet Üyesi
Onaylı Üye
Katılım
25 Haziran 2005
Mesajlar
4,856
Reaction score
1
Konum
Bursa
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

0
İyinet Üyesi
Katılım
28 Mart 2005
Mesajlar
1,273
Reaction score
3
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

0
İyinet Üyesi
Katılım
30 Mayıs 2004
Mesajlar
281
Reaction score
0
Konum
Tekirdağ
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
 

Turkmucit

0
İyinet Üyesi
Katılım
18 Ocak 2006
Mesajlar
1,523
Reaction score
0
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

0
İyinet Üyesi
Katılım
2 Nisan 2007
Mesajlar
116
Reaction score
0
Konum
Sevdim O Zalimi
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

0
İyinet Üyesi
Katılım
11 Kasım 2004
Mesajlar
284
Reaction score
0
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.. !!!
 

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.

Üst