その手の平は尻もつかめるさ

ギジュツ的な事をメーンで書く予定です

java-db-transaction-managerが出ていた

大昔の話ですが,java-db-transaction-managerというのを書いて,リリースしていました.

PerlのTransaction ManagerであるDBIx::TransactionManagerJava移植版です.シンプルなやつが欲しかったので.


機能としてはDBのtransactionに必要な機能であるbegin,commit,rollbackを提供しています.
入れ子になったtransaction内で既にrollbackされているのにも関わらずcommitが発行された時は例外が上がります.普通な感じですね.
try-with-resourcesを利用することも可能で,もし明示的にcommitもしくはrollbackが発行されないままそのスコープ外に出ると自動的にrollbackを発行するというような挙動になっています.

加えて,アクティブなtransactionのトレース (現在のtransactionのみ,あるいは全てのtransactionについて) を取るということも出来ます.便利!
ところでJavaでLLの様にカジュアルにスタックトレースの情報を取ろうとするとまあまあハイコストで困ってしまう,というかパフォーマンスに支障が出るわけですけれども,それを何とかすべくこのライブラリではJDKのprivateなAPIをリフレクションで呼び出すという力技で解決しています.そうすると速い.ここらへんは
tokuhirom/caller · GitHub
を参考にしました.


御利用ください.
あ,念のため言うとスレッドセーフではないです.