Newsgroup: it.comp.java
Titolo: MySql ed XaDataSource

Vorrei sapere se qualcuno ha configurato un XA datasource con mysql su una
j2ee.
Su un forum ho letto che mysql non supporta XA, ma i suoi driver jdbc
riportano una classe xa.
In particolare sto provando ad utilizzare una transazione globale da
BeaWeblogic 6.1 verso due db diversi su MySql, anche se utilizzo i driver
normali ed uso il txdatasource settando il flag enable two phase commit ho
sempre un errore ...... (ma non nell'apertura delle connessioni del pool)
Ho visto dei documenti che dicono di usare per esempio su jboss i wrapper xa
(per esempio della merant), io su WebLogic credo di aver fatto altrettanto,
ma ripeto, se nella transazione c'e' piu' di un resouce manager fa il botto,
altrimenti se ho un solo db di riferimento tutto è ok.
Che mi dite?
--
Fabrizio Marini
E-mail: 
f.ma...@k-tech.it
E-mail: 
fabry....@mclink.it
K-Tech S.r.l.
Company Partner
Via Tibullo, 13
00193 - Rome (RM) - Italy
Phone: +39 (0) 6 68301467
http://www.k-tech.it
http://www.javaportal.it

Io lo feci con weblogic 5.1 parecchio tempo fa. Dovetti modificare il driver
jdbc perché nonappena weblogic richiamava i metodi che avevano a che fare
con le transazioni, il driver dava un'eccezione. Probabilmente oggi non è
più necessario. Per quanto ne so MySQL è usato anche in AppServer J2EE (so
di gente che l'ha usato con JBoss, ma non io di persona). Sul sito di jboss,
nel forum, probabilemente basta fare una ricerca per mysql e trovi qualcuno
che dà le dritte necessarie.
Luigi

Se, come penso, usi MySQL Connector/J, devi configurare i connection 
pools con driver classname settato non a com.mysql.jdbc.Driver ma a 
com.mysql.jdbc.jdbc2.optional.MysqlXaDataSource (altrimenti WebLogic ci 
mette di mezzo il driver JTS che non ti fa usare piu' di un pool 
all'interno dello stesso thread).
Ciao,
Alberto

Grazie a tutti, ho mandato una mail al supporo di mySql, ed il problema è
proprio che il db non supporta lo standard xa.
riporto la mia richiesta e la risposta:
Mia domanda:
I'm trying to configure a XA datasource on Bea WebLogic 6.1, i'm using the
Connector/J.
If i use two different database in an atomic transaction i'm not able to
commit and i receive a rollback signal.
I have read in a generic forum that actually MySql does not support XA is
it true?
 Thanks
loro risposta:
This is true.
XA support in MySQL is in the idea bin (so it's being talked about) but we
haven't had more than 2-3 users ever ask for it (or sponsor it), so it's not
a fore-front feature for MySQL at this point in time. From a JDBC
perspective, JDBC-3.0, JDBC compliance, and even better performance as well
as configurability are the top feature requests.
    -Mark
Commenti?

 wrote in message
news:3DD57E7F...@mclink.it...


Fabrizio Marini wrote:
      > Se ci provi e configuri come dici tu due pool con la classe
      > com.mysql.jdbc.jdbc2.optional.MysqlXaDataSource
      > e poi usi due txdatasource con o senza i wrapper xa (ho fatto
tutte le
      > prove) il tutto ovviamente nei confronti di due db mysql ricevi
sempre un
      > errore in fase di commit poi il tutto non fa la rollback e ti trovi
i db
      > sporchi :(
      >
      > Tu hai ottenuto risultati diversi?
Mah, io ho fatto un semplice esempio di transazione distribuita su due
istanze di MySQL, una su Linux e una su Windows, per preparare una
lezione del mio corso J2EE/WebLogic (vedi sotto le versioni del software
che uso). In produzione non mi e' mai capitato di dover fare transazioni
distribuite su MySQL, ne' posso dire di essere un grande esperto di
questo RDBMS. Ad ogni modo a me la cosa funziona (con una certa
instabilita', comunque, specie dopo un rollback, sia pure riuscito) con
com.mysql.jdbc.jdbc2.optional.MysqlXaDataSource come Driver Classname
nella configurazione del pool e con false come Enable Two-Phase Commit
nella configurazione della Tx Data Source. Per il momento non so cosa
pensare: bisognerebbe approfondire. Io li odio, i computer...
WebLogic 6.1
MySQL 3.23.52 su Red Hat 8.0
MySQL 3.23.49 su Windows 98
Connector/J 2.0.14

Ups. Sorry. In realtà la mia prova non aveva nulla a che fare con
transazioni distribuite.
Luigi.