Hacer que los mandatos de controlador puedan reintentarse

Un mandato que puede reintentarse es un mandato de controlador que puede volver a ejecutarse automáticamente después de sufrir una excepción a nivel de sistema durante la ejecución del mandato.

Nota:
  • Los servicios web no se pueden reintentar.
  • Todos los mandatos en la clase CommandRegistryEntry se puede reintentar de forma predeterminada.

Procedimiento

  1. Para hacer que un mandato de controlador existente pueda reintentarse, debe efectuar uno de los siguientes pasos:
    1. Establezca las propiedades retriable en la columna PROPERTIES de la tabla de base de datos CMDREG donde PROPERTIES son las propiedades predeterminadas asociadas con este mandato. Las propiedades están en el formulario property1=value1&property2=value2, donde propertyn es el nombre de la propiedad y valuen es el valor correspondiente a la propiedad.
    2. En el archivo de configuración , establezca una propiedad de instancia <CommandRegistryRetriableProperty defaultValue="1" />.
      Nota:
      • También puede establecer la propiedad de instancia utilizando <CommandRegistryRetriableProperty defaultValue="true" />.
      • Si se establece la propiedad de la instancia en 0 o false el resultado es que el mandato del controlador no se puede reintentar.
      Restricción: El mecanismo recuperable se codifica en la infraestructura Struts en lugar de en las infraestructuras de mandatos de REST o BOD. Si un mandato de controlador se configura como reintenible y se invoca utilizando la infraestructura Struts (clase BaseAction), el mecanismo reintenible funcionará y el mandato de controlador se invocará de nuevo si falla debido a errores del sistema. Sin embargo, si se ha invocado el mandato controlador utilizando las infraestructuras de mandatos REST o BOD, no se volverá a intentar, aunque el mandato de controlador se configure como reintenible.
    3. Establezca el método setRetriable() para devolver true.
  2. La propiedad retriable se inicializa por la fábrica de mandatos basándose en las propiedades definidas en una de las siguientes configuración de mandatos anteriores. Esta configuración de mandatos durante la ejecución puede proceder de las siguientes dos ubicaciones en el siguiente orden de secuencia:
    1. El valor recuperable de CommandRegistryEntry se asigna desde las propiedades retriable en la columna PROPERTIES de la base de datos CMDREG solo cuando dicha entrada existe en la tabla de base de datos.
    2. De lo contrario, si una propiedad de instancia se ha llamado <CommandRegistryRetriableProperty defaultValue="0" /> o <CommandRegistryRetriableProperty defaultValue="false" /> está definida en el archivo de configuración , la fábrica de mandatos utilizará este valor como la configuración recuperable predeterminada.
    3. De lo contrario, se utilizará el valor de retriable definido en el mandato de controlador.