そういえば、トランザクションって DB を CloseConnection した後も生きてるんだっけ?
あるフレームワークを使って VB.NET の開発をしてるんだけど、DB を参照しかしない場合も、DB への OpenConnection 後で BeginTransaction が実行される。
まあ、DB を更新をした場合は、必ず CommitTransaction か RollbackTransaction 実行して処理を抜けるんだけど、参照しかしなかった場合はその処理を書いてなかった。
というのも、処理は全て try/catch/finally 文で囲まれていて、finally で DB への CloseConnection 処理を実行してるので「DB から切断するからトランザクションも終了するわな」とか思ってた(^^;
でも、実際には終わってなくて、次に BeginTransaction した時に、「トランザクションが開始されてます」のエラーになっちゃう。
いやあ、俺がまだこのフレームワークに慣れてないのと、他にちょっと疑わしい点があったので、結局そっちの的外れな方をいろいろ調べてて、今日の午前中を無駄に過ごしてしまった(^^;
しかし、DB から切断しても Transaction って生きてるものなのね(^^;(時間が経つとタイムアウトなのかなんなのか自動で死んじゃうみたいだけど)
これまで、ずっとそんなことは意識せず生きてきたわ。
てか、自分でフルスクラッチでプログラム作る時は、参照だけの時にもトランザクションを実行するなんてことないからな(^^;
やっぱ、たまに他社のプロジェクトに入ると色々勉強になるなあ(^^;
電気ウナギ的○○
About Backコメント(0)
電気ウナギ的○○