4D v16.3

Procesos

Inicio

 
4D v16.3
Procesos

Procesos  


 

 

Multitarea en 4D es la posibilidad de ejecutar simultáneamente varias operaciones de bases de datos distintas. Estas operaciones son llamadas procesos.

Múltiples procesos equivalen a tener múltiples usuarios trabajando en el mismo ordenador, cada uno trabajando en su propia tarea. Esto significa principalmente que un método puede ser ejecutado como una tarea distinta de base de datos.

Esta sección trata los siguientes temas:

  • Crear y eliminar procesos
  • Elementos de un proceso
  • Procesos creados por 4D
  • Procesos locales y globales
  • Bloqueo de registros entre procesos

Nota: esta sección no cubre procesos almacenados. Ver la sección Procedimientos almacenados en el Manual de 4D Server.

Hay varias formas de crear un nuevo proceso:

  • Ejecute un método en el entorno Diseño después de seleccionar la casilla Ejecutar en un proceso nuevo en la caja de diálogo Ejecutar Método. El método elegido en la caja de diálogo Ejecutar método es el método proceso.
  • Los procesos pueden ejecutarse seleccionando los comandos de menú. En el editor de menús, marque la casilla Iniciar un nuevo proceso. El método asociado al comando de menú es el método proceso.
  • Utilice la función New process. El método pasado como parámetro a la función New process es el método proceso.
  • Utilice la función Execute on server para crear un procedimiento almacenado en el servidor. El método pasado como parámetro de la función es el método proceso.
  • Utilice el comando CALL WORKER. Si el proceso del worker no existe ya, se crea.

Se puede borrar un proceso bajo las siguientes condiciones. Las primeras dos condiciones son automáticas:

  • Cuando el método proceso termina su ejecución
  • Cuando el usuario sale de la base
  • Si detiene el proceso con el lenguaje o utilizando el botón Abortar en el Depurador
  • Si selecciona Abortar en el Explorador de ejecución
  • Si llama al comando KILL WORKER (eliminar un proceso worker únicamente).

Un proceso puede crear otro proceso. Los procesos no están organizados jerárquicamente, todos los procesos son iguales, y esto es independientemente del proceso a partir del cual ellos han sido creados. Una vez el proceso “padre” crea un proceso “hijo”, el proceso hijo continua sin importar si el proceso padre se está ejecutando o no.

Cada proceso contiene elementos específicos. Hay tres tipos de elementos diferentes en un proceso:

Elementos de interfaz: los elementos necesarios para mostrar un proceso.
Elementos de datos: información relacionada con los datos de la base.
 Elementos de lenguaje: elemento utilizados por el lenguaje o importantes para el desarrollo de su aplicación.

Los elementos de interfaz son los siguientes:

Barra de menús: cada proceso puede tener su propia barra de menús actual. La barra de menús del proceso del primer plano es la barra de menús actual de la base.
Una o más ventanas: cada proceso puede tener varias ventanas abiertas simultáneamente. Por el contrario, algunos procesos no tienen ventanas.
Una ventana activa (primer plano): aunque un proceso puede tener varias ventanas abiertas simultáneamente, cada proceso tiene sólo una ventana activa. Para tener más de una ventana activa, debe iniciar más de un proceso.

Notas:

  • Por defecto, los procesos no incluyen barras de menús, lo que significa que los accesos directos estándar del menú Edición (en particular, cortar/copiar/pegar) no están disponibles en las ventanas de procesos. Cuando se llama a los diálogos o a los editores de 4D (editor de formularios, editor de búsquedas, Request, etc.) desde un proceso, si desea que el usuario pueda beneficiarse de atajos de teclado como copiar/pegar, debe asegurarse de que el equivalente a un menú Edición esté instalado en el proceso.
  • Los procesos apropiativos y los procesos que se ejecutan en el servidor (procedimientos almacenados) no deben contener elementos de interfaz.

Los elementos de datos se refieren a los datos de la base. Estos son los siguientes:

Selección actual por tabla: cada proceso tiene su propia selección actual. La misma tabla puede tener diferentes selecciones actuales en diferentes procesos.
Registro actual por tabla: cada tabla puede tener un registro actual diferente en cada proceso.

Nota: esta descripción de elementos de datos es válida si los procesos son procesos globales. Por defecto, todos los procesos son globales. Consulte más adelante el párrafo que trata este tema.

Los elementos del lenguaje de un proceso son los elementos relacionados con la programación en 4D.

  • Variables: cada proceso tiene sus propias variables de proceso. Para mayor información ver Variables. Las variables proceso sólo se reconocen en el marco de su proceso nativo.
  • Tabla por defecto: cada proceso tiene su propia tabla por defecto. Sin embargo, note que el comando DEFAULT TABLE sólo es una convención para programación.
  • Formularios de entrada y salida: los formularios de entrada y salida por defecto pueden ser elegidos por programación para cada tabla en cada proceso.
  • Conjuntos de proceso: cada proceso tiene sus propios conjuntos de proceso.  LockedSet es un conjunto de proceso. Los conjuntos proceso se borran tan pronto como el método de proceso termina.
  • On Error Call por proceso: cada proceso tiene su propio método de gestión de errores.
  • Ventana del depurador: cada proceso puede tener su propia ventana del Depurador.

