2016-05-20 7 views
1

Ich bin Neuling einzelne Transaktionsmanager erstellen mögen jdbc template.i zum Frühjahr eines einzigen Transaktionsmanager für zwei verschiedene datasources.Below ist meine KonfigurationsdetailsWie für zwei Orakel verschiedene Datenquellen in jdbctemplate

<bean id="dataSource1" 
     class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName"> 
      <value>oracle.jdbc.driver.OracleDriver</value> 
     </property> 
     <property name="url"> 
      <value>jdbc racle:thin:@localhost:1527/Hardua</value> 
     </property> 
     <property name="username"> 
      <value>selva</value> 
     </property> 
     <property name="password"> 
      <value>selva</value> 
     </property> 
</bean> 
<bean id="dataSource2" 
     class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName"> 
      <value>oracle.jdbc.driver.OracleDriver</value> 
     </property> 
     <property name="url"> 
      <value>jdbc racle:thin:@localhost:1527/Jaise</value> 
     </property> 
     <property name="username"> 
      <value>selva</value> 
     </property> 
     <property name="password"> 
      <value>selva</value> 
     </property> 
</bean> 


<bean id="transactionManager" 
     class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> 
     <property name="dataSource" ref="dataSource1"></property> 
     <property name="dataSource" ref="dataSource2"></property> 
</bean> 

<bean id="jdbcTemplate1 class="org.springframework.jdbc.core.JdbcTemplate"> 
     <property name="dataSource" ref="dataSource1"></property> 
</bean> 
<bean id="jdbcTemplate2 class="org.springframework.jdbc.core.JdbcTemplate"> 
     <property name="dataSource" ref="dataSource2"></property> 
</bean> 

I erstellen versuchte das oben genannte, aber Rollback geschieht nicht in der Datenbank. Ist es der rechte Weg, die Verhandlung zu erzielen? Jede Hilfe wird sehr geschätzt werden !!!!

+0

Benötigen Sie einen einzelnen Tx für 2 eine einzelne Aktion, die beide Datenquellen enthält oder verwenden Sie nur eine einzige Datenquelle? Und nein, das ist nicht der richtige Weg, und ich bin sogar überrascht, dass der Container mit dieser Konfiguration startet. –

Antwort

0

Nun, in diesem Fall benötigen Sie einen

JTA Transaction Manager (Global transaction Manager- 2 phase commit). 

Sie müssen haben JTA-Implementierungen wie Feder eigenen JtaTransactionManager statt DatasourceTransactionManager, die ein Manager lokale Transaktion verwenden.

Verwandte Themen