Hallo,
okay, ich habe jetzt eine zweite SessionFactory konfiguriert und habe dafür meine HibernateUtil um eine Hashtable etc erweitert.
*** Es funktioniert soweit auch ganz gut, leider verstehe ich nicht, warum... ;-) und möglicherweise fliegt's mir doch noch um die Ohren.
Ich habe bei der ganzen Sache ein Verständnisproblem, vielleicht kann ein etwas erfahrener Java/Servlet/Hibernate Prophet meinen mit Perl und PHP verunreinigten Geist erleuchten...
nochmal meine Architektur:
- JBoss mit JTA-Transaktionen (in JNDI als UserTransaction)
-- Meine Webapp mit Servlet A (Web-Oberfläche) und Servlet B (java.util.Timer-basiertes Abfragen der Datenbank für best. Ereignisse, z.B. Versenden von Mail)
--- JTA-Servlet Filter für A startet Transaction (holt sie per ...lookup("java:comp/UserTransaction")), reicht weiter zu Struts, Velocity, committet die Transaktion
--- SB Timertask holt UserTransaction aus JNDI, guckt, schickt Mail, committet
Diese beiden Prozesse sind doch eigentlich nicht synchronisiert, oder?
Es könnte ja sein, dass sich A eine UserTransaction holt und B kurz danach - bevor A committed hat -> und das darf doch nicht, oder ("Cannot nest transactions" hab ich an anderer Stelle mal gesehen)?
Oder bekomme ich bei jedem Lookup doch eine ganz eigene Transaktion (so hab ichs mir gedacht und implementiert, da ich die Transaktion auch nach der Abfrage Kontextbezogen in einer Hashtable speichere), die nix mit der anderen zu tun hat?
Ich kann vor lauter Fragezeichen keinen Baum mehr sehen...
Werner
|