Hallo,
ich habe eine ähnliche Frage hier schon mal gestellt, allerdings
haben die Vorraussetzungen sich etwas geändert.
Darum noch mal von vorne:
Eine Perl-Applikation besteht aus verschiedenen Klassen (Shop,
Artikel, Hersteller,Kunde ....)
z.B. ein Artikel besteht u.a. aus mehrere Bild-Objekten, einem
Hersteller-Objekt, Attribut-Objekten ....
Beim Schreiben des Artikels in die DB soll nun eine mysql-Transaktion
zum Einsatz kommen.
Alle Klassen erben von der Shop-Klasse die Fähigkeit ein connect auf
die DB zu machen.
Allerdings wird dabei jedesmal ein neues DB-Handle erzeugt, womit
meine Transaktion in die Hosen geht.
Als einzigste Lösung fällt mir ein, in der Applikation selber ein
initiales Shop-Objekt zu erzeugen, dass eine DB-Verbindung aufbaut.
Dieses Handle wird allen anderen Objekten bei der Initialisierung
übergeben. Initialisiert ein Objekt ein weiteres, übergibt es dieses
Händle einfach weiter.
Aber irgendwie gefällt mir das nicht so recht ... Irgendwann hat die
DB ein Timeout und das Handle ist ungültig ...
Mir schwebt eher eine Lösung vor, bei der das aktuell gültige
DB-Handle via Methodenaufruf abgeholt werden kann und alle Objekte
bekommen so automatsich das gleiche Handle. Das erfolgt sinnigerweise
unmittelbar vor Start der DB-Transaktion. Aber wie bewerkstellige ich
das?.
Oder gibt es für sowas eine ganz andere Herangehensweise?
Jens