Ich habe eine Frage zum Umgang mit Datenbanktransaktionen.Wie behandelt Datenbank diesen Status in Transaktion?
Wenn die Datenbank heruntergefahren wird, wenn die Transaktion einige Daten in einen dauerhaften Speicher geschrieben hat, aber nicht alle, wie lösen sie diesen Zustand auf?
(+) Wie kann Client, der automatische Wiederholungslogik hat, den Zustand behandeln, dass die Datenbank die Transaktion beendet, aber die Verbindung getrennt wurde, bevor die Antwort erhalten wurde?
Danke fürs Lesen.
Gibt es eine Möglichkeit, dies zu kontrollieren?/ 1) Request Transaktion Client -> DB/ 2) Verarbeitung der Transaktion in DB/ 3) Disconnect-Client Bevor Got Transaktions-Antwort/ 4) Client versuchen, DB/ 5) Client Retry Anfrage Transaktion erneut/ = wieder angeschlossen > Transaktion wird zweimal angefordert. (Zwei Anfragen -> Zwei Transaktionen)/ Gibt es einen Weg dies zu verhindern?/ Ich denke, nur ein Weg, um dieses Problem zu lösen, ist vor Retry Request zu überprüfen./ Aber es ist schwer. – RedJune
Diese Frage bezieht sich auf http://stackoverflow.com/questions/42605651/how-to-handle-message-that-failed-to-response-success-but-success-commit-to-dat – RedJune
Ich denke, du bist Recht. In Ihrem Szenario weiß nur die DB, ob die Transaktion erfolgreich war oder nicht. Daher scheint es, als ob die einzige Möglichkeit für den Client, zu wissen, ob ein erneuter Versuch erforderlich ist, wäre, die Datenbank anzufordern. –