hfarhad wrote:
[Ich habe eine EJB-anwendung mit Hibernate-Persistierung. Die anwendung kann von mehreren threads beansprucht werden. Die Frage ist, wie kann ich sicher stellen, dass die Threads, die gleichzeitig fuer die jeweiligen Datenbankzugriffe ein session-Objekt benoetigen, eigene Sessions erhalten.
Wenn du EJBs (Session EJB) verwendest, ist doch deine Applikation automatisch thread-save: Standardmäßig sind EJB-Calls transaktional (container-managed). D.h. für Hibernate: es läuft a) innerhalb der EJB-Transaktion und es wird b) innerhalb dieser Transaktion eine Hibernate Session aufgemacht und bei Transaktionsende auch wieder geschlossen. Diese Transaktionen sind durch das EJB-Konzept, d.h. durch den Container automatisch voneinander isoliert. Konkurrierende Zugriffe laufen dann über das "optimistic locking" Verfahren.
Es sei denn, du verwendest Stateful EJBs und willst mit langlebigen Sessions arbeiten ("conversations"). Dann hast du deutlich mehr Aufwand; dann solltest du aber unbedingt geeignete Literatur zu Rate ziehen.
Carlo