11月9日(月)1、2コマ目
今日、やったこと
[.Net版]異常系処理演習(ユーザー登録)
今日のホワイトボード
トランザクションとコミット、ロールバックについて
前回のJava版在庫引当でトランザクション処理に理解が甘いかたがおられましたので、フォローしておきます。
|
|
図 トランザクションとコミット、ロールバック |
トランザクションはコミット、ロールバックで終わる
- コミットすれば、更新処理はすべて確定。
- ロールバックすれば、直近のコミットした時点のデータに戻る。
ということは、コミット後の更新処理はすべてキャンセルされる。
〇コミットすれば更新は確定
在庫引当の課題では、一度に複数商品の在庫引当ができるようになってました。
仕様では
すべての在庫引当成功 => 在庫引当処理成功 => コミット
1件でも在庫引当失敗 => 在庫引当処理失敗 => ロールバック
です。
これを1件更新するたびにコミットまたはロールバックするように実装されていた方がおられました。仕様と異なる動きをしてしまいます。
〇ロールバックすれば直近のコミットしたときのデータにデータベースが戻してくれる
自力でデータ復旧処理を実装されていた方がおられましたが、ロールバック一発でOKです。
今日の課題
C#で、ユーザー登録を行うアプリケーション作成です。
一見さんお断りシステムを採用していますので、すでに登録済みユーザーが紹介者になってもらう必要があります。
一応、ソースコードを公開しておきます。
〇Userクラス
ユーザーデータの受け渡しに使うクラス。
〇RegistUserResultEnum(列挙型)
ユーザー登録処理の結果を伝えるための列挙型。
〇UserDAOクラス
ユーザーマスタテーブルアクセスのためのクラス。
〇Serviceクラス
機能提供クラス。
〇Index.cshtml
Razorページ。
〇Index.cshtml.cs
Index.cshtmlのコードファイル。

コメント