Я запускаю JBoss 4.0.5 на Windows 2003 x64 и задаюсь вопросом, есть ли способ получить дамп всех потоков?
Он работает с FireDaemon, поэтому у меня нет окон консоли, в которых можно было бы ctrl-break.
Он работает под java 1.5, поэтому jstack не работает.
Я попробовал какую-то программу, которую кто-то сделал, под названием sentignal.exe, которая, как мне кажется, действительно привела к сбою JBoss (не уверен, но не буду пытаться снова), если это было потому, что JBoss работает под win x64 или потому, что он работает как LocalSystem, и у меня есть только доступ к "обычному" пользователю я не знаю. Он действительно работал на моем ноутбуке, но он 32-битный, и я работаю там под тем же пользователем, что и JBoss.
У кого-то есть другие идеи, которые могут сработать?





Вы можете просто написать jsp, который выполняет Thread.getAllStackTraces(), и распечатать элементы stacktracelements в удобном формате. Затем нажатие URL-адреса этого jsp в любое время даст вам дамп стека всех потоков в это время.
Я действительно нашел способ лучше, чем то, что Gowri предложено (после начала реализации jsp).
На самом деле есть способ сбросить потоки из jmx-console в MBean информации о сервере, см. Создайте дамп потока с помощью консоли JMX
Я знаю, что это было давно, но помните ли вы инструмент для открытия этих дампов? Я пробовал с DPA и Samurai, но формат никому не нравится.