Можно ли сделать недействительным отдельный сеанс в JBoss через JMX? - PullRequest
4 голосов
/ 13 апреля 2009

Мы отслеживаем некоторые проблемы с памятью в нашем приложении, и у нас есть представление о размере наших сессий, где проблема, кажется, есть. Это влияет только на определенные сеансы, когда они, кажется, выходят из-под контроля, и мы хотели бы иметь возможность более или менее аннулировать эти сеансы «вручную», чтобы восстановить эту память. Есть ли способ сделать это через JMX? Мы используем JBoss 4.5.2.

Заранее спасибо.

Ответы [ 2 ]

7 голосов
/ 14 апреля 2009

Ответ - да, вы можете.

- это загружает веб-модуль MBeans в JBoss -

/opt/lib/jboss-4.2.3.GA/bin/twiddle.sh -s <--ServerIP-->:1099 query 'jboss.web:*' | grep "type=Manager"

- Если у вас есть возможность получать активные сеансы из этого MBean -

/opt/lib/jboss-4.2.3.GA/bin/twiddle.sh -s 172.16.0.216:1099 invoke "<--MBean-->" listSessionIds

- И, наконец, когда у вас есть этот список, вы можете выбрать интересующий сеанс и завершить его -

/opt/lib/jboss-4.2.3.GA/bin/twiddle.sh -s <--ServerIP-->:1099 invoke "<--MBean-->" expireSession <--SessionID-->

Вы бы заменили <- ServerIP -> на ip, к которому привязан сервер ... он не обязательно должен быть локальным. Это можно запустить удаленно, если у вас есть доступ к порту 1099.

<- MBean -> будет заменен одним из результатов первого запроса.

<- SessionID -> будет заменен одним из идентификаторов сеансов из второй команды.

Также вы должны заменить /opt/lib/jboss-4.2.3.GA/bin/twiddle.sh на расположение твида на вашем компьютере. Включено в JBoss.

0 голосов
/ 05 февраля 2010

Спасибо, Ichorus. Ваше решение помогло мне хотя бы каким-то образом увидеть все активные сеансы на сервере в любой момент времени.

Кстати ... Перед запуском twiddle.sh необходимо выполнить несколько действий. Убедитесь, что JAVA_HOME и JBOSS_HOME установлены в среде И убедитесь, что JBOSS_CLASSPATH либо не установлен, либо имеет все библиотеки, указанные в twiddle.sh.ie {JBOSS_HOME} \ client \ jbossall-client.jar; {JBOSS_HOME} \ client \ getopt.jar; {JBOSS_HOME} \ client \ log4j. банка; {JBOSS_HOME} \ Lib \ JBoss-jmx.jar

В противном случае вы столкнетесь с исключениями ClassNotFound

Sudheer

...