みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

新幹線、飛行機のチケット予約システムについて

現在は窓口とインターネットで取引ができます。

そこで質問です。
窓口とインターネットで同時期に同じ席を
予約する可能性はあると思うのですが
どのようにして回避しているのでしょうか?

また、残り一席であった場合も同様にです。

理由は
インターネットショッピングだけであれば
先に登録をしてしまえば後から登録した人は
後と判断できると思います。
ですけど下記のような事例があると思います。


事例1
窓口でお客様に予約を受けましたと言った後
画面で操作する瞬間に
他者がWEBで登録すると
「すでに予約されてます。」
と表示されるのでしょうか?
その後、お客様に
「予約をキャンセルしてください。」
と言うのですか?


システム要件的には
窓口とインターネットのどちらかで
画面を表示中はデータベースをロックしているのですか?

システム要件的な意見
実際システムを利用している方の意見
をいただけないでしょうか?

よろしくお願いいたします。
長文でつたない文を読んでいただきありがとうございます。

PS.私はシステム関連で仕事経験が3年程度の者です。

投稿日時 - 2007-04-12 21:25:05

QNo.2916120

困ってます

質問者が選んだベストアンサー

★画面表示のロックは必要ありません。
・窓口でもインターネットでもどちらかが予約要求に入ったらば、他の一方は登録待避状態に
 ロックしておきます。このようなロックを『排他制御』と呼びます。
・ここのQ&Aでも回答ページでメッセージを入力して回答を投稿しようとしたときにタッチの
 差で締め切られてしまうと『投稿エラー』となります。→過去に2回ほど経験しました。
 あぁ、締め切られた!ってね。
・とにかく窓口でもインターネットでも予約要求されたらば、別の方は登録待避状態にする処理を
 行うしかありません。窓口の画面では、リアルタイムで表示できますが、インターネットの方は
 お客さんがブラウザでページを更新するか登録画面で、もう予約できなかったというメッセージ
 をだすまで気づきません。このため、ブラウザでも予約などの表示をリアルタイムで表示できる
 仕組みが好ましいです。CGI、Perl、PHP などで同期をとるような仕組みを取れば良さそうです。

最後に:
・『排他制御』に関しては次の関連質問と
 http://oshiete1.goo.ne.jp/qa2916783.html→『マルチスレッドについて』
 マルチスレッドを使って『排他制御』を行う記事が
 http://www.kumei.ne.jp/c_lang/sdk/sdk_87.htm→『第87章 マルチスレッド その1』
 http://www.kumei.ne.jp/c_lang/sdk/sdk_88.htm→『第88章 マルチスレッド その2』
 http://www.kumei.ne.jp/c_lang/sdk/sdk_89.htm→『第89章 マルチスレッド その3』
 http://www.kumei.ne.jp/c_lang/sdk/sdk_90.htm→『第90章 マルチスレッド その4』
 http://www.kumei.ne.jp/c_lang/sdk/sdk_91.htm→『第91章 マルチスレッド その5』
 http://www.kumei.ne.jp/c_lang/sdk/sdk_92.htm→『第92章 マルチスレッド その6』
 http://www.kumei.ne.jp/c_lang/sdk/sdk_93.htm→『第93章 マルチスレッド その7』
 などに載っています。
 C 言語用ですが参考になればと思い紹介しました。
・以上。参考に!

参考URL:http://ja.wikipedia.org/wiki/クリティカルセクション

投稿日時 - 2007-04-13 12:48:15

お礼

技術的な意見も頂き非常に助かります。
私はJAVAのWEB系ですが参考URLも大変助かります。
他の方にも、同じように回答しているのですね
回答の信頼性を感じます。

投稿日時 - 2007-04-13 21:58:36

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

窓口でも同じですよ。
 窓「真ん中の席ならひとつ空いてますが...」
 私「仕方ないですね...お願いします」
 窓「あ、すみません。先に取られてしまいました」
という経験は個人的にもあります。

仮に最初に表示した窓口(個人)画面に(全国にひとり)しか
表示されないとなったら、決して自分に順番が回ってくる
ことがなくなってしまうでしょう(^^;

投稿日時 - 2007-04-13 00:00:22

お礼

2度も回答していただき誠にありがとうございます。
結局窓口業務でも同じことがおこりえるのですね。
びっくりしました・・・
世の中、すぐに切れてしまう人が結構いるものですから(汗

大方解決できたのですがもう少しだけ
期限を延ばしたいと思います。

投稿日時 - 2007-04-13 21:56:23

ANo.1

>システム要件的には
>窓口とインターネットのどちらかで
>画面を表示中はデータベースをロックしているのですか?

画面表示をロックする必要は無いでしょう。
購入手続き中に他のリクエストをロックすれば十分です。

ですから、画面には”空席1”と表示されていても、購入手続きを行うと、
購入手続きに失敗(先に取られてしまう)ということが良く起こります。
しかし、これでシステム的に矛盾(不都合)を生じるようなことにはなりません。

投稿日時 - 2007-04-12 23:11:47

お礼

ご回答ありがとうございます。

画面表示はみんな一斉にでけども
先に購入手続きした者が決定権を得るという
のが一般的なんですね。

ただ、窓口でのときが・・・
どうなんでしょう

投稿日時 - 2007-04-12 23:51:04

あなたにオススメの質問