2005-07-01から1ヶ月間の記事一覧

TX その19 ちょっとした進展

エミュレーションコード public void testTxManager() throws Exception { String url = "jdbc:mysql://localhost:3306/test"; Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection conn = (com.mysql.jdbc.Connection) DriverManager.getCon…

TX その20 enlistResourceについて

あとはこれだけかな. TransactionManagerに対してbeginを行わないとTransactionContextが生成されない. XAResourceはTransactionContextが保持する. つまりbeginした後じゃないとXAResourceをenlistできない. で,誰がいつどのようにして行っているのか…

TX その21 enlistResourceのタイミング

とりあえず"*.java" "enlistResource"で引っかかった奴から. org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListenerクラスのenlistメソッドが呼ばれたとき org.jboss.ejb.plugins.inflow.MessageEndpointInterceptorクラス…

TX その22 TxConnectionManager

以前「大量のクラスコメントがある」と日記に書いた際についでに作ったTxConnectionManagerのクラスコメントの乱雑和訳 LocalTxConnectionManagerは,LocalTransactionをサポートするJCAアダプタを管理するためのConnectionManager実装である. LocalTxConne…

TX その15 途中経過まとめ

JavaONEへ参加したり,他の優先度の高いやることが発生したりでしばらく間が空いてしまったJBossTXですがそろそろ再開.これを片付けないことにゃ,あるものが進まないんだよねぇ.とりあえず久々で自分の頭からもだいぶ抜けてしまっているんで,これまでの…

TX その16 XAConnection XAResource

こいつをさくっとenlistしちゃえばいいのかな? public class MysqlXAConnection extends MysqlPooledConnection implements XAConnection, XAResource {もうちょい調べます.

TX その17 TxManagerとTransactionImpl

その14で書いた またTxManagerにはTransactionインスタンスのsetterメソッドは無い.従ってThreadLocalにTransactionインスタンスを持ったThreadInfoを突っ込んでおかないといけない.TxManagerをnewして何もしないでgetTransaction()を呼ぶとnullが返る. …

TX その18 スレッドとTransaction Contextの関係

TxManager.associateThreadメソッド public void associateThread(Transaction transaction) { if (transaction != null && !(transaction instanceof TransactionImpl)) throw new RuntimeException("Not a TransactionImpl, but a " + transaction.getClas…