Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Definiowanie źródła danych jta poza kontenerem

Tak, możesz użyć menedżera transakcji zgodnego z JTA, takiego jak Atomikos lub Bitronix. Ich odpowiednie strony mają dokumentację, jak skonfigurować je za pomocą Spring. Ogólnie rzecz biorąc, będziesz musiał wykonać poniższe kroki (jeśli używasz Atomikos):

  1. Zachowaj istniejące źródło danych XA (rtsDatasource w twoim przypadku) lub utwórz je, jeśli jeszcze nie używasz (na przykład, jeśli ktoś ma źródło danych inne niż XA, to źródło danych musi najpierw zostać przekonwertowane na źródło danych XA).
  2. Opakuj źródło danych XA w AtomikosDataSourceBean .
  3. Wskaż swoją EntityManagerFactory w nowym AtomikosDataSourceBean przykład.
  4. Zadeklaruj menedżera transakcji XA i transakcję użytkownika XA.
  5. Opakuj menedżera transakcji XA w Spring JtaTransactionManager .
  6. Użyj Springa JtaTransactionManager .

Poniżej pokazano krótki fragment konfiguracji z wykorzystaniem bazy danych H2, Hibernate 4, Spring 4 i 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"/>

Szczegółowe informacje znajdziesz w tej aplikacji .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-00907:Brak prawego nawiasu przy tworzeniu klucza obcego Oracle 12c

  2. Skonfiguruj Hibernate tak, aby używał Oracle SYS_GUID() dla klucza podstawowego

  3. Oracle SQL:wyodrębnianie tygodnia roku od daty daje losowe wyniki

  4. Zwracanie „tabeli” (bez wstępnego definiowania nazw kolumn) z funkcji PL/SQL

  5. Oracle — w jaki sposób Oracle zarządza wyciągami DML specyficznymi dla transakcji