Cómo depurar una condición de carrera

Si se trata de lenguajes que compilan a bytecode, como Java, Scala, JRuby, Jython y otros (ver Lista de lenguajes JVM ) se puede utilizar la tecnología implementada en la herramienta Race Catcher™ de Thinking Software, Inc. | Gestión y monitorización de la fiabilidad de las aplicaciones.

Race Catcher es un analizador de código dinámico con una Tasa de Falsos Positivos del 0% y una sobrecarga muy pequeña que permite su uso en todas las etapas del ciclo de vida de su software, desarrollo, Test/QA, y soporte de producción. Está disponible para sus máquinas locales y sus máquinas en la nube (AWS Marketplace - race catcher).

Esta herramienta funciona en bytecode y no requiere la presencia del código fuente para analizar las Condiciones de Carrera (y Deadlocks). El código fuente va a ser necesario sólo después para explicar los problemas localizados a un programador (sin embargo, la descompilación es proporcionada por esta herramienta en el caso del código abierto).

Una característica muy específica (además de la tasa de falsos positivos del 0% y la pequeña sobrecarga) es una interfaz de usuario muy intuitiva que eliminará la necesidad de "reproducir el problema" y, por lo tanto, eliminará la tensión habitual entre probadores y programadores. La interfaz de usuario reproducirá y volverá a explicar las incidencias bajo demanda en cualquier momento durante o después de la ejecución del proceso objetivo.

El uso de esta herramienta es extremadamente sencillo:

Puede iniciar su proceso sustituyendo "java" por "jta" (es decir, "java -jar miJar.jar" se convertiría en "jta -jar miJar.jar")

Si no, puede añadir el parámetro "-javaagent" en el script de inicio de su aplicación.

Descargo de responsabilidad: Esta tecnología está desarrollada en nuestra empresa, Thinking Software, Inc. Thinking Software, Inc. | Gestión y monitorización de la fiabilidad de las aplicaciones