2012-02-03 55 views
5

我一直在尋找的幾個例子中的Jboss 7配置數據源爲MySQL的所有引用我見過的元素看起來是這樣的:爲MySQL的Jboss數據源配置 - MysqlXADataSource元素

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

我知道是什麼<driver-class>是什麼,但<xa-datasource-class>究竟是什麼目的?

當我在Tomcat上配置數據源之前,我不需要爲任何數據庫指定xa-datasource。這裏爲什麼不同?

由於

回答

7

根據JDBC 4.0規範(12.2):XA數據源產生能夠在全球/分佈式事務中使用XA連接。如果您需要跨越多個數據庫或JMS調用的事務,則可能需要此類連接。您可以在此處找到對此概念的明確說明:http://www.theserverside.com/discussions/thread.tss?thread_id=21385#95346

如果您沒有這種分佈式事務方案,則無需指定xa-datasource,只需簡單的數據源配置即可。因此,如果您使用簡單的數據源,則在聲明驅動程序時不需要指定xa-datasource類。

<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> 
相關問題