JavaEEを触り始めて「へぇー」と思ったことの1つに「DBの処理に関してトランザクションやロールバックはEJBが自動的にしてくれる(もちろん手動設定モードもある)」というのがあります。便利だ〜と拍手しそうな反面、自動って具体的にはどういう挙動するの?と。
業務系システムだと様々なパターンがあるので気になる所です。
今日はそんな確認をしている中、気が付いたことのメモ。
NetBeansにてデバッグモードでプログラムを実行して、ブレイクポイントを設置します。
起動したブラウザでブレイクポイントに止まる操作をして、止まったことを確認します。緑になってます。
このまま別のブラウザとか別マシンから同じようにアクセスします。すると緑の裏に歯車の印が!
右クリックしてみると単一スレッドのときにはなかったメニュー「現在のスレッドを設定」が見えます。
あとはそのスレッドを自由に切り替えることができて、実際切り替えてデータを見ると以下のように
※IDが同じなのはかくかくしかじか…ここでは気にしないで下さい。スレッドごとに違うインスタンスを切り替えて見れることが本質です。
例えばどちらかのスレッドを先に進めます。すると緑のラインが進みます。
ここで切り替えると…おお、先の緑のラインが歯車になって、切り替えたスレッドのいる場所が緑に!
排他とか同時実行とかの確認には便利かなと思いました。Web系やる人からしたらIDEとして当たり前の機能なのかなぁ(^^;