Возможный дубликат:
Могу ли я заставить генерировать файл журнала сбоев JVM?
Как я могу принудительно создать или создать ядро ядра JVM на сервере приложений Java или вообще?
Возможный дубликат:
Могу ли я заставить генерировать файл журнала сбоев JVM?
Как я могу принудительно создать или создать ядро ядра JVM на сервере приложений Java или вообще?
Проблема (Аннотация):. Чтобы диагностировать проблемы, связанные с зависанием или низкой производительностью клиентских приложений, запущенных в WebSphere Application Server Community Edition, пользователи должны будут генерировать различные дампы и отправлять их в IBM Поддержка диагностики.
Этот технот объясняет, как создавать необходимые дампы, когда WebSphere Application Server Community Edition работает как служба операционной системы. Этот метод применим к IBM Java SDK 1.5.0 и IBM Java SDK 1.6.0
Причина. Когда клиентские приложения испытывают зависание или низкую производительность с помощью WebSphere Application Server Community Edition на IBM Java SDK 1.5.0 или IBM Java SDK 1.6.0, а сервер работает как операционная система служба, соответствующее окно командной строки/сервера процесса сервера недоступно для пользователей. В результате пользовательские сигналы не могут быть отправлены с клавиатуры для запуска дампов.
Решение проблемы: Когда доступно окно команд JVM-процесса, создание дампов выполняется следующим образом:
Окна:
Если настройка JVM настроена на запуск дампов у пользовательского сигнала, нажмите CRTL+Break
в окне команд, чтобы сгенерировать дампы.
Linux: если параметр JVM настроен на создание дампов в пользовательском сигнале, нажмите CTRL+\
в окне оболочки.
AIX: Если параметр JVM настроен на создание дампов в пользовательском сигнале, нажмите CTRL+\
в окне оболочки.
Примечание. Для создания дампа ядра Java, дампа системного ядра, дампа кучи и дампа дампа в пользовательском сигнале, агенты дампа должны быть настроены с помощью параметров JVM следующим образом:
-Xdump:java+heap+system+snap:events=user
Дополнительные сведения о настройке агентов дампов см. в разделе -Xdump
.
Однако, если WebSphere Application Server Community Edition работает как служба операционной системы, окно команды может быть недоступно. Этот случай также возникнет при запуске JVM-процесса с помощью javaw.exe на окнах.
В предыдущих случаях пользователю необходимо найти соответствующий идентификатор процесса JVM-процесса и использовать поставляемый поставщиком операционной системы или поставляемый IBM инструмент для создания дампов, выполнив следующие шаги.
Windows: WinDbg можно загрузить с сайта инструментов Microsoft Dev для создания дампов системного ядра. Используйте следующую команду на консоли WinDbg для создания дампа системного ядра:
dump /f <dumpfile>
Где dumpfile содержит путь к каталогу и имя файла дампа ядра системы.
Убедитесь, что вместо /ma
используется параметр /f
. /f
генерирует полный дамп, где /ma
генерирует мини-дамп. Поддерживаются только полные дампы с помощью инструмента jextract, поставляемого с IBM Java SDK 1.5.0/1.6.0.
Утилита SendSignal для Windows. Для этого JVM необходимо настроить для создания дампов на пользовательских сигналах. Чтобы сгенерировать дамп ядра Java, дамп кучи, дамп системного ядра и дамп привязки к пользовательскому сигналу, при запуске должен быть предоставлен JVM следующий параметр:
-Xdump:java+heap+system+snap:events=user
Примечание. Утилиту SendSignal можно использовать для генерации всех типов дампов, где WinDbg генерирует только отвалы системного ядра.
Linux and AIX
: Сигнал для Linux и AIX - SIGQUIT
. Используйте команду для отправки пользовательского сигнала для запуска различных дампов:
kill -3 <PID>
Для этого JVM должен быть настроен для создания дампов пользовательского сигнала. Чтобы сгенерировать дамп ядра Java, кучу кучи, дамп системного ядра и привязку к пользовательскому сигналу, в JVM при запуске должна быть предоставлена следующая опция.
-Xdump:java+heap+system+snap:events=user
Примечание. Файлы дампа системного ядра должны обрабатываться с помощью инструмента jextract, а вывод должен быть отправлен в службу поддержки IBM. Jextract от той же JVM, которая испытала проблему, должна использоваться для обработки дампа системного ядра:
<JAVA_HOME>/jre/bin/jextract <dumpfile>
Где dumpfile - имя файла дампа системного ядра.
Это приведет к созданию zip файла .zip. Почтовый файл необходимо отправить в службу поддержки IBM.
Если вы используете свой собственный код, Q & D способ - создать исключение и сразу же распечатать его стек. Если нет, инструменты профилирования должны иметь способы захвата моментальных снимков потоков, запущенных в вашей JVM. Я использовал YourKit и понравилось, но есть бесплатные альтернативы.