Προς το περιεχόμενο

Απορία σε ADO.NET


APEKEPEOY

Προτεινόμενες αναρτήσεις

Δημοσ.

Η απορία μου είναι η εξής: Ποια η διαφορά της μεθόδου Close του αντικειμένου Connection με τη μέθοδο Dispose του ίδιου αντικειμένου?

Δημοσ.

αν και δεν ειμαι ειδικος στο Νετ, πιστευω ειναι ο ιδιος τροπος συνδεσης οπως και με τη java

 

προηγουμενος εχεις κανει

new connection, (δημιουργεις ενα αντικειμενο στη μνημη του προγραμματος)

kai open connection (δημιουργεις ενα αντικειμενο στη μνημη του database server)

 

με το close κλεινεις τη συνδεση, οποτε ελευθερωνεις μια θεση απο το conection pool (μεγιστος αριθμος επιτρεπόμενων ταυτοχρονων συνδεσεων) tou database server

 

me to dispose ελευεθερωνεις τη μνημη που καταλαμβανει το conn απο το προγραμμα σου.

 

λογικο ειναι να κανεις new/dispose μονο μια φορά, στο ανοιγμα/κλεισιμο του προγράμματος,

ενω open/close καθε φορα που θα χρειαστείς κατι απο την db (αν μεσολαβει ενα σημαντικο διαστημα).

 

αν κανεις new, open, dispose, ελευθερωνεις μεν τη μνημη του προγράμματος σου, αλλα δεν πληροφορεις τη βαση οτι δεν σε χρειαζομαι άλλο. Η βάση (αναλογα τον τυπο), κρατάει ανοιχτο το connection μεχρι να επελθει το time out.

 

τωρα, στην πραξη αν κανεις τεστ μόνος σου με μια βαση με τις default ρυθμισεις, μπορει να μην καταλαβαινεις διαφορά,

 

Aν σεταρεις μια βάση px. να εχει pool = 2, και να περιμενει για time out χρονο = 2 λεπτά.

Αν κάνεις 3 φορές new, open, dispose σε διαστημα μικρότερο των 2 λεπτων, sthn 3η φορά δεν θα μπορεσεις να συνδεθείς.

 

τα παραπανω δεν εχουν σχεση αποκλειστικά με .Net, και εξαρτώνται και απο άλλα (OS, επικοινωνια, τύπος DB,...)

 

http://www.sitepoint.com/article/992

http://builder.com.com/5100-6386-1058860.html

http://www.eggheadcafe.com/PrintSearchContent.asp?LINKID=353

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...