Buscar este blog

Mostrando entradas con la etiqueta debug. Mostrar todas las entradas
Mostrando entradas con la etiqueta debug. Mostrar todas las entradas

viernes, 13 de marzo de 2020

Tomcat -JConsole - Remote connection

This is the procedure to connect JConsole to a remote tomcat server.

[Remote] Configure tomcat

Edit/create a file $TOMCAT_HOME/bin/setenv.sh.

Add de following JAVA_OPTS params:

  • -Dcom.sun.management.jmxremote
  • -Dcom.sun.management.jmxremote.port=9999
  • -Dcom.sun.management.jmxremote.rmi.port=9998
  • -Dcom.sun.management.jmxremote.authenticate=false
  • -Dcom.sun.management.jmxremote.ssl=false
You can add them as follow:
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.rmi.port=9998 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
Restart tomcat.

[Remote] Configure host

You need to open these ports in order to allow remote connections from other machines. You can do that by using "firewall-cmd":
   firewall-cmd --zone=public --add-port=9999/tcp
   firewall-cmd --zone=public --add-port=9998/tcp
   firewall-cmd --zone=public --permanent --list-ports
   firewall-cmd --zone=public --list-ports

[Local] Configure JConsole

From local host launch JConsole targeting 9999 (in my case, the target server is in PRE-C01-SRV01)






If you have problems you can enable JConsole log by creating a logging config file, for example, jconsole-logging.properties:
Logging.properties

handlers = java.util.logging.ConsoleHandler


.level = INFO

java.util.logging.ConsoleHandler.level = FINEST

java.util.logging.ConsoleHandler.formatter = \

java.util.logging.SimpleFormatter

// Use FINER or FINEST for javax.management.remote.level - FINEST is

// very verbose...

javax.management.level = FINEST

javax.management.remote.level = FINEST

Launch JConsole from command line with the following params:
    jconsole -J-Djava.util.logging.config.file=jconsole-logging.properties

viernes, 14 de noviembre de 2014

Biztalk orchestration debug - Debugear orquestación de Biztalk

Objetivo
Se tiene una aplicación desplegada en el servidor de Biztalk, con una orquestación, y se quiere debugear el camino que sigue un mensaje a lo largo de todo el proceso.

También se solucionará el posible error
BizTalk: Error on Debugging Orchestration (Debugging Client is not a BizTalk Server Administrator)

En un post anterior ya se había indicado cómo debugear código de una librería .NET dentro de una orquestación con Visual Studio.


Solución
Se debe tener la aplicación desplegada en el servidor de Biztalk.

Desde la consola de administración de Biztalk se navega a Biztalk Group, y ahí se consultan las instancias completas (se debe haber ejecutado la orquestación al menos una vez normalmente).


Se pulsa sobre Completed Instances, y se navega a la pantalla de resultado de querys, donde se muestran todas las instancias completas con sus componentes.


Se escoge una Service Class de tipo Orchestration, y pulsando con el botón derecho, se selecciona Orchestration Debugger.



Aquí se muestra el gráfico de la orquestación. En la parte izquierda está el flujo que siguió el mensaje durante todo el proceso.
En este caso la orquestación sólo tiene un camino único, pero si hubiese bifurcaciones se podría ver el camino exacto.

Pulsando con el botón derecho sobre una forma se da la opción de incluir un break point. De este modo la próxima ejecución se detendrá ahí hasta que la continuemos manualmente.

Establecer un breckpoint y cerrar la ventana.

El siguiente paso es lanzar nuevamente la orquestación. Ahora no termina, y hay que ir otra vez a la consola de administración de biztalk y consultar las Running Service Instances.



Habrá una que esté en estado In BreakPoint (Active). Pulsando sobre ella se accede nuevamente a Orchestration Debugger.

Esta vez sólo se ha ejecutado hasta el Break Point.
Para continuar hay que ir a la opción de Debug > Attach, en la barra superior de tareas.
En este punto es posible que salga el siguiente error:


Esto se debe a que el usuario no pertenece al grupo de Administradores de Biztalk. Para solucionarlo hay que ir a Computer Management > Local Users and Groups > Users.


Se selecciona el usuario con el que se ha logeado y se hace doble click para acceder a sus propiedades. Una vez dentro se navega a la pestaña de Menber of.


Ahí se pulsa Add, luego Advanced, y finalmente Find now para ver la lista de grupos disponibles.
Hay que escoger el de "Biztalk Server Administrators".


Una vez hecho esto, ya se puede volver a la ventana de Orchestration Debugger y darle a Attach sin problemas.



En la parte inferior aparece información sobre los puertos y mensajes, que se irá rellenando a medida que se avanza en la orquestación. Para ello basta con ir metiendo más break points y dándole a Continue.


Otros recursos
Video tutorial: https://www.youtube.com/watch?v=SEfvzL_jr2s

Blog con la solución al error de usuario: http://jhelatissimo.wordpress.com/2012/07/12/biztalk-error-on-debugging-orchestration-debugging-client-is-not-a-biztalk-server-administrator/

martes, 28 de octubre de 2014

Biztalk 2010 - Debug orchestration code

Situación:
  • Se tiene una solution de Visual Studio 2010
  • Dentro de la solution hay un proyecto C#
  • Se despliega la solution como una aplicación Biztalk 2010

Propósito:
  • Debugear código de un behaviour

Solución:
  • En las propiedades del proyecto, en build, seleccionar configuración Debug.
    Si el proyecto forma parte de una solution, también se puede ir a las propiedades de la solution y en Configuration Properties > Configuration, seleccionar el modo de build de cada proyecto que lo componen.
    Parece que dentro de una solution, prevalece esta configuración superior, así que habrá que cambiarla  aquí
  • Hacer el build del proyecto
  • Ir al directorio en disco y entrar en bin > debug (también obj>debug)
  • Ahí habrá una dll
  • Abrir un Visual Studio Command Prompt. Es una aplicación accesible desde el menú inicio, dentro del directorio de Visual Studio y Visual Studio Tools.
  • Navegar hasta la ruta de la dll.
  • Ejecutar gacutil /if {rutaALaDLL}
  • Reiniciar el servicio de biztalk
  • En Services aparecerá como BizTalk Service BizTalk Group : BizTalkServerApplication
  • También puede hacer falta reiniciar el servicio del host de la aplicación
  • En Visual Studio seleccionar el proyecto
  • En la barra de herramientas superior ir a Debug > Attach to Process...
  • En el panel abierto, seleccionar el proceso BTSNTSvc.exe. En el Type pone T-SQL, Managed(v4.0....), x86
  • Ejectuar la orquestación.
  • Cuando se ejecute ese código parará en los breakpoints.

Nota:
El directorio de caché de Biztalk, donde se guardan las dll, es C:\Windows\Microsoft.NET\assembly\GAC_MSIL\. Se pueden actualizar las dll a mano, pero eso puede dar problemas porque están abiertas por el proces dllHost.exe.

Biztalk 2010 - Debug trace messages


Activar tracking en los puertos:
  • Abrir Biztalk Server Administration Console
  • Navegar a la apliacción que se quiera monitorizar
  • Ir send/receive ports
  • Seleccionar el puerto e ir a propiedades.
  • En la opción tracking, marcar las que correspondan

Consultar mensajes enviados/recibidos:
  • Abrir Biztalk Server Administration Console 
  •  Ir a Biztalk Group [nombreEquipo]
  • Seleccionar New Query
  • En SearchFor, marcar "Tracked Message Eventes"
  • Ejecutar la query
  • Pulstar sobre el mensaje que se quiera consultar y ver sus detalles