Ognacの雑感

木漏れ日々

目次

Blog 利用状況

書庫

ギャラリ

Trasactionは速やかにクローズしなくて良いの?

「Trasaction期間は不用意に長引かせてはいけない」というのは基本と思います。
    BeginTran
     try
          update文いくつか
          Commit
     catch
          Rollback
     end try
の流れが単純な流れですね。ケッタイなソースがありまして。
    BeginTran
     try
          update文いくつか
          dim 結果数 as integer = select count(*) where 結果確認条件 '<== 上記のUpdateが正常に処理されたか否かの確認取得のようだ
          if 結果数 =0 then
              dim rc as dialogResult = Messagebox.show("更新できなかったので、ロールバックします")
              Rollback
          else
              Commit
          endif
     catch
          Rollback
     end try
こんなのOKなの? トランザクション期間の間にUI(MessageBox)を介してOperatorと会話するのは。
 気付かずにMessageBoxを放置したらどうなるの。DBは一定期間放置されたら自動rollbackが掛かると思うのですが、設定如何ではズット待ち状態になるかも知れません。(確認してませんが)
指摘したら、「当システムのユーザーは少なく。RollBackが走っても再度入力するから構わない。」とPM側の技術責任者から返事がきた。

Webアプリで Session変数に コネクション情報とともに、トランザクションも格納して、異なる頁で RollBack/Commitするシナリオを書いている人もいました。
プログラム的には可能なだけに、説得が難しい。結局説得できずに放置してます。(御免なさい)

なぜ周囲にこの手の人が居るのだろ。業界的にも同じような比率で存在してそうですね。彼らを教育するのは誰なんだろう。
怪しげな知識しか持たない設計者を識別できる眼鏡を探してます。ご存知の方、ご一報を。

エラソーに書いてますが、私間違ってないですよね? 不安になってきた。上記のスタイルがOKだとしたら.....辛いことになる...orz;

投稿日時 : 2007年10月31日 0:34

Feedback

# re: Trasactionは速やかにクローズしなくて良いの? 2007/10/31 1:06 中博俊

あり得ないです。
なので、トランザクション管理はデータ層、もしくはデータベースと対話してよいDLLの中などで完結させます。
常識です。

# re: Trasactionは速やかにクローズしなくて良いの? 2007/10/31 1:07 中博俊

あ、楽観ロックの場合はね。
悲観ロックではありです。

# re: Trasactionは速やかにクローズしなくて良いの? 2007/10/31 1:14 THREE-ONE

やるとしても、Rollbackしたあとに「Rollbackしました」メッセージですよねぇ。

# re: Trasactionは速やかにクローズしなくて良いの? 2007/10/31 9:09 Mr.T

Mr.Tです、こんにちは。
トランザクションもストアド内でやってしまえばいい、と思う今日この頃。
チェックもストアド内で行う、これ最高。

>Rollbackしたあとに「Rollbackしました」メッセージですよねぇ。
ん?そういうのはメッセージじゃなくて、ログに吐く内容と思いますが...

# re: Trasactionは速やかにクローズしなくて良いの? 2007/10/31 11:58 Ognac

間違ってなくてよかった。不安を感じること自体おかしいですよね。
ストアード内が完結するのは同意ですが、スプレッド型のEntry画面などは言語依存にしてしまいますね。

# re: Trasactionは速やかにクローズしなくて良いの? 2007/11/01 1:40 かつのり

トランザクション内でのユーザとの対話はありえないですね。

最近は、データアクセス層とビジネスロジック層を分けて作っているので、
トランザクション境界はビジネスロジック層にしている派です。
このモデルの場合、データアクセス層でトランザクションを制御すると、
トランザクションの有無の違いしかない同じデータアクセス処理が増殖します。

# re: Trasactionは速やかにクローズしなくて良いの? 2007/11/02 12:11 Chuki

>怪しげな知識しか持たない設計者を識別できる眼鏡を探してます。ご存知の方、ご一報を。

数語話せばすぐわかるんですけれどねぇ。みてくれでわかればいいですよね^^

タイトル
名前
Url
コメント