Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 25464|Απάντηση: 0

[Πηγή] .net/C# Κατανεμημένο TransactionScope

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 5/5/2018 10:53:17 π.μ. | | | |
Για να παραθέσω τον οδηγό κάποιου άλλου:
Στην πραγματική εργασία ανάπτυξης, εκτελέστε ένα συμβάν και, στη συνέχεια, καλέστε μια άλλη διεπαφή για να εισαγάγετε δεδομένα, εάν υπάρχει εξαίρεση στη λογική επεξεργασίας, τότε τα δεδομένα που εισήχθησαν προηγουμένως θα γίνουν ανεπιθύμητα δεδομένα,
Αυτό που θέλουμε είναι να μπορούμε να ορίσουμε ολόκληρη τη μέθοδο ως συναλλαγή και η κλάση TransactionScope παρέχει μια απλή μέθοδο που σας επιτρέπει να μην χρειάζεται να αλληλεπιδράτε με την ίδια τη συναλλαγή.
για να επισημάνετε ένα μπλοκ κώδικα ως συμμετέχον σε μια συναλλαγή. Το αντικείμενο TransactionScope δημιουργεί μια συναλλαγή και ορίζει τη συναλλαγή στην ιδιότητα Current της κλάσης Transaction.

1. Πλεονεκτήματα του TransactionScope
1. Είναι πιο βολικό στη χρήση. Το TransactionScope μπορεί να υλοποιήσει έμμεσες συναλλαγές, έτσι ώστε να μπορείτε να γράφετε κώδικα επιπέδου πρόσβασης δεδομένων χωρίς να λαμβάνετε υπόψη τις συναλλαγές, αλλά να ελέγχετε τις συναλλαγές στο επιχειρηματικό επίπεδο.
2. Μπορούν να υλοποιηθούν κατανεμημένες συναλλαγές, όπως cross-database ή MSMQ.

2. Μειονεκτήματα του TransactionScope
1. Η απόδοση κόστους δεν είναι υψηλή. Για παράδειγμα, ελέγχετε μόνο τις συναλλαγές μιας βιβλιοθήκης στο "Πεδίο". Η χρήση του "TransactionScope" είναι λίγο σπάταλη.
2. Υπό κανονικές συνθήκες, εφόσον χρησιμοποιείτε το "TransactionScope", πρέπει να διαμορφώσετε το MSDTC, να εγκαταστήσετε ένα τείχος προστασίας και να ανοίξετε τη θύρα 139. Αυτή η θύρα δεν μπορεί να αλλάξει

3. Εάν πρέπει να χρησιμοποιήσετε κατανεμημένες συναλλαγές, πρέπει να το σκεφτείτε
1. Αυτή η πράξη πρέπει να περιλαμβάνεται στη συναλλαγή; Εάν αυτό το βήμα δεν ολοκληρωθεί ή αποτύχει, αξίζει να επαναφέρετε ολόκληρη τη συναλλαγή; Δεν υπάρχουν κομψά μέτρα αποζημίωσης ή ανοχής σφαλμάτων;
2. Πόσους πόντους περιλαμβάνουν οι κατανεμημένες συναλλαγές; Πρέπει να έχετε μια μεγάλη σειρά λειτουργιών σε πραγματικό χρόνο; Δεν μπορείτε να βελτιστοποιήσετε ορισμένα σημεία μέσω λειτουργιών ειδοποίησης;
3. Μετά την έναρξη μιας κατανεμημένης συναλλαγής, εκτελέσατε πράξεις αγνωστικής συναλλαγής, παρόλο που αυτές οι πράξεις δεν σχετίζονταν με συναλλαγές; (π.χ. ανάγνωση δεδομένων, υπολογισμός, αναμονή για επιστροφή μηνύματος από τον χρήστη, αναμονή για την επιστροφή κλήσης άλλων ενοτήτων κ.λπ.)
4. Δεν μετρήσατε κάποιες πράξεις ανάγνωσης στη συναλλαγή, σωστά; Αυτό είναι ένα εύκολο λάθος όταν καταχωρείτε μια επιλεγμένη λειτουργία στη συναλλαγή.
5. Ορισμένα βήματα της λειτουργίας σας μπορούν να εκτελεστούν αφού ολοκληρωθούν όλες οι λειτουργίες. Αυτός ο τύπος λειτουργίας έχει προφανή χαρακτηριστικά ειδοποίησης. Οι λειτουργίες ειδοποίησης λένε, σας δίνω μια ειδοποίηση και εγγυώμαι ότι η ειδοποίηση θα φτάσει σε εσάς.
Πρέπει να λάβετε αυτήν την ειδοποίηση και να διασφαλίσετε ότι θα διεκπεραιωθεί, αλλά δεν χρειάζεται να το αντιμετωπίσετε αμέσως μόλις σας ειδοποιήσω. Αυτή η λειτουργία μπορεί προφανώς να γίνει με άλλη εργασία.

