You may enlist a resource only on a server

WebLogicJTAJCAは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)
・・・以下略・・・

このエラーメッセージはJBossJTAJCAをライブラリレベルで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系はアルファ(開発版)なのでいたしかたなしか.