vendredi 27 mars 2015
JPA JPA Transaktionen für Web-Application und Desktop-Client
Posted on 11:59 by verona
Ich habe eine JPA Datenbankanwendung, bei der die Entities und die Zugriffsklassen darauf als gemeinsame Bibliothek ausgelagert sind. Die Zugriffsklassen nehmen dabei eine Entity-Manager im Konstruktur auf.
Die Bibliothek wird zum einen von einer Web-Anwendung verwendet (EJBs), bei welcher der EntityManager vom Container verwaltet wird und dieser per @PersistenceContext instanziiert wird. Dort ist JTA für Transaktionen festgelegt.
Der Desktop-Client dagegen ist eine einfache JavaSE-Anwendung, welche EclipseLink benutzt und den Entity-Manager lokal über RESOURCE_LOCAL erzeugt.
Für Datenabfragen funktioniert die gemeinsame Nutzung der Bibliothek wunderbar. Nur wenn es um Transaktionen geht, gibt es Probleme. Bei JavaEE muss JTA verwendet werden und unter JavaSE aktuell lokale Transaktionen.
Was ist der beste Ansatz, um einen gemeinsamen Zugriff von JavaEE und SE auf die Datenbank mit Transaktionen zu realisieren?
Aktuell habe ich zwei Ansätze:
1. Fallunterscheidung bei den Zugriffsklassen, um was für einen Entity-Manager es sich handelt. Finde ich aber unschön, weil es den Code aufbläht.
2. In der JavaSE-Anwendung auch JTA verwenden. Ich habe auch schon mit Atomikos experimentiert, aber konnte es bis jetzt nicht zum laufen bringen. Wenn ich es richtig verstehe, wird dann auch ein lokales JNDI benötigt ect. und hat dann doch einen ganz schönen Rattenschwanz.
Hat jemand Erfahrung in diesem Bereich?
Die Bibliothek wird zum einen von einer Web-Anwendung verwendet (EJBs), bei welcher der EntityManager vom Container verwaltet wird und dieser per @PersistenceContext instanziiert wird. Dort ist JTA für Transaktionen festgelegt.
Der Desktop-Client dagegen ist eine einfache JavaSE-Anwendung, welche EclipseLink benutzt und den Entity-Manager lokal über RESOURCE_LOCAL erzeugt.
Für Datenabfragen funktioniert die gemeinsame Nutzung der Bibliothek wunderbar. Nur wenn es um Transaktionen geht, gibt es Probleme. Bei JavaEE muss JTA verwendet werden und unter JavaSE aktuell lokale Transaktionen.
Was ist der beste Ansatz, um einen gemeinsamen Zugriff von JavaEE und SE auf die Datenbank mit Transaktionen zu realisieren?
Aktuell habe ich zwei Ansätze:
1. Fallunterscheidung bei den Zugriffsklassen, um was für einen Entity-Manager es sich handelt. Finde ich aber unschön, weil es den Code aufbläht.
2. In der JavaSE-Anwendung auch JTA verwenden. Ich habe auch schon mit Atomikos experimentiert, aber konnte es bis jetzt nicht zum laufen bringen. Wenn ich es richtig verstehe, wird dann auch ein lokales JNDI benötigt ect. und hat dann doch einen ganz schönen Rattenschwanz.
Hat jemand Erfahrung in diesem Bereich?
JPA JPA Transaktionen für Web-Application und Desktop-Client
Inscription à :
Publier les commentaires (Atom)
0 commentaires:
Enregistrer un commentaire