Laden...

[Gelöst]Transaktion über mehrere DBs bei einer ASP MVC Anwendung

Erstellt von Palin vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.436 Views
P
Palin Themenstarter:in
1.090 Beiträge seit 2011
vor 6 Jahren
[Gelöst]Transaktion über mehrere DBs bei einer ASP MVC Anwendung

verwendetes Datenbanksystem: MSSQL

Hallo Zusammen,

grundlegend möchte ich nur sicher gehen ob ich alles richtig Verstanden habe.

Wir haben eine ASP MVC Anwendung die eine Transaction mit EF über mehrere Datenbanken machen muss.

Wenn ich es richtig verstanden habe kann ich den TransactionScope nicht benutzen, da alle Contexte die während seines Bestehens erstellt werden unter den TransactionScope fallen. Und bei der ASP von unterschiedlichen Benutzer gleichzeitig unterschiedliche Seite aufgerufen werden können die nicht unter den TransactionsSope fallen sollen.
(Ich hoffe mal das Problem ist so verständlich, falls nicht Probiere ich es noch mal anders zu erklären)

Mir bleibt also nur die Möglichkeit für Context1 BeginTransaction dann für Context2 BeginTransaction.
Dann bei beiden die Daten zu speichern und im Anschluss für Context1 das Commit zu machen und dann für Context2.

Ist das richtig so oder übersehe ich hier etwas was zu Problemen führen könnte?

Bzw. Hatte schon jemand von euch ein Ähnliche Problem und wie hat er es dann gelöst.

Sollte man mal gelesen haben:

Clean Code Developer
Entwurfsmuster
Anti-Pattern

6.911 Beiträge seit 2009
vor 6 Jahren

Hallo Palin,

kann ich den TransactionScope nicht benutzen, da alle Contexte die während seines Bestehens erstellt werden unter den TransactionScope fallen.

Stimmt, aber nur dann wenn nicht die Überladung mit TransactionScopeOption verwendet wird 😉

Mit TransactionScopeOption.RequiresNew wird erzwungen dass eine neue Transaktion erstellt wird und dann geht das auch mit Asp.net.

PS: der Distributed Transaction Coordinator (DTC) Dienst muss auch laufen, sonst geht es über zwei DB-Server nicht.

PPS: wenn du async arbeiten willst -> TransactionScopeAsyncFlowOption-Enumeration (System.Transactions)

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

P
Palin Themenstarter:in
1.090 Beiträge seit 2011
vor 6 Jahren

Danke für die Antwort hat mir weiter geholfen.

Und auch der Hinweis auf den Distributed Transaction Coordinator (DTC) Dienst, hat mir sicher einiges an Fehlersuche gespart.

Sollte man mal gelesen haben:

Clean Code Developer
Entwurfsmuster
Anti-Pattern