Announcement

Collapse
No announcement yet.

System.Transaction und gespeicherte Prozeduren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • System.Transaction und gespeicherte Prozeduren

    Hallo,

    ich habe jeweils eine gespeicherte Prozeduren in einer MySQL 5.0 und einer SQL Server 2000 -Datenbank. Beide gespeicherten Prozeduren sollen im Rahmen einer Transaktion abgearbeitet werden. Als Programmiersprache kommt C# 2.0 zum Einsatz.

    Als Lösungsansatz möchte ich den Namespace System.Transaction verwenden. Sollte ein Rollback erforderlich sein, sollen wiederum gespeicherte Prozeduren aufgerufen werden. Wie bringe ich das jedoch unter einen Hut?

    Vielen Dank für Antworten
    Robert

  • #2
    Hallo,
    wenn die Zugriffe auf die verschiedenen Datenbanken in eine Instanz von <b>TransactionScope</b> gekapselt werden und alle beteiligten Providerklassen den DTC (Distributed Transaction Coordinator) unterstützen, nimmt der DTC immer dann alle Schreibzugriffe auf beide Datenbanken zurück, wenn am Ende nicht die TransactionScope-Methode <b>Complete</b> aufgerufen wurde. Wenn im Fehlerfall eine gespeicherte Prozedur aufgerufen werden soll, die das Rollback "überlebt", muss dieser Aufruf in eine separate TransactionScope-Instanz eingebettet werden, bei der die TransactionScopeOption <b>Suppress</b> angefordert wird.

    In der Voreinstellung der Klasse <b>SqlConnection</b> wird festgelegt (Verbindungszeichenfolgenwert <i>Enlist</i>), dass diese automatisch einem zum Zeitpunkt des Öffnens der Datenbankverbindung bestehenden Transaktions-Kontext beitritt. Somit läuft jede neue Datenbankverbindung automatisch im Gültigkeitsbereich der gleichen von TransactionScope kontrollierten Transaktion ab.

    Comment


    • #3
      Hallo Herr Kosch,

      ich möchte mich im Namen von Robert für Ihre wie immer schnelle und präzise Antwort bedanken.

      Viele Grüße

      Andreas Möhlenbroc

      Comment

      Working...
      X