2012-02-03 16 views
5

He estado buscando en varios ejemplos para la configuración de un origen de datos de MySQL en Jboss 7. Todas las referencias que he visto para el elemento se ve así:configuración Jboss origen de datos para MySQL - elemento 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> 

Sé lo el <driver-class> es pero ¿qué es exactamente el <xa-datasource-class> cuál es su propósito?

Cuando configuré una fuente de datos en Tomcat antes de que no necesitara especificar el xa-datasource para ninguna base de datos. ¿Por qué es diferente aquí?

Gracias

Respuesta

7

Según especificación JDBC 4.0 (12.2): fuentes de datos XA produce conexiones XA capaces para ser utilizados en las transacciones globales/distribuidos. Es posible que necesite una conexión de este tipo si necesita una transacción para abarcar más de una base de datos o llamadas JMS. Puede encontrar una explicación clara del concepto aquí: http://www.theserverside.com/discussions/thread.tss?thread_id=21385#95346

Si no tiene ese escenario de transacciones distribuidas, no necesita especificar un origen de datos xa, basta con una configuración de origen de datos simple. Por lo tanto, si utiliza un origen de datos simple, no es necesario especificar una clase xa-datasource cuando declare su controlador.

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