Как получить трассировку стека Java от клиента, работающего под управлением веб-запуска?

StackOverflow https://stackoverflow.com/questions/726812

Вопрос

Я хотел получить идеи от сообщества SO по этому вопросу.

Вот проблема:

У нас есть пользователь на другом конце света, который запускает наше приложение через WebStart.Однако пользователь жалуется, что все его приложение зависает и перестает отвечать на запросы.Обычно клиент выполняет множество запросов к распределенной базе данных.

Вопросы:

  1. Если мы попросим ее сделать CTRL-Разрыв в ее приложении, куда JVM будет записывать трассировку стека?
  2. Было бы достаточно просто использовать JКонсоль?
  3. Будет ли реализация JMX-бины на клиенте это перебор?Поможет ли это на самом деле в устранении неполадок в производстве?

Сейчас пользователи используют JRE 1.5.0-b08, но мы планируем перейти на JRE 6 через пару месяцев.

Что вы думаете?

Это было полезно?

Решение

Хосе, ты можешь получить много информации от JVM разными способами.

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

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

Вы можете использовать родная Java или log4j удаленный регистратор.

Однако если он зависает так, как вы описываете, очень высока вероятность того, что происходит какое-то зависание сети.Можете ли вы добавить трассировку/отладку? твой конец разговора?

Другие советы

Вместо этих предложений по отладке, почему бы вам не установить обработчик исключений для своих потоков?См. java.lang.Thread.

void setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)

Вот соответствующий Javadoc:http://java.sun.com/javase/6/docs/api/java/lang/Thread.html#setDefaultUncaughtExceptionHandler(java.lang.Thread.UncaughtExceptionHandler)

Если вы установите это в свой код и попадете в EDT Swing, то просто напишите какой-нибудь Java-код, чтобы отправить его себе по электронной почте, сохранить на сервере, показать пользователю и т. д.

Вам нужно отобразить консоль Java (запустите javaws из командной строки и выберите ее в диалоговом окне «Настройки»), затем нажмите «v».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top