2017-03-08 113 views
0

我想在standalone.xml中配置SQLSERVER數據源。在我的項目中,我使用JTA,並與其他人一起創建了配置。有什麼不同 ?我使用的是這樣的:Jta =真或Xa數據源在Jboss EAP 7

<datasource jta="true" jndi-name="java:jboss/datasources/mydatabase" pool-name="seguDS" enabled="true" use-java-context="true"> 
        <connection-url>jdbc:jtds:sqlserver://192.168.40.16/mydatabase;instance=clust02</connection-url> 
        <driver>jtds-1.3.1.jar</driver> 
        <new-connection-sql>select 1</new-connection-sql> 
        <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation> 
        <pool> 
         <min-pool-size>5</min-pool-size> 
         <max-pool-size>50</max-pool-size> 
        </pool> 
        <security> 
         <user-name>sa</user-name> 
         <password>sa</password> 
        </security> 
        <validation> 
         <check-valid-connection-sql>select 1</check-valid-connection-sql> 
        </validation> 
        <timeout> 
         <set-tx-query-timeout>true</set-tx-query-timeout> 
         <blocking-timeout-millis>5000</blocking-timeout-millis> 
         <idle-timeout-minutes>15</idle-timeout-minutes> 
        </timeout> 
        <statement> 
         <track-statements>false</track-statements> 
        </statement> 
       </datasource> 

這對我的作品,但我很害怕,如果正確,或者我應該改變爲XA-數據源。

回答

0

當你在JBoss EAP 6.x或JBoss EAP 7中創建一個local-tx數據源時,它默認「jta」屬性爲「true」。這將有助於本地tx資源參與全球交易。 「jta」屬性僅爲非xa數據源啓用JTA集成(https://access.redhat.com/documentation/en-US/JBoss_Enterprise_Application_Platform/6.1/html-single/Administration_and_Configuration_Guide/index.html#Datasource_Parameters1)。 如果您的應用程序使用全局事務,即需要事務管理器來協調跨多個資源管理器的分佈式事務,那麼您需要XA數據源。

+0

如果我使用非xa數據源,沒有JTA,爲什麼我需要jta = true?我無法理解所需。 – RonaldoLanhellas

+0

默認情況下,如果沒有明確配置,jta值在非xa數據源中爲true。 jta =「true」表示數據源將遵守Java事務API並允許通過JCA實現更好地跟蹤連接。 –