Persistencia

★ en inglés la palabra persistencia es “stateful”, y su contraria, no persistente, “stateless”.

Los programas tradicionales de pantalla estan activos desde que el terminal comienza su llamada y hasta que se termina por algun evento. El Sistema Operativo OS/400 mantiene una conexion permanente con el terminal asignándole un Usuario, Dispositivo y Jobnum concretos.

Por tanto, el programa puede conservar en campos de trabajo todo el control de todo el tiempo de actividad, puede tener los ficheros abiertos todo el tiempo y cerrarlos solo al final, usar la LDA y QTEMP, etc.

A esto le podemos denominar persistencia.

  • Un Ejemplo de persistencia es una llamada telefónica. Generalmente no se pierde el hilo de la conversación hasta que se cuelga el teléfono.
  • “conversaciones” por fax o e-mail son ejemplos de no persistencia.

No Persistencia

Un Programa R4W arranca cada vez que el browser envía una petición, y termina al devolverle la respuesta.

Es lo que se llama un programa no persistente.

Generalmente, el programa solo estará activo menos de un segundo.

Por tanto, el programa debe Abrir y Cerrar los ficheros necesarios en cada interacción del usuario, y es bueno modularizar (dividir en mas programas) las transacciones para hacer más fáciles y rápidos los programas.

Esto es, claro, totalmente diferente del modo en que funcionan los programas tradicionales, que están activos desde que el terminal comienza su llamada y hasta que se termina por algún evento.

Un Job diferente con cada interacción

El HTTP Server no otorga un nuevo Job a cada usuario de un Browser, sino que todos los posibles usuarios comparten uno o varios Jobs, y HTTP Server los vá repartiendo sin ningún orden concreto.

Por tanto esto añade otro elemento a considerar y abunda en la falta de persistencia, ni siquiera se puede usar una biblioteca QTEMP o una *LDA porque cada vez que entra una interacción de un usuario puede ser un Job diferente.

En el entorno de la Intranet, usuarios locales del 400, el Sistema otorga un Job concreto a cada trabajo porque se sabe que es un número finito (ya sean 7, 40, 200 o 1500 usuarios), pero el HTTP Server no conoce a priori cuantos usuarios web le pueden llegar, de hecho incluso puede no tener modo de conocer si un usuario es uno concreto.

Para no crear centenares o miles de Jobs, el HTTP Server simplemente asigna temporalmente un Job a cada petición, y termina esa asignación temporal cuando le envía la respuesta.

RPG For Web permite trabajar CON persistencia opcionalmente. Sin embargo, es bueno conocer que la forma “normal” de trabajo es sin persostencia.

Esquema de trabajo no persistente

8-O Asustado?, bueno, esto es “así”, por lo que sólo nos queda convivir con ello.

RPG For Web incluye funciones para ayudar a controlar las transacciones, pero es importante comprender este comportamiento no persistente, porque es de vital importancia.

 
/kunden/homepages/8/d674751560/htdocs/cpies/doc/data/pages/rpgforweb/persistencia.txt · Última modificación: 4/04/2017 06:31 (editor externo)
[unknown button type]
 
Excepto donde se indique lo contrario, el contenido de este wiki esta bajo la siguiente licencia: CC Attribution-Noncommercial-Share Alike 4.0 International
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki