2009-02-02 9 views
21

Estoy ejecutando tomcat 6.0.18 como un servicio de Windows. En el applet de servicio, el jvm está configurado por defecto, es decir, está utilizando jvm.dll del JRE.No se puede usar JConsole con Tomcat ejecutándose como servicio de Windows

Estoy intentando monitorear esta aplicación con JConsole pero no puedo conectarme a ella localmente. Agregué el parámetro -Dcom.sun.management.jmxremote (que funciona al iniciar tomcat con el script start.bat). Pero el jvm no parece recoger el parámetro.

Respuesta

29

Hay una bonita GUI para editar las opciones, sin necesidad de perder el tiempo en el registro.

Abra C: \ Archivos de programa \ Apache Software Foundation \ Tomcat 6.0 \ bin \ tomcat6.exe (o simplemente haga doble clic en el icono del monitor en la barra de tareas). Vaya al panel de Java, agregue lo siguiente a la lista de argumentos y reinicie Tomcat.

 
-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.port=8086 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false 

A continuación, puede conectarse con JConsole o el VisualVM más reciente.

+0

Con esta configuración puedo conectarme al proceso como un proceso remoto en 'localhost: 8086' (no es necesario ingresar el nombre de usuario y la contraseña) – Edd

+0

Solo una nota: el panel de configuración' tomcat6.exe' es ahora llamado 'Tomcat7w.exe' –

3

Aquí es la forma prescrita para el cambio de jvmoptions & interactuar con el servicio:

http://tomcat.apache.org/tomcat-5.5-doc/windows-service-howto.html

Me gustaría tratar de entrar en su registro en HKLM/Software/Software Apache Fundación/Procrun 2.0 // Parámetros/Java y editar directamente el valor de cadenas múltiples "Opciones".

+1

Si está en 64 bits, HKLM \ SOFTWARE \ Wow6432Node \ Apache Software Foundation \ Procrun 2.0 \ \ Java – TJR

1

Si Tomcat se está ejecutando como un servicio de Windows y desea adjuntarlo a la JVM localmente, debe ejecutar VisualVM o JConsole como la cuenta del sistema. Puede usar Sysinternals PsExec.exe para lograr esto.

psexec.exe -i -s c:\visualvm\bin\visualvm.exe 
+2

Eso no pareció funcionar. D: \ Packages \ Java \ jdk1.6.0_25 \ bin> psexec -i -s jvisualvm.exe PsExec v1.98 - Ejecuta procesos de forma remota Copyright (C) 2001-2010 Mark Russinovich Sysinternals - www.sysinternals.com jvisualvm.exe salió en MACHINENAME01 con el código de error -1073741819. – Chloe

1

Añadir la siguiente cerca del parte superior de su catalina.bat

set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote^
    -Dcom.sun.management.jmxremote.port=8086^
    -Dcom.sun.management.jmxremote.ssl=false^
    -Dcom.sun.management.jmxremote.authenticate=false 

Detener y reiniciar Tomcat (obviamente)

Ejecute jconsole.exe. Si su tomcat se está ejecutando como servicio, ejecute jconsole.exe como administrador.

Seleccionar proceso remoto y escriba localhost: 8086

+0

Agregué estos parámetros en el archivo setEnv en el directorio tomcat7, funciona como un amuleto. –

2

todavía hay una manera bastante sencilla para conectar JConsole para proceso de Java comenzó como servicio de Windows utilizando el modo local que descubrí here.

Básicamente se dice que a fin de conectar al proceso de Java lanzado como un servicio de Windows que necesita para poner en marcha JConsole como un servicio de Windows (puede hacerlo utilizando la API de Windows nativo o utilizando cualquier envoltorio como yajsw.)

Por cierto, esto te liberará de reiniciar el Proceso de Java, que fue fundamental para mí.

Cuestiones relacionadas