1 min read

Configuracion de transacciones distribuidas. so wha?

Vamos a ver como conformamos el archivo de DataSource para JBoss en el caso en el que necesitemos usar transacciones ditribuidas. Un caso normal para esta necesidad es cuando estamos usando dos fuentes de datos en una misma transaccion de JTA, ya que si no configuramos que la transaccion utilice XA no podriamos hacer un commit distribuido. Para esto debemos asegurarnos de que el driver  jdbc soporte XA. En el caso de PostgreSQL no tenemos ningun problema

Con el driver de PostgreSQL

postgre-ds.xml

<datasources>

<xa-datasource> <jndi-name>somethingDS</jndi-name> <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <xa-datasource-property name="ServerName">[hostname]</xa-datasource-property> <xa-datasource-property name="PortNumber">[port]</xa-datasource-property> <xa-datasource-property name="DatabaseName">[db]</xa-datasource-property> <xa-datasource-property name="User">[user]</xa-datasource-property> <xa-datasource-property name="Password">[password]</xa-datasource-property> <track-connection-by-tx/> </xa-datasource>

<xa-datasource> <jndi-name>somethingDS2</jndi-name> <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class> <xa-datasource-property name="ServerName">[hostname]</xa-datasource-property> <xa-datasource-property name="PortNumber">[port]</xa-datasource-property> <xa-datasource-property name="DatabaseName">[db]</xa-datasource-property> <xa-datasource-property name="User">[user]</xa-datasource-property> <xa-datasource-property name="Password">[password]</xa-datasource-property> <track-connection-by-tx/> </xa-datasource>

</datasources>