Ejemplo: utilizar un objeto de notificación para iniciar una aplicación

Cuando se inicia un programa tras una finalización anómala, este puede buscar una entrada en el objeto de notificación. Si la entrada existe, el programa puede iniciar de nuevo una transacción. Una vez que transacción se ha vuelto a iniciar, el programa borra el objeto de notificación para impedir que se inicie otra vez la misma transacción.

El objeto de notificación se puede usar de varias maneras:

  • Si la identificación de compromiso se coloca en un archivo de base de datos, consulte este archivo para determinar dónde hay que volver a iniciar cada aplicación o trabajo de estación de trabajo.
  • Si la identificación de compromiso se coloca en una cola de mensajes para una estación de trabajo determinada, puede enviarse un mensaje a los usuarios de la estación de trabajo cuando inicien la sesión para informarles de la última transacción comprometida.
  • Si la identificación de compromiso se coloca en un archivo de base de datos que tiene una clave o un nombre de usuario, el programa puede leer este archivo al iniciarse. Si existe un registro en el archivo, inicie de nuevo el programa. El programa puede enviar un mensaje al usuario de la estación de trabajo en el que se identifique la última transacción comprometida. El programa lleva a cabo la recuperación necesaria. Si existía un registro en el archivo de base de datos, el programa suprime ese registro al final del programa.
  • Para una aplicación por lotes, la identificación de compromiso se puede colocar en un área de datos que contiene los totales, los valores de conmutadores y otra información de estado necesaria para volver a iniciar la aplicación. Cuando se inicia la aplicación, esta accede al área de datos y verifica los valores almacenados en ella. Si la aplicación finaliza normalmente, el área de datos se configura para la siguiente ejecución.
  • Para una aplicación por lotes, la identificación de compromiso se puede enviar a una cola de mensajes. Un programa que se ejecute cuando se inicie la aplicación puede recuperar los mensajes de la cola y volver a iniciar los programas.

Se pueden usar varias técnicas para volver a iniciar las aplicaciones, en función de las necesidades de las aplicaciones. Al elegir la técnica, tenga en cuenta la siguiente información:

  • Cuando hay múltiples usuarios de un programa al mismo tiempo, no se puede utilizar una sola área de datos como objeto de notificación, porque, después de una finalización anómala del sistema, la identificación de compromiso de cada uno de los usuarios recubriría la de los demás en el área de datos.
  • El método que utilice para suprimir información del objeto de notificación debe manejar la situación cuando se produce un error inmediatamente después de utilizar la información:
    • Si la información se suprime de inmediato, no existiría si se produjera otra anomalía antes de procesar la transacción interrumpida.
    • Se recomienda no suprimir la información del objeto de notificación hasta que se procese satisfactoriamente la transacción interrumpida. En este caso, existirá más de una entrada en el objeto de notificación si este es un archivo de base de datos o una cola de mensajes.
    • El programa debe acceder al último registro si hay más de una entrada.
  • No es posible utilizar un objeto de notificación para proporcionar al usuario de la estación de trabajo la última transacción comprometida ya que el objeto de notificación solo se actualiza si se produce un error del sistema o del trabajo o si existen cambios no comprometidos al finalizar un trabajo normalmente.
  • Si se visualiza información al usuario de la estación de trabajo, debe ser significativa. Para ello podría hacer falta que el programa convirtiese los códigos contenidos en el objeto de notificación en información que ayudase al usuario a iniciar de nuevo.
  • La información para iniciar de nuevo se debe visualizar si el usuario de la estación de trabajo la necesita. Se necesita lógica adicional en el programa para evitar que se visualice de nuevo información cuando ya no sea significativa.
  • Un único objeto de notificación y un programa de proceso estándar pueden proporcionar una función de volver a iniciar si el objeto de notificación es un archivo de base de datos. Los programas que necesitan la capacidad de volver a iniciar llaman a este programa de proceso estándar para minimizar los cambios realizados en cada programa individual.