sql >> Databáze >  >> RDS >> Oracle

Definování zdroje dat jta mimo kontejner

Ano, můžete použít správce transakcí kompatibilní s JTA, jako je Atomikos nebo Bitronix. Jejich příslušné stránky mají dokumentaci o tom, jak je nakonfigurovat pomocí Spring. Obecně budete muset postupovat podle následujících kroků (pokud používáte Atomikos):

  1. Zachovejte svůj stávající zdroj dat XA (rtsDatasource ve vašem případě) nebo jej vytvořte, pokud jej ještě nepoužíváte (například pokud má někdo jiný zdroj dat než XA, musí být tento zdroj dat nejprve převeden na zdroj dat XA).
  2. Zabalte zdroj dat XA do AtomikosDataSourceBean .
  3. Nasměrujte svou EntityManagerFactory na novém AtomikosDataSourceBean instance.
  4. Deklarujte správce transakcí XA a uživatelskou transakci XA.
  5. Zabalte správce transakcí XA do Spring JtaTransactionManager .
  6. Použijte Spring JtaTransactionManager .

Níže je uveden krátký konfigurační fragment využívající databázi H2, Hibernate 4, Spring 4 a 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"/>

Podrobnosti najdete v této aplikaci .




  1. ukládání hesel na SQL Server

  2. Použití pysparku pro připojení k PostgreSQL

  3. Rekurzivně vypisujte obsahy pohledu Oracle DBA_DEPENDENCIES

  4. Přísný režim databáze Laravel