2012-04-02 19 views
3

これは、技術的な議論で直面した問題に対する答えを探すためのものです。asp.netはどのように同時ユーザー要求を処理しますか?

旅行予約ウェブサイトには、50枚のチケットがあります。 Asp.netが同時にリクエストを処理できると考えると、同時に2人のユーザーが同時にWebサーバーにアクセスしたチケットがもう1枚残っています。

q。 1)asp。netはこの要求をどのように処理しますか?

2)ユーザーの1人が最後のチケットを取得する方法があります。それは何ですか?

この質問に答えるには、asp。ネットアーキテクチャの深い理解が必要だと思います。

誰でも私にいくつかの洞察力を与えることができます。

おかげ SNA

+0

私は彼がディスカッション自体から聞いたことは、何らかの理由で多くの旅行Webサイト(実装中に何かが不足している可能性があります) httpを取得してください)チケットを取得します。 – SNA

答えて

4

1)のASP .NETは、この要求を処理する方法は?

と同時に、

2)ユーザーが最後のチケットを取得する方法があります。それは何ですか?

それはあなたがチケットを取得することにより、何を意味するかに依存します。チケットを取得することによって、データベースのフィールドを更新することを意味する場合、これを処理するのはデータベースの責任です。トランザクションを使用すると、UPDATEを開始する最初のSQL問合せが成功し、おそらくデータベース・レベルで何らかの種類の制約を使用すると、2番目の問合せは失敗します。しかし、もう一度すべてが特定の実装に依存します。

+0

もし両方のユーザが正確に同じ時刻にサーバにヒットしたなら、asp .netはリクエストを同時に処理するので、ステータスを更新するクエリ(おそらくbooked = trueのようなもの)はinitaite.ifになります。 asp .netがこれをどう決めるの? – SNA

+2

@SNA、ASP.NETはそれを決定しません。両方の要求を並行して実行します。 ADO.NETを使用してデータベースに接続するコードの背後にあるコードでは、2つの同時SQL要求がスローされた場合にデータベースがどのように動作するかによって異なります。これはASP.NETとはまったく関係ありません。 –

+0

ありがとう.i得ました。 – SNA

2

この場合、フロントエンドの並行性については心配する必要はありません.IISがこれを処理します。慎重に選択されたトランザクション分離レベル、デッドロック処理などを含む適切なデータベース実装がより重要になるでしょう。

関連する問題