Spring JPA Read-Write-splitting - Transaktionen verwenden Sie die datasource schreiben

Ich habe eine Anwendung, die verwendet Hibernate/JPA, mit Feder und Jersey. In meinem Anwendungskontext ich die Datenquelle definieren Sie ein entity-manager-factory, set transaction manager mit, dass die entity Manager factory, und haben verschiedene service-Methoden annotiert werden, mit der transactional-annotation, also ich habe auch das tx:annotation-driven definition zu Draht in meinem Transaktions-manager, wo Sie benötigt wird. Dieses setup funktioniert Super, ich habe in der Lage zu Lesen und zu schreiben, einfach nur gut. Ich möchte, um zu einer DB eingerichtet, wo ich ein Master mit mehreren slaves (MySQL). Also ich möchte, dass alle Methoden, annotiert mit Transaktions -, um eine Datenquelle verwenden, zeigen auf der master-db-server, und alle anderen, eine Verbindung zu verwenden-pool der Sklaven.

Habe ich versucht, die Schaffung von zwei unterschiedlichen Datenquellen, mit zwei verschiedenen entity-manager in den Fabriken und in zwei verschiedenen persistenten Einheiten - hässlich, gelinde gesagt. Ich habe versucht, eine MySQL-Proxy, aber wir hatten mehr Probleme mit, die wir dann brauchen. Die Verbindungs-pooling verarbeitet wird, in der servlet-container schon. Könnte ich implementieren, etwas in Tomcat liest die Transaktion und leitet es an die richtigen Datenbank-server, oder gibt es eine Möglichkeit, ich könnte alle diese Methoden annotiert werden, mit der transactional-annotation zu verwenden, eine bestimmte datasource?

InformationsquelleAutor Elrond | 2012-02-08
Schreibe einen Kommentar