Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Timer и редеплои (Tomcat) 
:(
    Опции темы
Stolzen
Дата 5.12.2011, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 23
Всего: 48



При редеплое остается старый инстанс таймера и создается новый - т.е. вместо того, чтобы выполнять задачу раз в час, она начинает выполняться чаще. Обнаружилось это по логам.

И еще есть подозрение, что старые таймеры работают "вхолостую" - т.е. ничего полезного не делают. Так же т.к. старый таймер - это inner class службы, то, думаю, эта служба остается в памяти и не собирается сборщиком.

Как можно пресечь эту деятельность и обеспечить выполнение только одного таймера? В сторону Quartz еще не глядел - не хотелось бы иметь еще одну зависимость.

Это сообщение отредактировал(а) Stolzen - 5.12.2011, 18:42


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
priam220
Дата 5.12.2011, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 4.6.2010

Репутация: 7
Всего: 8



У таймера есть конструктор c бул параметром. Если тру, то таймер запускается демоном, и умрет при смерти потока его стартовавшего, т.е. вашего приложения. 
Но при редеплое без остановки томката, старый таймер не останавливается по дефолту(с версии 6.0.27). Для этого надо засетать флаг clearReferencesStopTimerThreads. И это unsafe.

Это сообщение отредактировал(а) priam220 - 5.12.2011, 22:07
PM MAIL   Вверх
Stolzen
Дата 6.12.2011, 04:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 23
Всего: 48



priam220, спасибо за ответ и за ссылку на течи томката. А вы сами не пробовали применять этот параметр? Ничего лишнего не умирает? "but it's unsafe." меня как-то смущает.

П.С. Вообще эти редеплои - одна большая течь. Я еще заметил, что при редеплое старые инстансы кеш системы не отгружаются - и синглтоны получаются в двух экзаплярах.

Добавлено через 6 минут и 9 секунд
Хотя вроде бы там речь идет о том, что clearReferencesStopThreads небезопасный, а про clearReferencesStopTimerThreads не сказано.

Цитата
Other threads may be stopped with the clearReferencesStopThreads flag, but it's unsafe. 



--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
priam220
Дата 6.12.2011, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 4.6.2010

Репутация: 7
Всего: 8



Нет, сам не применял. Пока ребром вопрос не стоял. Там дальше, почему они сделали это опционально:
Цитата
 So the leak is fixed, but unfortunately there's a side effect : it broke webapp B eviction timer. That's why stopping TimerThread has been made optional from 6.0.27. 


Это сообщение отредактировал(а) priam220 - 6.12.2011, 09:30
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0872 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.