Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Xác định Nguồn dữ liệu jta bên ngoài vùng chứa

Có, bạn có thể sử dụng trình quản lý giao dịch tuân thủ JTA như Atomikos hoặc Bitronix. Các trang web tương ứng của họ có tài liệu về cách cấu hình chúng với Spring. Nói chung, bạn sẽ phải làm theo các bước dưới đây (nếu sử dụng Atomikos):

  1. Giữ lại nguồn dữ liệu XA hiện có của bạn (rtsDatasource trong trường hợp của bạn) hoặc tạo một nguồn dữ liệu nếu chưa sử dụng (ví dụ:nếu ai đó có nguồn dữ liệu không phải XA, trước tiên nguồn dữ liệu đó phải được chuyển đổi thành nguồn dữ liệu XA).
  2. Bao bọc nguồn dữ liệu XA trong một AtomikosDataSourceBean .
  3. Trỏ EntityManagerFactory của bạn tại AtomikosDataSourceBean mới ví dụ.
  4. Khai báo một người quản lý giao dịch XA và một giao dịch người dùng XA.
  5. Bao bọc trình quản lý giao dịch XA trong một Spring JtaTransactionManager .
  6. Sử dụng Spring JtaTransactionManager .

Đoạn mã cấu hình ngắn sử dụng cơ sở dữ liệu H2, Hibernate 4, Spring 4 và Atomikos 4 được hiển thị bên dưới.

<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"/>

Để biết chi tiết, bạn có thể xem ứng dụng này .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle:bảng luôn tồn tại sau khi thả bảng

  2. Cú pháp SQL cho truy vấn cập nhật với kết nối bởi trước

  3. Phân vùng Oracle theo ID và phân vùng con theo DATE với khoảng thời gian

  4. Cập nhật câu lệnh bằng mệnh đề

  5. Truy vấn hoạt động trên Oracle 11g nhưng không thành công trên Oracle 8i