Pool σύνδεσης – ανάπτυξη εφαρμογών για κινητά, υπηρεσίες web, αρχιτεκτονική SOA – Τεχνολογία
Μεταπηδήστε στο περιεχόμενο

Συνένωση συνδέσεων - ανάπτυξη εφαρμογών για κινητά, υπηρεσίες web, αρχιτεκτονική SOA

Διαφημίσεις

Τι είναι η συγκέντρωση συνδέσεων;

Η συγκέντρωση συνδέσεων επιτρέπει την επαναχρησιμοποίηση των υπαρχουσών συνδέσεων για τη μείωση των επιβαρύνσεων της συνεχούς δημιουργίας και απόρριψης συνδέσεων που έχουν την ίδια διαμόρφωση. Με άλλα λόγια, το άνοιγμα και το κλείσιμο συνδέσεων που χρησιμοποιούν την ίδια συμβολοσειρά σύνδεσης και διαπιστευτήρια μπορούν να επαναχρησιμοποιήσουν μια διαθέσιμη σύνδεση στο χώρο συγκέντρωσης. Οι τυπικές εφαρμογές χρησιμοποιούν τα ίδια αντικείμενα σύνδεσης για τη συνεχή λήψη και ενημέρωση δεδομένων από μια βάση δεδομένων. Η συγκέντρωση συνδέσεων παρέχει πολύ υψηλότερο επίπεδο απόδοσης εξαλείφοντας την ανάγκη για τη βάση δεδομένων να δημιουργεί και να απορρίπτει συνεχώς συνδέσεις. Οι ομάδες σύνδεσης διαχωρίζονται κατά διαδικασία, τομέα εφαρμογής και συμβολοσειρά σύνδεσης. Για συμβολοσειρές σύνδεσης που χρησιμοποιούν ενσωματωμένη ασφάλεια, δημιουργείται ένα ξεχωριστό pool για κάθε μοναδική ταυτότητα.

Έλεγχος επιλογών συγκέντρωσης σύνδεσης

Η συγκέντρωση συνδέσεων είναι ενεργοποιημένη από προεπιλογή κατά τη δημιουργία αντικειμένων σύνδεσης ADO.NET. Μπορείτε να ελέγξετε τη συμπεριφορά συγκέντρωσης συνδέσεων (ή να απενεργοποιήσετε τη συγκέντρωση σύνδεσης συνολικά) ορίζοντας συγκεκριμένες λέξεις-κλειδιά συμβολοσειράς σύνδεσης για τη συγκέντρωση συνδέσεων. Για παράδειγμα, για να απενεργοποιήσετε συγκεκριμένα τη συγκέντρωση σύνδεσης, ορίστε το Pooling=False στη συμβολοσειρά σύνδεσής σας. Ο Πίνακας 5-7 παρέχει μια λίστα με λέξεις-κλειδιά συμβολοσειράς σύνδεσης που μπορούν να χρησιμοποιηθούν για τον έλεγχο του τρόπου με τον οποίο μια συγκεκριμένη σύνδεση αλληλεπιδρά με το χώρο συγκέντρωσης συνδέσεων. Δεν είναι όλες οι λέξεις-κλειδιά διαθέσιμες για όλους τους παρόχους. Για παράδειγμα, ο πάροχος OLE DB παρακολουθεί τη συγκέντρωση συνδέσεων (επίσης γνωστή ως συγκέντρωση πόρων ή περιόδους σύνδεσης) με βάση την τιμή που έχει οριστεί για τη λέξη-κλειδί Υπηρεσίες OLE DB στη συμβολοσειρά σύνδεσης.

Σύνδεση τραπεζιού Συμβολοσειρά σύνδεσης πισίναςΕκτός από τις ιδιότητες συμβολοσειράς σύνδεσης που ελέγχουν τη συμπεριφορά συγκέντρωσης συνδέσεων, υπάρχουν επίσης διαθέσιμες μέθοδοι σε αντικείμενα σύνδεσης που μπορούν επίσης να επηρεάσουν τη συγκέντρωση σύνδεσης. Οι διαθέσιμες μέθοδοι χρησιμοποιούνται συνήθως όταν κλείνετε συνδέσεις στην εφαρμογή σας και γνωρίζετε ότι δεν θα χρησιμοποιηθούν ξανά. Αυτό καθαρίζει τη δεξαμενή σύνδεσης απορρίπτοντας τις συνδέσεις αντί να τις επιστρέφει στην πισίνα όταν είναι κλειστές. Τυχόν συνδέσεις που βρίσκονται ήδη στην πισίνα και είναι ανοιχτές θα απορριφθούν την επόμενη φορά που θα κλείσουν. Ο Πίνακας 5-8 παραθέτει τις διαθέσιμες μεθόδους για την αλληλεπίδραση με τις ομάδες σύνδεσης.

Διαμόρφωση συνδέσεων για χρήση της συγκέντρωσης συνδέσεων

Από προεπιλογή, όλοι οι πάροχοι δεδομένων .NET Framework που είναι διαθέσιμοι στο ADO.NET έχουν ενεργοποιημένη τη συγκέντρωση συνδέσεων, αλλά το επίπεδο ελέγχου που είναι διαθέσιμο για την εργασία με τη συγκέντρωση συνδέσεων ποικίλλει ανάλογα με τον πάροχο που χρησιμοποιείται.

Διαμόρφωση ομαδοποίησης σύνδεσης με συνδέσεις διακομιστή SQL

