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

 

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

Transactions και components χωρίς database operations

Îåêßíçóå áðü ôï ìÝëïò axaros. Τελευταία δημοσίευση από το μέλος axaros στις 28-06-2005, 11:03. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  07-06-2005, 09:28 2534

    Transactions και components χωρίς database operations

    Εάν έχω μία τέτοια περίπτωση πως θα την χειριστώ?
    Πχ.
    Και πάλι τρία actions :
    1) Read
    2) Update
    3) Δημιουργία ενός XML αρχείου

    Σε περίπτωση rollback θα πρέπει να γραφεί κώδικας που παραδείγματος χάριν διαγράφει το αρχείο (στο parent component) ...
    Πιθανολογώ ότι το component θα έχει TransactionOption.NotSupported
    Πάνος Αβραμίδης
  •  08-06-2005, 01:29 2567 σε απάντηση της 2534

    Re: Transactions και components χωρίς database operations

    Τα components που θα διαβάσουν την βάση και η δημιουργία του XML αρχείου, αφού δεν χρειάζεται να συμμετάσχουν, ενεργά τουλάχιστον στο transaction, καλό θα ήταν να μην είναι serviced components.

    Χρειάζεται κάτι που θα συντονίζει την όλη διαδικασία. Ένα serviced component με RequiresNew είναι μια καλή ιδέα. Θα καλεί τα non-serviced components που θα γυρνάνε τις πληροφορίες που χρειάζονται, θα γίνεται το transaction, και αν είναι επιτυχημένο θα καλείται αυτό που θα γράφει το XML.

    Καταλαβαίνεις εδώ ότι θα πρέπει να έχεις και ένα status από το transaction component που θα πληροφορεί τι έχει κάνει με το status του transaction, complete ή abort, για να ξέρεις αν έχει νόημα να συνεχίσεις στην δημιουργία του XML αρχείου ή όχι, χώρια από το setAbort ή setComplete που έχει κάνει.

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  28-06-2005, 09:26 3143 σε απάντηση της 2534

    Re: Transactions και components χωρίς database operations

    Δεν είχα τι να κάνω και διάβαζα παλιά posts που μου έχουν ξεφύγει...

    Λοιπόν, αυτή είναι μια κλασική περίπτωση για CRM!
    Όχι τα γνωστά CRM αλλά τα λεγόμενα Compensating Resource Managers... Τι είναι αυτά;
    Λοιπόν, φαντάσου έχεις ένα transaction όπου ένα τμήμα του είναι η αποστολή ενός mail. Αν αποτύχει το transaction και γίνει rollback, φυσικά και δεν γίνεται να πάρεις πίσω το mail. Μπορείς ωστόσο να στείλεις ένα δεύτερο mail που να λέει, ας πούμε, "Ακύρο το προηγούμενο mail". Ε, αυτή τη δουλειά κάνει ένας CRM. Στο COM+ μπορείς να γράψεις custom CRMs.
    Στην περίπτωσή σου μπορείς απλά να κάνεις αυτό που λέει ο Γιώργος, αλλά αν θα έπρεπε να έχεις ένα activity όπου η δημιουργία του XML αρχείου ήταν στη μέση του transaction, τότε η απόλυτη λύση είναι ένας CRM που θα κάνει delete το αρχείο. Αν έχεις χρόνο και όρεξη ψάξε στο MSDN για τους CRMs και κάποια στιγμή θα επανέλθω με παράδειγμα...


    Vir prudens non contra ventum mingit
  •  28-06-2005, 11:03 3146 σε απάντηση της 3143

    Re: Transactions και components χωρίς database operations

    Μάνο ,
    θα το κοιτάξω ...
    πράγματι θα ήθελα ένα παράδειγμα ..


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