« Perf4J : org.perf4j.LoggingStopWatch | Main | カスタムクエリ画面で作成日を条件に抽出したい »

2009.02.26

JOTMの2PCのコネクション

 JOTMを用いてTwo Phase Commit の続き(?)。

 JNDIを用いずに全て自前で処理を行うようにしていたのですが、どうもDBコネクションが残り続けるという現象が。当然のことながら、取得したjava.sql.Connectionはcloseしていることはソースで確認済み。

 ソースコードで追ってみると、org.enhydra.jdbc.standard.StandardXADataSource クラスから getXAConnection() をするところで、毎回コネクションを作成している模様。これが原因で解放されないコネクションが残り続けているようです。
 で、さらに調べてみると、XAConnectionからgetConnection()で取得したConnectionをcloseするのは当然ながら、XAConnectionに対しても明示的にcloseをする必要があるっぽいです。

 2PCに関しては(そうそう使う機会がないので)詳しくはないのですが、XAConnectionってそんなものなんでしょうかね? XAConnectionから取得したConnectionをcloseした場合、自動的にXAConnectionの方もcloseして欲しいような気もしつつ。

|

« Perf4J : org.perf4j.LoggingStopWatch | Main | カスタムクエリ画面で作成日を条件に抽出したい »

Java」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/3959/44186207

Listed below are links to weblogs that reference JOTMの2PCのコネクション:

« Perf4J : org.perf4j.LoggingStopWatch | Main | カスタムクエリ画面で作成日を条件に抽出したい »