2013-08-05 4 views
0

СитуацияОтладка замороженную веб-приложение

Каждый раз и в то время как мое приложение, кажется, замораживания. Единственным признаком этого, что я получаю, является то, что мой браузер скажет «Ожидание localhost ...». Если я перезапущу свой браузер и получаю доступ к моему приложению, он продолжает ждать. Единственное решение, которое было до сих пор, это отключить Tomcat, а затем снова включить его. Тогда проблема исчезает. Я очень уверен, что это процесс на стороне сервера, который занял и ничего не поддерживает на стороне клиента.

Проблема

Вместо того, только анализируя мой код, было бы неплохо, чтобы на самом деле проверять, что Tomcat делать или работать на любой момент времени, вроде как "Tomcat Task manager". Я подозреваю, что какой-то процесс, работающий в фоновом режиме с JVM, является виновником, но я не уверен, как это анализировать.

Вопросы

  1. Какой самый лучший способ смотреть на то, что делает Tomcat, когда нет веб-запросов не делается?

  2. Любая идея, какой фоновый процесс или темы я должен рассматривать в качестве возможного преступника?

Возможная причина проблемы:

Эта проблема началась, как только я начал использовать синглтон на нескольких страницах. Прежде чем я посвящу это этому делу, я бы хотел отследить, где происходит замораживание.

ответ

2

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

  1. Подключить приложение к VisualVM и посмотреть, есть ли статус потоков (возможно, у вас есть тупик).

  2. Другая аналогичная альтернатива - взять дамп потока из JVM, и вы можете увидеть, есть ли у вас несколько потоков, ожидающих блокировки). В этом page объясняется, как взять дамп потока.

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

  4. И последнее, что нужно запустить приложение в remote debug mode, и всякий раз, когда ваше приложение перестает работать правильно, вы можете подключиться из своей IDE, чтобы увидеть, где именно он висит.

+0

Ницца. VisualVM выглядит очень многообещающим. Большое спасибо. –

Смежные вопросы