Oracle
 sql >> база данни >  >> RDS >> Oracle

Дефиниране на jta източник на данни извън контейнера

Да, можете да използвате съвместим с JTA транзакционен мениджър като Atomikos или Bitronix. Съответните им сайтове имат документация за това как да ги конфигурирате с Spring. Като цяло ще трябва да следвате стъпките, дадени по-долу (ако използвате Atomikos):

  1. Запазете съществуващия си източник на XA данни (rtsDatasource във вашия случай) или създайте такъв, ако вече не го използвате (например, ако някой има източник на данни, различен от XA, този източник на данни трябва първо да бъде преобразуван в източник на данни XA).
  2. Обвийте източника на данни XA в AtomikosDataSourceBean .
  3. Насочете вашата EntityManagerFactory в новия AtomikosDataSourceBean пример.
  4. Декларирайте XA транзакционен мениджър и XA потребителска транзакция.
  5. Обвийте XA транзакционния мениджър в Spring JtaTransactionManager .
  6. Използвайте Spring JtaTransactionManager .

По-долу е показан кратък конфигурационен фрагмент, използващ H2 база данни, Hibernate 4, Spring 4 и Atomikos 4.

<bean class="org.h2.jdbcx.JdbcDataSource" id="originalDataStore" lazy-init="true">...</bean>

<bean class="com.atomikos.jdbc.AtomikosDataSourceBean" id="dataSource" init-method="init" destroy-method="close">
  <property name="uniqueResourceName" value="xaDS"/>
  <property name="xaDataSource" ref="originalDataStore"/>
  <property name="poolSize" value="3"/>
</bean>

<bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" id="entityManagerFactory">
  <property name="dataSource" ref="dataSource"/>
  <property name="jpaProperties">
    <props>
      <prop key="hibernate.transaction.jta.platform">com.atomikos.icatch.jta.hibernate4.AtomikosPlatform</prop>
       ...
    </props>
  </property>
</bean>

<bean class="org.springframework.transaction.jta.JtaTransactionManager" id="transactionManager">
  <property name="transactionManager">
    <bean class="com.atomikos.icatch.jta.UserTransactionManager" init-method="init" destroy-method="close">
      <property name="forceShutdown" value="false"/>
    </bean>
  </property>
  <property name="userTransaction">
    <bean class="com.atomikos.icatch.jta.J2eeUserTransaction">
      <property name="transactionTimeout" value="300"/>
    </bean>
  </property>
  <property name="allowCustomIsolationLevels" value="true"/>
</bean>

<transaction:annotation-driven transaction-manager="transactionManager"/>

За подробности можете да видите това приложение .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Метод за събиране:функция COUNT в базата данни на Oracle

  2. Предотвратяване на отпадане на таблица в целева схема в Oracle Streams

  3. конвертиране на изображение в паметта в петно

  4. oracle изпълнява незабавно не се изпълнява без никаква грешка

  5. Какво потребителско име и парола трябва да бъдат въведени при свързване към SQL*Plus след инсталиране на Oracle 11g?