wrapper.commandfile

Compatibilidad :3.2.0
Ediciones :Edición ProfesionaEdición EstándarEdición de la Comunidad
Plataformas :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

ADVERTENCIA

NO modifique ninguno de estos parámetros a menos que haya leído la descripción de esta propiedad. Una configuración incorrecta puede hacer que el Wrapper no funcione como esperado.

Archivo que será monitoreado para ejecutar comandos. Esta propiedad no está configurada de forma predeterminada.

Esta propiedad no tiene uso para la mayoría de las aplicaciones, pero puede ser útil para aplicaciones externas que necesitan controlar el Wrapper de forma multiplataforma.

Si se establece esta propiedad, el Wrapper comprobará a intervalos regulares la existencia del archivo especificado. Cuando lo encuentre, el archivo se abrirá y todos los comandos se ejecutarán en orden. El archivo se eliminará al finalizar los comandos.

Ejemplo:
wrapper.commandfile=./myapp.command

NOTA

Riesgo de Seguridad:

Tenga en cuenta que el uso de esta propiedad puede suponer un riesgo para la seguridad, ya que el Wrapper puede controlarse simplemente creando un archivo de texto. Por este motivo, asegúrese de que los permisos en el directorio que contiene el archivo de comandos estén configurados correctamente.

Usando el archivo de comandos

El Wrapper intentará obtener un bloqueo de lectura/escritura en el archivo cuando se abra el archivo de comandos. Una vez abierto, todos los comandos se ejecutarán en order y el archivo se eliminará al completar los comandos.

Los procesos externos que crean archivos de comandos siempre deben abrir el archivo de comandos en modo "agregar". De esta manera, si el archivo no existe, se creará uno nuevo, pero si ya existe, entonces se agregarán los comandos nuevos.

El Wrapper intentará varias veces por hasta un segundo abrir el archivo de comandos una vez que se ha determinado que éste existe. Esto se hace para evitar problemas mientras otro proceso está escribiendo el archivo. Si el archivo permanece bloqueado durante más de un segundo, aparecerá un mensaje de advertencia en el archivo de registros. Esto no afectará el funcionamento del Wrapper, pero para evitar las advertencias, es importante que el archivo se bloquee el menor tiempo posible.

El archivo está formateado como un archivo de texto con un solo comando en cada línea. Los comandos posibles incluyen:

  • STOP {EXIT_CODE} :

    Solicita que el Wrapper se cierre limpiamente. El {EXIT_CODE} opcional se puede usar para especificar el exitCode cuando el Wrapper realmente se cierra.

  • RESTART :

    Solicita que el Wrapper reinicie su JVM. Esto se puede usar en combinación con la propiedad wrapper.restart.reload_configuration para hacer que el Wrapper vuelva a cargar su configuración y luego lanze una nueva JVM que refleje los cambios. Se ignora si la JVM no se está ejecutando.

  • PAUSE :

    Solicita que el Wrapper se ponga en pausa. Sólo se admite cuando la propiedad wrapper.pausable se establece en TRUE.

  • RESUME :

    Solicita que se reanude el Wrapper. Sólo se admite cuando la propiedad wrapper.pausable se establece en TRUE.

  • SUSPEND_TIMEOUTS {TIME} (Desde la versión 3.5.40) (Ediciones Estándar y Profesional) :

    Le indica al Wrapper que suspenda todos los tiempos de espera utilizados cuando la JVM no responde. {TIME} especifica la cantidad de segundos para suspender los tiempos de espera, y debe ser en el rango 1-3600 (1h). Esto podría usarse si la aplicación Java necesita realizar una tarea de bloqueo prolongada y evitar que el Wrapper considere que la aplicación no responde.

    También se puede suspender los tiempos de espera con propiedades de acción o el método Java WrapperManager.suspendTimeouts().

    Si se realizan varias solicitudes para suspender los tiempos de espera, no se sumará la cantidad de segundos especificada por cada solicitud. En cambio, el tiempo recién especificado reemplazará el tiempo de suspensión restante si es más largo y se ignorará de lo contrario.

  • RESUME_TIMEOUTS (Desde la versión 3.5.40) (Ediciones Estándar y Profesional) :

    Le indica al Wrapper que reanude todos los tiempos de espera suspendidos previamente.

    Los tiempos de espera también se pueden reanudar a través de otras propiedades de acción o el método Java WrapperManager.resumeTimeouts().

  • USER_{n} (Desde la versión 3.5.57) (Edición Profesional) :

    Le indica al Wrapper que active un evento de usuario.

    El componente '{n}' del nombre del evento es cualquier número entero en el rango 1-32767.

  • DUMP :

    Solicita al Wrapper que haga que la JVM produzca un volcado de hilo. Los resultados se pueden ver en el archivo de registros del Wrapper. Se ignora si la JVM no se está ejecutando.

  • GC (Desde la versión 3.5.7) :

    Tenga en cuenta que hacer esto con frecuencia puede afectar el rendimiento de la JVM, ya que un barrido completo a menudo hará que todos los subprocesos se congelen durante la duración de la recolección de basura. Se ignora si la JVM no se está ejecutando.

  • CONSOLE_LOGLEVEL {LOG_LEVEL} :

    Cambia el nivel de registro de la consola del Wrapper.

  • LOGFILE_LOGLEVEL {LOG_LEVEL} :

    Cambia el nivel de registro del Wrapper.

  • SYSLOG_LOGLEVEL {LOG_LEVEL} :

    Cambia el syslog o el nivel de registro del Registro de Eventos del Wrapper.

