-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 
Author Message
 Post subject: Generell: Mehrere Verbindungen zur gleichen Datenbank
PostPosted: Tue May 09, 2006 10:47 am 
Newbie

Joined: Tue May 09, 2006 10:33 am
Posts: 4
Hallo,

ich versuche mit Hibernate eine Web-Anwendung zu entwickeln.

Geplant und teilweise implementiert sind vier Servlets, eines davon als View Komponente (Struts, Velocity), die anderen drei sind gewissermaßen Dämonen, die regelmäßig (alle n Sekunden) die Datenbank nach bestimmten Einträgen durchforsten und weiterverarbeiten.

Zum Thema Struts mit Hibernate hatte ich schon gesucht, allerdings haben meine Bemühungen, Hibernate direkt in Struts/Velocity zu integrieren nicht gefruchtet und ich habe zunächst den JTA Servlet Filter aus der CaveatEmptor Demo App. eingesetzt. (-> Struts mit Velocity wäre mal ein anderer Thread))

Dieser Filter öffnet mir bei jedem HTTP Request eine Transaktion und schließt sie am Ende wieder.

Mein Problem ist, dass sich die weiteren Servlets mit der eventl. geöffneten Session/Transaktion ins Gehege kommen.

Was ist dafür der beste Ausweg? "Mehrere SessionFactories" (habe einen gleichnamigen Thread gefunden)? Oder kann ich mir von der gleichen SF unabhängige Sessions geben lassen...? uiuiui...

Schöne Grüße
Werner


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 09, 2006 1:22 pm 
Hibernate Team
Hibernate Team

Joined: Mon Aug 25, 2003 9:11 pm
Posts: 4592
Location: Switzerland
Dann map den Filter doch nur fuer ein bestimmtes Servlet, statt fuer ein URL Pattern.


Top
 Profile  
 
 Post subject:
PostPosted: Wed May 10, 2006 6:28 pm 
Newbie

Joined: Tue May 09, 2006 10:33 am
Posts: 4
Hallo Christian,

die Servlets erwarten keine HTTP-Requests sondern laufen nur so vor sich hin, da hilft mir ein Filter wohl nichts?

Also, das Servlet wird beim Start der Web-App gestartet und läuft in einer Endlosschleife, fragt die Datenbank und wartet und fragt und wartet...

Da ist jedenfalls keine Möglichkeit noch etwas dazwischenzuschieben.

Noch eine Idee...?
Danke
Werner


Top
 Profile  
 
 Post subject:
PostPosted: Sat May 13, 2006 9:55 am 
Newbie

Joined: Tue May 09, 2006 10:33 am
Posts: 4
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


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.