4. Δώστε προσοχή στα ακόλουθα σημεία όταν χρησιμοποιείτε κατανεμημένες συναλλαγές
1: Βεβαιωθείτε ότι το μηχάνημα που συμμετέχει στη συναλλαγή έχει ενεργοποιήσει την υποστήριξη κατανεμημένων συναλλαγών.
2: Εάν το τείχος προστασίας είναι ενεργοποιημένο στο μηχάνημα, πρέπει να ορίσετε τη διεργασία msdtc ως εξαίρεση.
3: Το μηχάνημα που συμμετέχει στη συναλλαγή δεν μπορεί να διασχίσει τον τομέα (εάν είναι cross-domain, η Microsoft δεν έχει ακριβή λύση προς το παρόν).
4: Χρησιμοποιήστε κατανεμημένες συναλλαγές μόνο όταν έχετε πολλές βάσεις δεδομένων, εάν πρόκειται για την ίδια βάση δεδομένων, είναι καλύτερο να χρησιμοποιήσετε το SqlTransaction.
1. Προσθέστε πρώτα την αναφορά του System.Transactions (πρέπει να προσθέσετε τη διάταξη Net)

Ο κωδικός στην κλήση C# είναι ο εξής:

Η διεύθυνση των ιστολογίων που εξηγεί αυτήν την κατανεμημένη κατηγορία συναλλαγών είναι πολύ σαφής:http://www.cnblogs.com/artech/archive/2010/01/31/1660356.html

2. Ορίστε τη διαμόρφωση του διακομιστή web και του περιβάλλοντος διακομιστή SQL

Πίνακας Ελέγχου - > Συστήματα & Ασφάλεια - Εργαλεία Διαχείρισης > - > Component Services
(Αυτό απαιτείται τόσο για διακομιστές WEB όσο και για SQL)





Πίνακας Ελέγχου - > Συστήματα & Ασφάλεια - Εργαλεία Διαχείρισης > - > Υπηρεσίες
(Αυτό απαιτείται τόσο για διακομιστές WEB όσο και για SQL)




Πίνακας Ελέγχου - > Σύστημα και ασφάλεια - > Τείχος προστασίας των Windows
(Αυτό απαιτείται τόσο για διακομιστές WEB όσο και για SQL)




3. Διαμόρφωση MSSQL

Για συνδέσεις διακομιστή, κάντε δεξί κλικ - > ιδιότητες




4. Διαμόρφωση κεντρικών υπολογιστών (διαμορφώστε μόνο τον διακομιστή WEB, εάν όχι, διαμορφώστε τον και στον διακομιστή SQL)

C:\Windows\System32\drivers\etc
hosts, το οποίο ανοίγει με το Σημειωματάριο
(Οι πληροφορίες του διακομιστή SQL πρέπει να ρυθμιστούν στο αρχείο Hosts του διακομιστή WEB)
(Εάν ο έλεγχος αποτύχει, ρυθμίστε τις παραμέτρους των πληροφοριών του διακομιστή web στο αρχείο Hosts του διακομιστή SQL)






Προηγούμενος:Εξωτερικοί σύνδεσμοι προς αναρτήσεις φόρουμ Discuz X προσθήκη χαρακτηριστικού nofollow
Επόμενος:Συναρτήσεις που διατηρούν δύο δεκαδικά ψηφία μετά την υποδιαστολή στη C# και πώς να τις χρησιμοποιήσετε
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com