2012-02-03 26 views
5

Tôi đã được xem xét một số ví dụ để cấu hình một nguồn dữ liệu cho MySQL trong Jboss 7. Tất cả các tài liệu tham khảo tôi đã thấy cho nguyên tố này trông như thế này:cấu hình Jboss Datasource cho MySQL - MysqlXADataSource yếu tố

<driver name="com.mysql" module="com.mysql"> 
    <driver-class>com.mysql.jdbc.Driver</driver-class> 
    <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class> 
</driver> 

Tôi biết những gì các <driver-class> nhưng chính xác là những gì <xa-datasource-class> mục đích của nó là gì?

Khi tôi định cấu hình nguồn dữ liệu trên Tomcat trước khi tôi không cần chỉ định nguồn dữ liệu xa cho bất kỳ cơ sở dữ liệu nào. Tại sao nó lại khác ở đây?

Cảm ơn

Trả lời

7

Theo đặc tả JDBC 4,0 (12,2): datasources XA tạo ra các kết nối XA có khả năng sẽ được sử dụng trong các giao dịch toàn cầu/phân phối. Bạn có thể cần một kết nối như vậy nếu bạn cần một giao dịch để mở rộng hơn một cơ sở dữ liệu hoặc một cuộc gọi JMS. Bạn có thể tìm thấy giải thích rõ ràng về khái niệm tại đây: http://www.theserverside.com/discussions/thread.tss?thread_id=21385#95346

Nếu bạn không có kịch bản giao dịch phân tán mà bạn không cần chỉ định nguồn dữ liệu xa, cấu hình nguồn dữ liệu đơn giản là đủ. Vì vậy, nếu bạn sử dụng một nguồn dữ liệu đơn giản, không cần phải chỉ định một lớp dữ liệu xa-khi bạn khai báo trình điều khiển của bạn.

<datasources> 
    <datasource jndi-name="java:/myDatasource" pool-name="MyDS" enabled="true" jta="true" use-java-context="true" use-ccm="true"> 
       <connection-url> 
        jdbc:mysql://localhost:3306/mydb 
       </connection-url> 
       <driver> 
        mysql 
       </driver> 
       <transaction-isolation> 
        TRANSACTION_READ_COMMITTED 
       </transaction-isolation> 
       <pool> 
        <min-pool-size> 
         5 
        </min-pool-size> 
        <max-pool-size> 
         10 
        </max-pool-size> 
        <prefill> 
         true 
        </prefill> 
        <use-strict-min> 
         false 
        </use-strict-min> 
        <flush-strategy> 
         FailingConnectionOnly 
        </flush-strategy> 
       </pool> 
       <security> 
        <user-name> 
         username 
        </user-name> 
        <password> 
         password 
        </password> 
       </security> 
      </datasource> 
      <drivers> 
       <driver name="mysql" module="com.mysql"/> 
      </drivers> 
     </datasources> 
Các vấn đề liên quan