БД: Oracle 10g
O / S: Windows Server 2003, 64 бита
Я запрашиваю список сеансов Oracle, сгенерированных веб-приложениями (фильтр по программе = w3wp.exe)
select * from V$session
where UPPER(program) LIKE '%W3%'
order by logon_time
Согласно Logon_Time, почему все еще живы сеансы с 31/07/2012 или 01/08/2012 или сессия до сегодняшнего дня (21/08/2012)?
Я настроил на sqlnet.ora: SQLNET.EXPIRE_TIME = 20 Таким образом, это означает, что каждые 20 минут Oracle проверяет, все еще активны ли соединения.
Все пользовательские схемы имеют профиль по умолчанию. Это значит, что ни одна сессия никогда не истечет или не умрет?
Добавлено в ответ на комментарий Фила:
Добавлено в ответ Фила ответ:
oracle
oracle-10g
Delmonte
источник
источник
v$session.PREV_EXEC_START
для этих сессий? Я подозреваю, что они являются частью пула соединений и поэтому не бездействуют, потому что их часто используют.INACTIVE
просто означает, что в момент проверки вы не выполняете оператор SQLv$session
. Если они являются частью пула соединений, они выполняют свою работу должным образом - суть пула соединений состоит в том, чтобы устранить необходимость в большом количестве входов / выходов из системы и поддерживать постоянные сеансы для быстрого запуска (гораздо большие накладные расходы при повторной регистрации снова и снова) просто выполнить один запрос). Я не понимаю, почему вы беспокоитесь об этом.Ответы:
Я подозреваю, что они являются частью пула соединений и поэтому не бездействуют, потому что их часто используют.
INACTIVE
вv$session
просто означает , что не является SQL оператор выполняется в тот момент , вы проверитьv$session
.Если они являются частью пула соединений, они выполняют свою работу должным образом, выполняя вход в систему в течение длительных периодов времени. Весь смысл пула подключений состоит в том, чтобы устранить необходимость в большом количестве входов / выходов из системы и поддерживать постоянные сеансы для быстрого запуска запроса - существует гораздо большая нагрузка при входе в систему для выполнения одного запроса, а затем при каждом отключении.
Чтобы получить время последней активности для каждого сеанса:
Я бы посоветовал не убивать сеансы, если вы не знаете, что это не вызовет проблем на стороне приложения (например, попытка использовать сеанс, который был убит).
Это может быть случай, когда вы смотрите на неправильно настроенный пул соединений, который создает сотни соединений после запуска приложения - пул соединений может быть на порядок больше, чем нужно. Я предлагаю обратиться к разработчикам / сотрудникам службы поддержки приложений и посмотреть, как настроен пул соединений.
Проведя небольшое исследование, w3wp.exe - это процесс пула приложений IIS - вы почти наверняка захотите поговорить с администраторами веб-сервера IIS, чтобы помочь разобраться в конфигурации пула соединений.
источник