Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com

Inicio

 
4D v20 R7
4D Server y el lenguaje 4D

4D Server y el lenguaje 4D  


 

 

Con 4D Server, hay tres situaciones en las que puede ejecutar código 4D en el equipo servidor:

  • Triggers
  • Procedimientos almacenados
  • Métodos de proyecto con el atributo "Ejecutar en el servidor"
  • Métodos base

Un trigger es un método asociado a una tabla. Los triggers pueden evitar operaciones “ilegales” en los registros de su base de datos. Los triggers son una herramienta muy poderosa que permite restringir las operaciones en una tabla, como también evitar pérdidas accidentales de datos o sabotaje. Por ejemplo, en un sistema de facturación, puede evitar que añadan una factura sin especificar el nombre del cliente.

Los triggers se ejecutan en la máquina en la cual está el motor de la base de datos. Con 4D Server, los triggers se ejecutan en el contexto de los procesos que corren en el equipo servidor y no en el equipo cliente. Más precisamente, se ejecutan en el contexto de los procesos "gemelos" de los procesos usuarios que llaman la operación de la base de datos. Estos procesos gemelos comparten el contexto de la base con los procesos usuario en el equipo cliente (en particular, el estado de las transacciones y el bloqueo de los registros) pero no comparten el contexto del lenguaje (variables, procesos, conjuntos, selecciones actuales). Note sin embargo que el registro actual de la tabla del trigger es el mismo en todos los contextos.

Para mayor información sobre triggers, consulte la sección Triggers del manual de Lenguaje 4D.

Nota: en el servidor, un trigger se ejecuta en el proceso responsable de la acción asociada (crear/actualizar/borrar). Si la acción se desencadena desde un proceso apropiativo en el servidor (por ejemplo, un procedimiento almacenado, una solicitud http en modo de sesión escalable), el trigger se ejecutará en el mismo proceso apropiativo. Pero, si la acción fue disparada desde un 4D remoto, entonces el trigger se ejecutará en el proceso gemelo, que siempre está en modo cooperativo (un proceso gemelo es compartido para todas las llamadas de un usuario). Ver Procesos apropiativos en developer.4d.com.

Un procedimiento almacenado 4D es un método de proyecto ejecutado en un proceso separado en el equipo servidor (o en cualquier máquina cliente), en lugar de la máquina cliente que lanzó el método. Ver la sección Procedimientos almacenados.

Todos los procedimientos almacenados que se ejecutan en el servidor comparten la misma sesión virtual de usuario. Esta sesión es devuelta como un objeto de la clase Session por el comando Session

Los objetos Session permiten obtener información sobre la sesión y compartir datos entre procesos, gracias a la propiedad .storage.

La sesión virtual de usuario está disponible desde los siguientes contextos:

  • métodos invocados con el comando Execute on server,
  • métodos base On Server Startup, On Server Shutdown, On Backup Startup, On Backup Shutdown y On System event.

Nota: cada sesión de usuario en el servidor tiene su propio objeto Session. Para más información, consulte esta página en developer.4d.com.

Los métodos de proyecto que tienen el atributo "Execute on Server" también se ejecutan en el servidor. Sin embargo, a diferencia de los procedimientos almacenados, se ejecutan en los procesos "gemelos" del proceso cliente y se benefician de su contexto de base de datos. Para mayor información, consulte la sección Atributo Ejecutar en servidor.

Cuatro métodos base se ejecutan únicamente en la máquina servidor:

Cinco métodos base pueden ejecutarse en el equipo servidor o en un equipo cliente en función del contexto:

Tres métodos base pueden ejecutarse únicamente en un equipo cliente:

Para mayor información ver las secciones correspondientes en este manual y en el manual de Lenguaje de 4D para mayor información sobre los métodos base.

  • 4D Server mantiene una tabla de variables interproceso. El alcance de estas variables es el equipo servidor. Al correr una base compilada, la definición de la tabla de las variables interproceso es común entre el servidor y todos los equipos cliente, cada máquina tiene su propia instancia.
  • Como todos los procesos, cada procedimiento almacenado, método base y trigger tiene su propia tabla de variables proceso. Estas variables proceso pueden crearse y utilizarse de manera dinámica durante cada fase de la ejecución.

Con 4D Server, la visibilidad de los conjuntos y de las selecciones temporales depende del origen de la creación (proceso servidor o proceso cliente) y el tipo de estos objetos (objetos locales, proceso o interproceso). Para mayor información, consulte la sección 4D Server, conjuntos y selecciones temporales.

 
PROPIEDADES 

Producto: 4D
Tema: 4D Server y el lenguaje 4D

 
CONTENIDO DE LA PÁGINA 
 
HISTORIA 

Modificado: 4D v20 R5

 
PALABRAS CLAVES 

Twin Process, twins

 
ARTICLE USAGE

Manual de 4D Server ( 4D v20 R7)