Los procesos usuario son procesos que usted crea para efectuar ciertas tareas. Ellos comparten los tiempos de equipo con los procesos principales. Los procesos de conexión Web son los procesos usuario.

La aplicación 4D crea igualmente los procesos para sus propias necesidades. Estos son los principales procesos creados y administrados por 4D:

  • Proceso principal: el proceso principal administra las ventanas de visualización de la interfaz de usuario.
  • Proceso diseño: el proceso desarrollo administra las ventanas y editores del entorno de Desarrollo. No hay proceso desarrollo en una base compilada que no contenga el código interpretado.
  • Proceso servidor web: el proceso servidor web corre cuando la base se publica en la web. Para mayor información ver la sección .
  • Proceso de gestión de la cache: el proceso de gestión de cache administra las entradas/salidas disco de la base. Este proceso se crea tan pronto como 4D o 4D Server se ejecutan.
  • Proceso de indexación: el proceso de indexación administra los índices de los campos en una base como procesos por separado. Este proceso se crea cuando un índice es creado o borrado por un campo.
  • Proceso de gestión de eventos: este proceso se crea cuando un método de gestión de eventos es instalado por el comando ON EVENT CALL. Este proceso ejecuta el método de evento instalado por ON EVENT CALL cuando hay un evento. El método de evento es el método de proceso de este proceso. Este proceso se ejecuta continuamente, incluso si ningún método está en ejecución. La gestión de eventos funciona también en el entorno Diseño.

A partir de 4D v15 R5 64 bits, 4D le permite crear procesos usuario apropiativos en modo compilado. En versiones anteriores, sólo los procesos usuario cooperativos estaban disponibles.

Cuando se ejecuta en modo apropiativo, un proceso está dedicado a un CPU. La gestión de procesos a continuación, se delega al sistema, que puede asignar a cada CPU por separado en una máquina multi-núcleo. Cuando se ejecuta en modo cooperativo, todos los procesos son gestionados por el hilo de la aplicación padre y comparten la misma CPU, incluso en una máquina multi-núcleo.

Como resultado, en el modo apropiativo, el rendimiento general de la aplicación mejora, sobre todo en máquinas multi-núcleo, ya que múltiples procesos (hilos) pueden funcionar simultáneamente. Sin embargo, las ganancias reales dependen de las operaciones que se ejecuten. En contraparte, ya que cada hilo es independiente de los otros en el modo apropiativo, y no gestionado directamente por la aplicación, existen limitaciones específicas aplicadas a los métodos que se desea para ser compatibles con el uso apropiativo. Además, la ejecución preferente sólo está disponible en ciertos contextos específicos.

La gestión de los procesos apropiativos se detalla en la sección Procesos 4D apropiativos.

El alcance de los procesos puede ser local o global. Por defecto, todos los procesos son globales.

En la mayoría de los casos, usted utilizará procesos globales. Los procesos globales pueden efectuar toda operación, incluyendo acceso y manipulación de los datos.

Los procesos locales deben ser utilizados únicamente para operaciones que no acceden a los datos. Por ejemplo, puede utilizar un proceso local para controlar los elementos de interfaz como las paletas flotantes o ejecutar un método de gestión de eventos.

Atención: si intenta acceder a los datos desde un proceso local, accede a los datos por medio del proceso principal, y toma el riesgo de entrar en conflicto con las operaciones efectuadas en ese proceso.

Se especifica que un proceso es local por medio de su nombre. El nombre de un proceso local debe comenzar por el símbolo dólar.

4D Server: con 4D Server, el uso de procesos locales por parte del cliente para operaciones que no requieren accesos a los datos permite asignar aún más tiempo de procesamiento a tareas que requieren el servidor intensivamente.

Un registro está bloqueado cuando otro proceso ha cargado el registro para modificarlo. Un registro bloqueado puede ser cargado por otro proceso, pero no puede ser modificado. El registro está bloqueado solamente en el proceso en el cual el registro está siendo modificado. Una tabla debe estar en modo lectura/escritura para que un registro se cargue desbloqueado. Para mayor información consulte la sección .



Ver también 

Métodos
Métodos de proyecto
Variables

 
PROPIEDADES 

Producto: 4D
Tema: Procesos

 
HISTORIA 

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v16)
Manual de lenguaje 4D ( 4D v16.1)
Manual de lenguaje 4D ( 4D v16.2)
Manual de lenguaje 4D ( 4D v16.3)