2009-03-10 8 views
1

ウェブアプリケーションのセッションタイムアウトは、通常、アイドル時間、つまりユーザーがアプリケーションを操作しない時間を表します。ウェブアプリケーションのセッションタイムアウト

5分ごとにリクエストを投稿する自動スクリプトがあれば、そのユーザーのセッションは無限に続くでしょうか?この場合、長期的にアプリケーションのパフォーマンスに重大な影響を及ぼすアプローチはありませんか?

答えて

0

まあ...私は "It Depends"だと思う最初の質問は、あなた自身もあなたがセッションが必要かどうかということです。

自動化プロセスをお持ちの場合は、実際にセッションを使用する必要はありません。

その場合は、電源を切るか、心配しないでください。

4

サーバーへの自動呼び出しを実行すると、たとえばAJAXリクエストを介して、セッションを有効にします。典型的にはそれがポイントです。これの興味深い副作用は、要求が予測可能かつ定期的に発生した場合、ユーザーのブラウザがまだ開いているかどうかを判断するためにpingとして使用できることです。 1つまたは2つのpingが欠落している場合は、セッションを早期に終了して、実際にセッションをタイムアウトさせるよりも早くリソースを解放することができます。

0

あなたのセッションテーブルはもう少し大きいと思いますが、一方でセッションを解体して再作成することはありません。私はこれがどのようにしてアプリケーションに「重い負荷をかける」のか分かりません。アプリケーション自体と、セッション状態を維持するためにどれだけのメモリが使用されているかに依存すると思います。

1

はい、はいです。

これは、Web用のアプリケーションを作成する場合、実際にはサーバーサイドセッションを使用せずに実装する方法を探したいのはこのためです。通常、クッキーを使用して同じ機能を実装する方法を見つけることができます。セッションデータはクライアント側であるため、永続的にアクティブなままにしておくと気になります。

0

ブラウザを開いている限り、使用セッションは無限に進むことができます。長時間セッションを維持する必要がある場合は、メモリを使用せずにDB経由でセッションを追跡することもできます。

また、不定期のオープンセッションが心配な場合は、セッションが開いてからアイドル時間が延長されてからタイムアウトを実装できます。

1

私は、セッションデータに大きく依存するアプリケーションの場合と同様のことをしました。

IISタイムアウトを10分と比較的低い数値に設定してから、空白ページを5分ごとにpingするタイムドAJAXコールを設定しました。

このオーバーヘッドは実際にはかなり低く、空白のページをリクエストしているため、ブラウザを閉じると10分でセッションが終了します。

1

できるだけセッションを小さくしたい。つまり、誰もがそれをやり始めるならば、もちろん、(アウト)セッションであなたのアプリケーションをロードします。あなたのユーザーがそれを強いられていると思うなら、あなたのアプリケーションに重要な機能がないか、何かに強制されているような理由を考えてみてください。

これとは無関係に、多数のユーザーが同時にアクティブになることを期待している場合は、1台のサーバーに比べて多くのユーザーが処理しない場合、セッションが途切れることになります。セッションがSQL Serverにある場合、それは単に保存されたデータなので、その場合はメモリ使用量については言及しません。