Время сеансов ColdFusion не истекло - PullRequest
2 голосов
/ 10 июня 2009

У нас на базовых серверах CF 8 запущено 2 основных приложения, и у обоих одинаковое время ожидания сеанса установлено в CFC приложения (в данный момент 2 часа). Однако мы видим, что сеансы выходят из-под контроля для одного из приложений (в настоящее время на одном сервере более 120 000+), давайте назовем его AppA, в то время как AppB выглядит нормально (и именно от AppB мы ожидаем гораздо большего трафика ).

Итак, я продолжил копать и обнаружил, что большинство сессий для AppA бездействовали в течение многих часов с самым высоким значением, которое я видел до сих пор, - более 11 часов.

На самом деле мы не так много делаем с сессиями, поэтому я немного озадачен тем, почему они не работают так, как ожидалось. Также я сбросил область действия this в CFC приложения, и она показывает ожидаемое значение для sessionTimeout.

Единственное, что я заметил, это то, что в одном случае мы назначаем переменную в области запроса из переменной Session. Если бы это была другая область, я мог бы подумать, что это вызывает какую-то ссылку, которую GC (или что-то еще) не может очистить.

Ответы [ 3 ]

1 голос
/ 11 июня 2009

С точки зрения спирали, я бы сказал, что это связано с некоторыми запросами, которые не проходят через CFID / CFTOKEN для поддержки сеанса. Это могут быть вызовы веб-служб, запросы CFHTTP, роботы поисковых систем и т. Д. Похоже, что одно из ваших приложений испытывает это. Если это так, то для CFHTTP пропустите CFID / CFTOKEN, чтобы поддерживать сеансы. Веб-сервисы немного сложнее, вам нужно создать «ключ», который будет передаваться взад и вперед, отдельная тема! Боты могут быть обработаны с помощью некоторых условий для установки значения времени ожидания сеанса.

В течение 11 часов я бы сказал, что благодаря чему-то он сохранился. Какой-то постоянный опрос? Повторный запрос AJAX? Это должно быть что-то, что продолжает передавать ID / TOKEN.

0 голосов
/ 11 июня 2009

Фактически получается, что сеансы были запущены из другого приложения, которое не перекрывало значение по умолчанию в базовом Application.cfc (включая имя приложения).

0 голосов
/ 10 июня 2009

Раньше я получал блокировки серверов в CF6.1, когда сохранял CFC в приложениях или в сеансах. Теперь я создаю их в области запроса, и блокировки перестают происходить (без заметного снижения производительности). Может быть, у вас есть похожая проблема.

...