Los comandos de prueba adicionales también están disponibles si y solo si la propiedad wrapper.commandfile.enable_tests se establece en TRUE. Estos comandos están deshabilitados por defecto por seguridad, ya que algunos de ellos podrían causar problemas de seguridad o estabilidad para el Wrapper y su aplicación.

Los posibles comandos de prueba incluyen:

  • ACCESS_VIOLATION (Desde la versión 3.5.2) :

    Hace que el proceso del Wrapper en sí se bloquee y, por lo tanto, no se cierre limpiamente. Cuando eso sucede, la JVM debería detectar inmediatamente que el programa se ha ido y cerrarse automáticamente. Nada se conservará en el archivo de registros del Wrapper después de la infracción de acceso. Esto es útil para probar como se comportan el Wrapper, la JVM y los sistemas externos si el Wrapper falla.

  • CLOSE_BACKEND (Desde la versión 3.5.26) :

    Hace que la conexión backend con la JVM se cierre inmediatamente. Esto es útil para probar la capacidad de la JVM para volver a conectarse con el Wrapper. Se ignora si la JVM no se está ejecutando.

  • CLOSE_SOCKET (Desde la versión 3.5.0) :

    Hace que el socket de backend con la JVM se cierre inmediatamente. Esto es útil para probar la capacidad de la JVM para volver a conectarse con el Wrapper. Se ignora si la JVM no se está ejecutando.

    Desde la versión 3.5.26, este es un alias de "CLOSE_BACKEND".

  • PAUSE_LOGGER {segundos} (Desde la versión 3.5.11) :

    Hace que el Wrapper haga una pausa en la siguiente línea de salida del registro durante la cantidad de segundos especificada. Esto es útil para probar la capacidad del Wrapper y de la JVM para manejar retrasos en el código de registro. El parámetro {segundos} puede ser entre el rango de "1" a "3600", o "0" (zero) para indefinido. Este comando está deshabilitado por seguridad, a menos que la propiedad wrapper.commandfile.enable_tests se establece en TRUE.

  • PAUSE_THREAD {THREAD} {TIME} (Desde la versión 3.5.8) :

    Hace que el hilo especificado del Wrapper con el siguiente parámetro se ponga en pausa durante un período de tiempo fijo. Esto es útil para probar como el Wrapper se porta en situaciones de alta carga que pueden causar que uno o más hilos del Wrapper se queden sin CPU. La causa más común de las pausas prolongadas son los tiempos de espera de E/S elevados cuando se realizan operaciones como el registro.

    Parámetro obligatorio {THREAD}:

    El parámetro {THREAD} es obligatorio para el valor de propiedad PAUSE_THREAD y puede tener uno de los siguientes valores:

    • MAIN :

      El hilo principal del Wrapper, incluidos el monitoreo y el rastreo (ping) del proceso de la JVM.

    • TIMER :

      El hilo del temporizador que existe si la propiedad wrapper.use_system_time se establece en FALSE.

    • JAVAIO :

      El hilo de E/S de Java que existe si la propiedad wrapper.javaio.use_thread se establece en TRUE.

    • EVENT :

      El hilo usado para procesar todas las acciones de eventos. Solo disponible en la Edición Profesional.

    Parámetro opcional {TIME}:

    El parámetro opcional {TIME} para el valor de la propiedad PAUSE_THREAD se usa para especificar la cantidad de segundos que se retrasará el hilo. Los valores validos son "-1", o entre "0" (zero) y "3600" segundos. El valor "-1" hará que la pausa espere indefinidamente. El valor "0" (zero) no tendrá ningun efecto, y valores más altos pausarán por el numero especificado de segundos. El valor predeterminado es "-1".

    Mientras el hilo PRINCIPAL está en pausa, el Wrapper no responderá, por lo que puede ser necesario matar forzosamente el proceso del Wrapper para recuperarse antes de que expire el tiempo de pausa.

