Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Анализ загрузки Tomcat и сеансов


Автор: mbasil 2.12.2007, 18:19
Появилась задача периодической проверки загрузки сервера Tomcat
с последующей проверкой HTTPSession всех сеансов и освобождения
кэша в некоторых из них. 
Я предполагаю, что делать это надо с помошью JMX и MBean?
Может подскажете, ссылку на какой либо простой пример использования
или описание.

Автор: mbasil 3.12.2007, 12:36
Нашел переводную статью

http://www.javable.com/javaworld/06_01/03/

однако информации маловатр и изложена она весьма схематично. 

Автор: mbasil 5.12.2007, 15:26
Послушайте, а может я просто тупой.

Может все же есть возможность получить из сервлета простым способом список ссылок на текущие  объекты HTTPSession?

То есть просмотреть и обработать информацию сеансов из потока-таймера, запущенного из сервлета.

Автор: COVD 5.12.2007, 16:57
Наверное, всего два варианта. Или сделать для своего веб приложения имплементацию HttpSessionListener, как советуют   http://forum.java.sun.com/thread.jspa?threadID=605507&messageID=4037158 и отслеживать события открытия и закрытия сессий, и соответствующий счетчик модифицировать. Но если под томкатом бегает много приложений, то надо в каждом приложении свой лисенер регистрировать, наверное. Или делать по науке, через JMX. Пример http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html . Если пойти по ссылке из пункта "6. A complete list of all tomcat core MBeans can you find at funcspecs/mbean-names.html.", то можно увидеть таблицу доступных MBean' ов, которые надо обьявить для использования. Среди них есть PersistentManager (org.apache.catalina.session.PersistentManager) и StandardManager (org.apache.catalina.session.StandardManager) . Возможно эти два MBean (или другие) и позволят подсоединившись через браузер к томкату получить нужную информацию. А может и нет smile Если разберетесь, то расскажите, мне это тоже актуально.

Автор: mbasil 7.12.2007, 13:53
Спасибо COVD !

К сожалению с помощью прослушивателя событий эту задачу не решить.
Что касается MBeans, попробую, к сожалению не завтра, придется эту
задачу отложить до новогодних каникул.

А вообще говоря странно, что в спецификации не предусмотрены
простые средства мониторинга и управления. К сожалению  MBeans,
видимо будут зависеть от реализации сервера.

Автор: COVD 7.12.2007, 16:32
Цитата

А вообще говоря странно, что в спецификации не предусмотрены
простые средства мониторинга и управления. К сожалению  MBeans,
видимо будут зависеть от реализации сервера.


Наверное, это имеет значение только если вы пишите свои бины. Если же запустить стандартную конфигурацию Томката ( у меня 6.0.14 ) и подсоединиться к порту 8080, то увидите  welcome cтраничку томката. Там слева вверху под заголовком Администрирование две ссылки на статус и менеджер.  Томсат попросит пароль и логин менеджера и при неудачных попытках выдаст подсказку, где их надо прописать (в conf\tomcat-users.xml надо вставить две строчки и файл будет выглядеть как

Код

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager"/>
  <user username="..имя.." password="..пароль.." roles="manager"/>
</tomcat-users>



Там можно увидеть список всех приложений, их состояние, количество сессий, занимаемую память, версию JVM и выполнить некоторые команды. Достаточно для простого мониторинга. 

Автор: mbasil 14.12.2007, 11:50
To   COVD

Так речь идет не об интерактивном мониторинге, а об адаптивном
автоматическом управлении работой приложения.

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

Автор: COVD 14.12.2007, 17:05
Цитата

Так речь идет не об интерактивном мониторинге, а об адаптивном
автоматическом управлении работой приложения.

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


Слово "адаптивном" вызвало у меня ностальгические чувства smile .  Ну, если встроенные средства (оптимизация gc, использование WeakReference) вас не устраивают, то написание своих MBeans наверное будет правильным решением.  Удобно для удаленного контроля одним монитором нескольких однотипных приложений. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)