Frage

In einer Umgebung mit SQL Server-failover-cluster oder Spiegel, wie Sie bevorzugen, um Fehler zu behandeln?Wie es scheint, gibt es zwei Möglichkeiten:

  1. Fehl, die gesamte aktuelle client-Anfrage, und lassen Sie die Benutzer wiederholen
  2. Fangen Sie die Fehler in Ihrem DAL, und wiederholen Sie es

Jeder Ansatz hat seine vor-und Nachteile.Die meisten Geschäfte, mit denen ich gearbeitet habe do #1, aber viele von Ihnen auch nicht Folgen strengen transactional Grenzen, und scheint mir zu sein, verlassen sich offen für die Schwierigkeiten, in die Falle des Scheiterns.Auch so, ich habe Probleme, sprechen Sie in die #2, die auch Ergebnis in eine bessere user experience (ein catch ist die potenziell lange Verzögerung, während eines Failovers).

Die Argumente in die eine oder andere Weise würde werden geschätzt.Wenn Sie die zweite Methode anwenden, haben Sie eine standard-wrapper, vereinfacht die Implementierung?Entweder Art und Weise, wie Sie Ihren code strukturieren, um Probleme zu vermeiden, wie jene im Zusammenhang mit dem Mangel der idempotenz der Befehl, der fehlgeschlagen ist?

War es hilfreich?

Lösung

Nummer 2 sein könnte, eine unendliche Schleife.Was ist, wenn es Netzwerk verbunden ist, oder dem lokalen PC muss neu gestartet wird, oder was auch immer?

Nummer 1 ist ärgerlich für Benutzer, natürlich.

Wenn Sie gestatten nur Zugriff über einen web-Website, dann wirst du nie sehen die Fehler sowieso, es sei denn, der failover passiert, mid-call.Für uns ist dies unwahrscheinlich, und wir haben versagt, die Sie ohne die Endbenutzer zu realisieren.

Im realen Leben können Sie nicht haben, schönes, sauberes DAL auf einem web-server.Sie können haben eine Excel-Tabelle verbinden (die meisten financials) oder WinForms, wo die Verbindung offen gehalten, so dass Sie nur noch die eine option.

Failover dauert nur ein paar Sekunden jedenfalls.Wenn der DB-recovery dauert mehr als das, haben Sie größere Probleme sowieso.Und wenn es geschieht oft genug, um zu denken haben, der Handhabung, gut...

In der Zusammenfassung, es passiert selten, dass man wissen möchte und die Nummer 1 wäre besser.IMHO.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top