2009-06-10 25 views
2

私たちは2つのコアアプリケーションをCF 8サーバー上で実行していますが、どちらもアプリケーションCFCで設定されたセッションタイムアウトと全く同じです(現時点では2時間)。しかし、セッションが1つのアプリケーション(現在は1台のサーバー上で12万以上)に対して制御不能になっているのが見えていますが、AppAはAppAと呼ぶことができます(AppBはAppBとは)。ColdFusionセッションがタイムアウトしていない

私はさらに掘り下げて、AppAのセッションの大半が何時間もアイドル状態になっていて、今までの11時間以上の最高値を見出しました。

実際にはセッションでそれほど多くはありませんので、なぜ期待通りにタイムアウトしていないのか少し混乱しています。また、アプリケーションCFCにthisのスコープをダンプして、sessionTimeoutの期待値を示しています。

私が気づいた唯一の事は、あるインスタンスでは、Session変数からRequestスコープの変数を割り当てていることです。もしそれが別の範囲であったとすれば、GC(または何でも)がクリアできないという何らかの参照を引き起こしていると思うかもしれません。

+2

セッションタイムアウトは非アクティブタイムアウトです。cfcに11時間触れているものはありませんか? – kevink

答えて

0

実際には、アプリケーションの名前を含めて、ベースのApplication.cfcのデフォルト値をオーバーライドしていない別のアプリケーションからセッションが開始されたことが分かります。

0

私は、アプリケーションまたはセッションスコープでCFCを永続化していたときに、CF6.1でサーバーロックアップを取得するために使用しました。これでリクエストスコープでそれらをインスタンス化し、ロックアップが(パフォーマンス低下が目立ちません)停止しました。たぶんあなたも同様の問題があります。

1

スパイラルの面では、セッションを維持するためにCFID/CFTOKENを通過していないリクエストがあります。これは、Webサービスコール、CFHTTPリクエスト、検索エンジンボットなどです。あなたのアプリケーションの1つのようなサウンドがこれを体験しています。この場合、CFHTTPの場合、セッションを維持するためにCFID/CFTOKENを渡します。 Webサービスのほうが少し難解ですが、前後に渡って渡される「キー」を作成する必要があります。ボットは、セッションのタイムアウト値を設定する条件をいくつか持つことで処理できます。

11時間は、何かによって生きていると言われています。いくつかの継続的なポーリング? AJAXリクエストの再申請ですか?それはID/TOKENを通過し続ける何かでなければなりません。

+0

FusionReactorは、このような状況で、あなたが知らないどのスクリプトが実行されているかを確認するのに適したツールです。 –

+0

ええ、私はもう少し掘り下げをして、セッションの大半が彼らが立ち上がっている間、アイドル状態になっているので、ボットの方に向いています。私たちはこのアプリでクローラの基本的なチェックをしていますが、他のアプリではもっと積極的にスパムボットをチェックしています。 – DEfusion

関連する問題