Las sesiones se deben buscar primero en el almacenamiento persistente. Si una sesión ha sido modificada en un servidor, no se modifica en la memoria de los demás servidores.
Por ejemplo, tenemos dos servidores, S1 Y S2, con el componente central. La aplicación, APP, llama a uno o a otro indistintamente.
APP llama a S1 para crear un lote. Se crea el lote, y se guarda la sesión en la memoria de S1 y en el disco.
APP llama a S2 para añadir un documento al lote. S2 no tiene la sesión en memoria, la busca en el disco, añade el documento y guarda la sesión en su memoria y en el disco.
APP llama a S1 para firmar el lote. S1 tiene la sesión en su memoria ya que la guardó en el primer paso, así que no la busca en el disco. Esta sesión no tiene el documento añadido, al intentar realizar la firma se genera un error (es.gob.fire.server.services.internal.PreSignService.service No se han agregado documentos al lote).
Las sesiones se deben buscar primero en el almacenamiento persistente. Si una sesión ha sido modificada en un servidor, no se modifica en la memoria de los demás servidores.
Por ejemplo, tenemos dos servidores, S1 Y S2, con el componente central. La aplicación, APP, llama a uno o a otro indistintamente.
APP llama a S1 para crear un lote. Se crea el lote, y se guarda la sesión en la memoria de S1 y en el disco. APP llama a S2 para añadir un documento al lote. S2 no tiene la sesión en memoria, la busca en el disco, añade el documento y guarda la sesión en su memoria y en el disco. APP llama a S1 para firmar el lote. S1 tiene la sesión en su memoria ya que la guardó en el primer paso, así que no la busca en el disco. Esta sesión no tiene el documento añadido, al intentar realizar la firma se genera un error (es.gob.fire.server.services.internal.PreSignService.service No se han agregado documentos al lote).