- - PR -
複数ページ間でのトランザクション
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-02-23 13:41
コミットしない限り、在庫は変わっていないように見えます。 トランザクションの分離って、そういうものでしょ? そういうことをしたいのなら、在庫テーブルのほかに購入予約テーブルのようなものを作って ちゃんとコミットしてやらないといけません。 (「予約しただけで購入しなかった」ものを正しく処理できるような工夫が必要ですが) | ||||
|
投稿日時: 2005-02-23 15:14
もしくは同一テーブル内でフラグにより識別するとか。 | ||||
|
投稿日時: 2005-02-23 19:19
これを買う、買わないの判断をせず、ブラウザを終了させてしまったり、回線が途中で切れた場合、どうなるのでしょう? ほとんどのサイトで、在庫数を明示せず、「豊富にあります」「残りわずか」などの大まかな表示しかされていないのはなぜでしょう? 例えば、サーバにアクセスに行ったときには在庫が10個あった。でも、表示画面を見ながら買おうかどうしようか悩んでいるうちに10人の人が購入してしまった。このとき、悩んでいる人はその商品が買われてしまったことが、まだわかっていませんよね。そして、やっぱり買うことにして「購入」ボタンをクリックすると・・・「在庫がありません」。このとき、この人は「悩んでいるうちに買われてしまったのか、しかたがない」とあきらめるでしょうか。それとも「10個あるって書いているのに、どうして買おうとしたら『ない』になるのか」と怒り出すでしょうか。 はたまた、誰かが「悩み中」の場合、他の人がカートに入れられない仕様なら・・・それはそれで、他のユーザにとってストレスになりますよね。 セッション変数への格納が、シリアル化できないから出来なかったということは、インプロセスモード以外ですね。ということは、Session_Endイベントも発生しません。だとすると、回線が途中で切れた場合、いったいいつトランザクションを終了するつもりだったのでしょう? ユーザが、アプリケーションが期待するとおりの操作を行ってくれるとは限りません。出来るだけ多くのところで、どんな操作がされるおそれがあるか、情報収集しましょう。 | ||||
|
投稿日時: 2005-02-24 04:58
みなさん、たくさんのご意見有難うございました。大変参考になりました。
結論として、今一度、技術面、仕様面、などからを見直してみることにします。 |