Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

hu,

folgendes Problem:

ich habe einige Klassen die sich um Datenbank- und Dateisystem kümmern. Da kann es vorkommen das:

Klasse 1 methode "delete":

->Transaktion Start

->select * from sub where parent_id=1

->->Klasse2->delete(sub_id);

->delete from parent where parent_id=1

->transaktion commit


class Klasse2 methode "delete"

->transaktion start

-> datei(en) löschen

->delete from sub where sub_id=$subid

->transaktion commit

ich hoffe das ist verständlich das Problem: ich habe jetzt
-> Transaktion start

-> select...

->-> transaktion start

->-> delete...

->-> transaktion commit

// dies evtl. mehrfach

-> delete ...

-> transaktion commit

also commited er die Transaktion zu früh, weil da ein commit zwischen kommt, oder irre ich ?

Alle SQL-Befehle laufen vorher nochmal durch eine Zentrale mysql-Klasse. Die überlegung ist, dort mitzuschneiden, wieviele transaktionen gestartet werden, und die entsprechende Anzahl von Commits zu ignorieren..... aber ist das sinnvoll ?

Edit: das Problem: wie halte ich fest, welches Commit zu welchem start gehört. Nicht das ich im Fehlerfall ein Commit zu viel ignoriere.

was denkt ihr / alternative ?

Geschrieben

hab das jetzt so gemacht, das Mysql-Statements an die transaktion gegeben werden, Commit werden anschließend nur akzeptiert, wenn sie von dem gleichen transaktions-Objekt kommen wie das Start.

Rollbacks kann jedes Transaktionsobjekt abliefern, aber es wird auch automatisch mit dem rollback eine exception geschmissen :)

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...