そういえば
Connector/Jは2.xのあと3.0,3.1,3.2と来たわけですが,その次は5.0系としてリリースされるみたいですよ.
なんでそんなに番号飛ぶの〜ってのは知りません.サーバのバージョンに似せている?それともJ2SE5.0を意識?
You may enlist a resource only on a server
WebLogicのJTAとJCAはin-containerじゃないと動きませんだとさ.
javax.transaction.SystemException: You may enlist a resource only on a server at weblogic.transaction.internal.TransactionImpl.enlistResource(TransactionImpl.java:441) at testsuite.integration.xa.unit.weblogic.WebLogicXATest.testCommit(WebLogicXATest.java:86) ・・・以下略・・・
このエラーメッセージはJBossのJTAとJCAをライブラリレベルでJUnit使ってUnitTestするコードをWebLogic用に書き換えたものを実行した際にでたもの.
最初は書き換えミスかと思ったけれども,エラーメッセージの内容とエラー発生個所"enlistResource(XAResource)"を良く見るとあれ〜.
彼ら自身はUnitTestしてないのか?
XA関連メモ
Connector/J 3.2系最新nightlybuildのデータベース名指定無しだと動かない.このバグは修正済みだとおもってたけど.XAのほうは修正漏れなのかな.
com.mysql.jdbc.jdbc2.optional.MysqlDataSourceクラスの413行目付近.青い文字の部分を追加する.
if (this.databaseName != null) { jdbcUrl.append(this.databaseName); } else { jdbcUrl.append("test"); }
以下のようにXADataSourceのデフォルトで接続を取得しようとするとデータベース名未設定の状態で呼んでしまうため.
new MysqlXADataSource().geteXAConnection();
まだver3.2系はアルファ(開発版)なのでいたしかたなしか.