# Thread-Dump ohne Konsole



## Murray (26. Sep 2008)

Hallo,

hat vielleicht jemand eine Vorstellung davon, wie Tools wie jstack aus dem JDK oder StackTrace von adaptj es anstellen, in einer JVM unter Windows einen Thread-Dump auszulösen und diesen auch noch abzugreifen? 

Wenn die VM mit einer Konsole läuft, bekomme ich das über wilde native Konsolenoperationen gerade noch in - aber gerade da braucht man das ja nicht so dringend, denn in der Konsole kann man ja Ctrl+Break drücken. Läuft dei VM aber als Service ohne Konsole, dann komme ich mit diesem Ansatz so nicht weiter.


----------



## Adikema (26. Sep 2008)

füg deiner google suche noch das stichwort JMX hinzu, dann solltest Du fündig werden. :wink: 

Gruß
Adikema


----------



## Murray (26. Sep 2008)

Nochmal konkreter: ich habe einen Service (eine Exe unter Windows, die per Invocation-API eine VM startet). Dieser Service läuft i.d.R. ohne Konsole. Trotzdem sind sowohl StackTrace als auch jstack in der Lage, einen Thread-Dump zu ziehen


JConsole findet die VM nicht (möglicherweise, weil es eben eine VM inerhalb eines Service ist); insofern glaube ich nicht, dass JMX mich da viel weiterbringt - aber vielleicht kannst Du ja Licht ins Dunkel bringen...


----------



## Adikema (29. Sep 2008)

Hi,

ich war der Meinung, es gäbe extra ein tool dafür, womit man den Zugriff weiterleiten kann, finde aber die Seiten nicht mehr. 

Vielleicht findest Du aber hier Hilfe:

//www.java2s.com/Code/Java/Development-Class/ThisFullThreadDumpclassdemonstratesthecapabilitytogetafullthreaddumpandalsodetectdeadlockremotely.htm]FullThreadDump[/url]


Gruß
Adikema


----------



## Murray (29. Sep 2008)

Danke für die Links.

Allerdings ist JMX hier keine echte Alternative, da ich den Service nur begrenzt unter Kontrolle habe. Tatsache bleibt, dass in der gegebenen Konfiguration JConsole (vermutlich mangels entsprechend gesetzter Properties) sich nicht mit der VM verbinden kann; jstack und StackTrace hingegen sind in der Lage, den Thread-Dump auszulösen und die Ausgabe abzugreifen.

Da stellt sich mir weiterhin die Frage: wie machen diese Tools das nur? Mit AttachConsole und den Low-Level-Konsolen-APIs komme ich nur dann weiter, wenn die VM selbst eine Konsole hat.


----------

