UserTransaction完了後の謎
XAデータソース1個のテストに続いてXAデータソース2個のグループロールバックのテストも成功.
ここまでくれば心配なのは後はコミット時にエラーが発生するパターンくらいかな(WebLogicではそのテストをやると成功はするもののそれ以降はサーバ再起動するまでテストの再実行ができなくなった)
で,WebSphereに関しては以下の謎が.毎度おなじみのMySQL General Logにて,
9 Query USE `` 9 Query rollback 9 Query rollback 9 Quit 6 Query USE `` 6 Query rollback 6 Query rollback
クリーンアップと称しつつ,呼び出しConnection.setCatalog("")を行っているっぽい.←引数空文字で呼んでいる.
ちなみにWebSphereのtrace.logはこんな感じ.
[05/08/10 21:48:02:792 PDT] 00000026 MCWrapper E J2CA0081E: リソース MysqlDS2 からメソッド cleanup を ManagedConnection WSRdbManagedConnectionImpl@34269808 で実行しようとして、メソッド cleanup が失敗しました。 例外をキャッチしました: com.ibm.ws.exception.WsException: DSRA0080E: An exception was received by the Data Store Adapter. See original exception message: No database selected. with SQL State : 3D000 SQL Code : 1046 at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java(Compiled Code)) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1614) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1709) at com.mysql.jdbc.Connection.execSQL(Connection.java:2972) at com.mysql.jdbc.Connection.setCatalog(Connection.java:4990) at com.mysql.jdbc.jdbc2.optional.ConnectionWrapper.setCatalog(ConnectionWrapper.java:126) at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.setCatalog(WSRdbManagedConnectionImpl.java:4011) at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.cleanupStates(WSRdbManagedConnectionImpl.java:3091)
mysqlクライアントで"use;"を実行すると,
mysql> use; ERROR: USE must be followed by a database name
となるので,これが原因かと.無視しちゃおうかなと思うのですが.