Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

DistribTransaction

Îåêßíçóå áðü ôï ìÝëïò thanad. Τελευταία δημοσίευση από το μέλος cap στις 03-11-2005, 23:56. Υπάρχουν 1 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  03-11-2005, 20:45 6673

    Embarrassed [:$] DistribTransaction

    Γειά χαρά σε όλους,

    Η αποψινή μου ερώτηση έχει ώς εξείς :

    Έχουμε ένα business layer το οποίο έχει 5 μεθόδους. Οι 3 πρώτες προετοιμάζουν Update staments , η 4η Insert statment και η 5η delete statment.

    Τις μεθόδους αυτές τις καλεί το UI (User Control .ascx) διαδοχικά και κάθε μια μέθοδος με τη σειρά της, στέλνει τα statments στο Data Layer πρός εκτέλεση.

    ΕΡΩΤΗΞΗ..............

    Πως μπορώ απο το UI ή απο οπουδήποτε αλλού, όλη αυτή τη διαδικασία να την ελέγχω, ώστε σε περίπτωση που κάτι πάει ζαβά να κάνω Rollback ή Commit άν όλα είναι ΟΚ.

    ΜΠΟΡΩ....;;;...


    (thanad)
    Dimos K. Thanasoulas
    Athens
  •  03-11-2005, 23:56 6682 σε απάντηση της 6673

    Απ: DistribTransaction

    Χρειάζονται μερικά δεδομένα ακόμα για να μπορεί κανείς να απαντήσει. Κατ'αρχήν το θέμα (DistribTransaction) υποννοεί οτι το Business Tier είναι σε COM+. Ειναι έτσι;

    Αν είναι σε COM+, μπορείς να υλοποιήσεις Transactions σε αυτό το επίπεδο. Πιθανότατα, αν δεν μπορείς ως έχει, να αντικαταστήσεις τις διαδοχικές κλήσεις στο Business με ένα Facade το οποίο ενδεχομένως θα αναλαμβάνει και το ρόλο του ξεκινητή (!) του transaction.

    Για να μην γίνομαι γενικά μυστήριος και για άλλους συναδέλφους που πιθανόν διαβάζουν, το Facade είναι Design Pattern. Ο επίσημος ορισμός είναι "provides a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the subsystem easier to use".

    Στη δική μας περίπτωση, επειδή δεν πάμε και πάντα by the book, αυτό που πιθανόν να θέλουμε να κάνουμε είναι να έχουμε μια κλάση που θα λεγεται Everything και από αυτή να φωνάζουμε μια μέθοδο Everything.DoAllJobsUsingTransactions.

    Τώρα, αν το όλο σετ δεν είναι COM+, θα μπορούσες να υλοποιήσεις transactions σε επίπεδο ADO.NET. Προσωπικά θα έλεγα οτι είναι τζιζ να το κάνεις αυτό στο UI. Καλύτερα στο απο κάτω tier, έχει πιό μεγάλη συναφεια με το οτιδήποτε άλλο κάνει αυτό το tier.

    Στην περίπτωση που χρησιμοποιείται ADO.NET transaction, τότε αυτό δεν πρέπει να εκκινείται από το Business (μια και υπάρχει data layer), αλλά να μεταβιβάζει στο data layer την απαίτηση εκκίνησης transaction.


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems