У меня есть установка jboss-4.2.3.GA, где я подозреваю, что пул потоков может увеличиваться со временем из-за того, что потоки не освобождаются должным образом. Я не получаю никаких сообщений при достижении maxthreads, поэтому я хотел бы регистрировать количество используемых потоков в файле каждые пять минут, чтобы я мог проверить эту гипотезу. Кто-нибудь может посоветовать, как это можно сделать?
Я знаю, что это старый вопрос, но кому-то это может показаться интересным. У меня была аналогичная проблема, когда я хотел отслеживать пулы подключений jboss к базе данных. Я создал небольшой сценарий оболочки, который каждую секунду использовал curl
для получения соответствующей страницы из JBoss jmx-console.
В итоге я использовал что-то подобное в своем bash
сценарий.
# Pools to check
POOLS="DefaultDS QuartzDS"
# Loop thru the pools and collect stats.
for pool in $POOLS;
do
# Construct the URL
url=http://localhost:8080/jmx-console/HtmlAdaptor?action=inspectMBean\&name=jboss.jca:service=ManagedConnectionPool,name=$pool
# Use 'curl' to fetch the web page, and awk to parse the output and put all rows with 'count' in them in a temp file.
curl $url | awk 'BEGIN{RS="<td>MBean"}/Count/{print $0}' > _tmp_PoolStat.txt
echo "Processing $pool"
<process data in tmp file using your favourite tool.>
done
В вашем случае вам нужно изменить url
чтобы соответствовать тому, что вы ищете. Поскольку я использую ОС на базе * nix, я в конечном итоге использовал watch
для выполнения этого сценария с фиксированным интервалом.
Вы можете использовать JMX, чтобы получить счетчик потоков из java. с помощью надстройки jmx4perl вы можете выполнять JMX-вызовы из очень простого скрипта Perl. Также существует дополнение для Nagios для интеграции с j4p для оповещения и мониторинга различных параметров.
http://blog.techstacks.com/2009/09/tomcat-management-jmx4perl-makes-it-easier.html есть несколько хороших примеров.