wrapper.commandfile.enable_tests

Compatibilidad :3.5.0
Ediciones :Edición ProfesionaEdición EstándarEdición de la Comunidad
Plataformas :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

Algunos de los comandos relacionados con las pruebas están desactivados por defecto por razones de seguridad. Establecer esta propiedad en TRUE hará posible el uso de comandos de prueba. El valor predeterminado es "FALSE".

Ejemplo:
wrapper.commandfile.enable_tests=FALSE

Los siguientes Comandos de Prueba pueden ser válidos:

  • PAUSE_LOGGER {seconds} (Desde la versión 3.5.11) :

    Hace que el Wrapper haga una pausa en la siguiente línea de salida del registro durante la cantidad de segundos especificada. Véase la descripción completa más arriba.

  • PAUSE_THREAD {THREAD} {TIME} (Desde la versión 3.5.8) :

    Hace que el hilo especificado del Wrapper con el siguiente parámetro se ponga en pausa durante un período de tiempo fijo Véase la descripción completa más arriba.

  • CLOSE_SOCKET (Desde la versión 3.5.0) :

    Hace que el socket de backend con la JVM se cierre inmediatamente. Véase la descripción completa más arriba.

NOTA

Tenga en cuenta que algunos comandos de prueba pueden hacer que el programa o la JVM se vuelvan inestables. Estos están destinados solo para pruebas y nunca deben habilitarse en servidores de producción.

wrapper.commandfile.poll_interval

Compatibilidad :3.5.31
Ediciones :Edición ProfesionaEdición EstándarEdición de la Comunidad
Plataformas :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

El intervalo regular en el que se prueba la existencia del archivo de comandos se puede controlar utilizando esta propiedad. El valor predeterminado es 5 segundos, con valores válidos en el rango de "1" a "3600" segundos".

Ejemplo:
wrapper.commandfile.poll_interval=5

wrapper.command.poll_interval

Compatibilidad :3.2.0 (Deprecated as of 3.5.31)
Ediciones :Edición ProfesionaEdición EstándarEdición de la Comunidad
Plataformas :WindowsMac OSXLinuxIBM AIXFreeBSDHP-UXSolarisIBM z/Linux

ADVERTENCIA

El uso de esta propiedad se ha depreciado desde la versión 3.5.31 del Wrapper en favor de la propiedad wrapper.commandfile.poll_interval.

El intervalo regular en el que se prueba la esxistencia del archivo de comandos se puede controlar utilizando esta propiedad. El valor predeterminado es 5 segundos, con valores válidos en el rango de "1" a "3600" segundos".

Example:
wrapper.command.poll_interval=5

Referencia: Archivo de Comandos