2012-02-03 15 views
5

czekałem na kilku przykładach do konfigurowania źródła danych MySQL w JBoss 7. Wszelkie odniesienia Widziałem dla elementu wygląda następująco:konfiguracja JBoss DataSource dla MySQL - elementem 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> 

wiem co <driver-class> jest, ale co dokładnie jest <xa-datasource-class> jaki jest jego cel?

Kiedy skonfigurowałem źródło danych na serwerze Tomcat, zanim nie musiałem określać źródła danych Xa dla żadnej bazy danych. Dlaczego tutaj jest inaczej?

Dzięki

Odpowiedz

7

Według specyfikacji JDBC 4.0 (12.2): datasources XA produkuje połączenia XA zdolne do wykorzystania w globalnych/transakcji rozproszonych. Takie połączenie może być potrzebne, jeśli potrzebujesz transakcji obejmującej więcej niż jedną bazę danych lub wywołania JMS. Możesz znaleźć jasne wyjaśnienie tej koncepcji: http://www.theserverside.com/discussions/thread.tss?thread_id=21385#95346

Jeśli nie masz takiego scenariusza transakcji rozproszonych, nie musisz określać źródła danych xa, wystarczy prosta konfiguracja źródła danych. Tak więc, jeśli używasz prostego źródła danych, nie musisz określać klasy xa-datasource, kiedy deklarujesz swój sterownik.

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