Mam aplikację webservice z wiosną z Oracle jako bazę danych. W tej chwili mam źródło danych utworzone za pomocą serwera weblogic. Również za pomocą eclipse linkg JPA do wykonywania transakcji odczytu i zapisu (wstaw, Odczyt i aktualizacja). Teraz chcemy oddzielić źródła danych dla operacji odczytu (odczytu) i wrtie (wstawiania lub aktualizacji).Czy możemy mieć wiele źródeł danych do pojedynczej bazy danych?
Mój obecny DataSource jest jak następuje:
JNDI NAME : jdbc/POI_DS
URL : jdbc:oracle:thin:@localhost:1521:XE
używając tego robie zarówno odczytu i zapisu transakcji.
Co jeśli wykonaj następujące czynności:
JNDI NAME : jdbc/POI_DS_READ
URL : jdbc:oracle:thin:@localhost:1521:XE
JNDI NAME : jdbc/POI_DS_WRITE
URL : jdbc:oracle:thin:@localhost:1521:XE
Wiedziałem, że przy użyciu źródła danych XA możemy zdefiniować wiele źródeł danych. Czy mogę zrobić to samo bez źródła danych XA. Czy ktoś próbował tego rodzaju podejścia.
:: UPDATE ::
Dziękuję wszystkim za odpowiedzi I wprowadziły następujące rozwiązania.
Podjęłam podejście do wielu baz danych. gdzie zdefiniujesz wiele różnych transactionManagers
i managerFactory
. Wziąłem tylko pojedyncze źródło danych XA (JNDI), które jest refereowane w fasoli EntityManagerFactory
.
można REEFER poniższe linki tutaj, które są dla wielu DataSources Multiple DataSource Approach defining @transactional value
zbadanych także na menedżerów transakcji org.springframework.transaction.jta.WebLogicJtaTransactionManager
i org.springframework.orm.jpa.JpaTransactionManager
również.
szybkie pytanie, własność URL zdefiniowano różnie dla złota, srebra i brązu. jdbc: hsqldb: hsql: // localhost: $ {db.port.gold}/blog. W moim przypadku, jeśli używa się tego samego, ma jakiś problem. Również używam EclipseLink jako mojego JPA. Pozwól mi najpierw wykonać tę aplikację. – user1268890
Po prostu utwórz Enum z właściwościami READ i WRITE, może działać w ten sam sposób. Podaj wymagane właściwości, zgodnie z potrzebami. Nie sądzę, aby pojawiły się dodatkowe problemy związane z dostawcą JPA. – user