Από προεπιλογή, το αντικείμενο SqlConnection χρησιμοποιεί αυτόματα τη συγκέντρωση συνδέσεων. Κάθε φορά που καλείτε το Sqlconnection.Open με μια μοναδική συμβολοσειρά σύνδεσης, δημιουργείται ένα νέο pool. Ελέγξτε τη συμπεριφορά συγκέντρωσης σύνδεσης ορίζοντας λέξεις-κλειδιά του χώρου συγκέντρωσης σύνδεσης στη συμβολοσειρά σύνδεσης όπως περιγράφηκε προηγουμένως στον Πίνακα 5-7. Για παράδειγμα, σκεφτείτε μια σύνδεση όπου θέλετε να ορίσετε το ελάχιστο μέγεθος πισίνας. Εκχωρώντας μια τιμή μεγαλύτερη από το μηδέν στη λέξη-κλειδί Mîn Pool Size, διασφαλίζετε ότι το pool δεν θα καταστραφεί μέχρι να τερματιστεί η εφαρμογή. Για να ορίσετε το ελάχιστο μέγεθος πισίνας σε 5, χρησιμοποιήστε μια συμβολοσειρά σύνδεσης παρόμοια με την ακόλουθη:

Πηγή δεδομένων=SqlServerName;Initial Catalog=DatabaseName; Ενσωματωμένη ασφάλεια=True;Ελάχιστο μέγεθος πισίνας=5

Το ελάχιστο μέγεθος πισίνας είναι 0 από προεπιλογή, πράγμα που σημαίνει ότι κάθε σύνδεση πρέπει να δημιουργηθεί και να αρχικοποιηθεί όπως ζητήθηκε, αυξάνοντας το ελάχιστο μέγεθος πισίνας στη συμβολοσειρά σύνδεσης, ο υποδεικνυόμενος αριθμός συνδέσεων δημιουργείται και είναι έτοιμη για χρήση, γεγονός που μπορεί να μειώσει το χρόνο χρειάζεται για να δημιουργηθεί η σύνδεση σε αυτές τις αρχικές συνδέσεις.

Ρύθμιση παραμέτρων του Connection Pooling με Oracle Connections

Οι συνδέσεις που χρησιμοποιούν το .NET Framework Data Provider για Oracle χρησιμοποιούν αυτόματα τη συγκέντρωση συνδέσεων από προεπιλογή. Μπορείτε να ελέγξετε τον τρόπο με τον οποίο η σύνδεση χρησιμοποιεί τη συγκέντρωση ορίζοντας λέξεις-κλειδιά συμβολοσειράς σύνδεσης. Ο Πίνακας 5-10 περιγράφει λεπτομερώς τις λέξεις-κλειδιά συμβολοσειράς σύνδεσης που είναι διαθέσιμες για την αλλαγή των δραστηριοτήτων συγκέντρωσης συνδέσεων.

Διαχείριση σφαλμάτων σύνδεσης

Όταν ο SQL Server επιστρέφει μια προειδοποίηση ή ένα σφάλμα, ο πάροχος δεδομένων .NET Framework για SQL Server δημιουργεί και ρίχνει ένα SqlException που μπορείτε να συλλάβετε στην εφαρμογή σας για να χειριστείτε το πρόβλημα. Όταν απορριφθεί το SqlException, επιθεωρήστε την ιδιότητα SqlException.Errors για να αποκτήσετε πρόσβαση στη συλλογή σφαλμάτων που επιστρέφονται από τον διακομιστή SQL. Η ιδιότητα SqlException.Errors είναι μια κλάση SqlErrorCollection (μια συλλογή κλάσεων SqlError) που περιέχει πάντα τουλάχιστον ένα αντικείμενο SqlError.

ΠΕΡΙΣΣΟΤΕΡΕΣ ΠΛΗΡΟΦΟΡΙΕΣ Σφάλματα διακομιστή SQL

Το SqlConnection θα παραμείνει ανοιχτό για μηνύματα με επίπεδο σοβαρότητας 19 ή μικρότερο, αλλά κανονικά θα κλείσει αυτόματα όταν η σοβαρότητα είναι 20 ή μεγαλύτερη.

Περίληψη

  • Η συγκέντρωση σύνδεσης είναι ενεργοποιημένη από προεπιλογή.
  • Οι επιλογές συγκέντρωσης σύνδεσης ορίζονται στη συμβολοσειρά σύνδεσης, εκτός από τον πάροχο ODBC, ο οποίος χρησιμοποιεί το παράθυρο διαλόγου Διαχειριστής προέλευσης δεδομένων ODBC στα Windows.
  • Ένα αντικείμενο SqlException δημιουργείται όταν εντοπίζεται ένα σφάλμα στον διακομιστή SQL.
  • Κάθε παρουσία μιας εξαίρεσης SqlException περιέχει τουλάχιστον μία προειδοποίηση SqlError που περιέχει τις πραγματικές πληροφορίες σφάλματος διακομιστή.
  • Ο έλεγχος ταυτότητας των Windows (ονομάζεται επίσης ολοκληρωμένη ασφάλεια) είναι η προτεινόμενη μέθοδος για την ασφαλή σύνδεση με δεδομένα.
  • Αποθηκεύστε τις συμβολοσειρές σύνδεσης που περιέχουν ευαίσθητες πληροφορίες στο αρχείο διαμόρφωσης της εφαρμογής και κρυπτογραφήστε όλες τις ρυθμίσεις που περιέχουν ευαίσθητες πληροφορίες.