SWITCH, mandato
Este mandato dinámico hace que se conmute un archivo de almacén de datos para un grupo de archivos específico. En cualquier momento, las operaciones de actualización de tipo en las tablas de un grupo concreto se dirigen a exclusivamente uno de los archivos del grupo. Dicho archivo se conoce como el archivo activo. Una conmutación de archivo cambia el archivo activo de un grupo. Dicho de otro modo, la conmutación hace que un archivo que no sea el activo en ese momento se convierta en el nuevo archivo activo.
Si el grupo especificado por este mandato sólo tiene un archivo o no tiene actualmente ningún archivo inactivo que sea adecuado para la salida, no se realiza la conmutación.
Al final de un conmutador, el almacén de datos persistente inicia el proceso de mantenimiento para un archivo del grupo si no quedan archivos vacíos en el grupo.
La palabra clave [NO]EXTRACT se puede utilizar para forzar o suprimir un trabajo de extracción del archivo de almacén de datos desactivado mediante la conmutación.
Sintaxis
SWITCH GROUP=groupid [ EXTRACT | NOEXTRACT ]
donde
- ID de Grupo
- Especifica el ID del grupo de archivos que se debe conmutar. El grupo debe tener varios archivos asignados.
- EXTRACT
- Especifica que se va a extraer el archivo del almacén de datos desactivado, aunque la sentencia GROUP del archivo no haya solicitado la extracción.
- NOEXTRACT
- Especifica que no se va a realizar la extracción para el archivo del almacén de datos desactivado. Esta opción altera temporalmente la palabra clave EXTRACT de la sentencia GROUP.
Tenga en cuenta que si no se especifica EXTRACT ni NOEXTRACT, la presencia o ausencia de la palabra clave EXTRACT en la sentencia GROUP del archivo determina si la extracción se realiza como parte de la conmutación.
Lógica de SWITCH
El mandato SWITCH consulta todos los conjuntos de datos asignados al grupo e intenta encontrar uno vacío. Si no hay ningún conjunto de datos vacío disponible, los posteriores intentos de grabar datos en un conjunto de datos del grupo fallarán. Normalmente, se encuentra un conjunto de datos vacíos y se marca como el conjunto de datos activo.Cuando un conjunto de datos se desactiva porque está lleno, se prueba para ver si se ha especificado la opción EXTRACT. Si es así, se ejecuta el mandato EXTRACT para el conjunto de datos.
La siguiente prueba es comprobar si hay conjuntos de datos vacíos en el grupo actual. Si no es así, el código busca el conjunto de datos que tenga los datos más antiguos y lo marca para el mantenimiento. Con el último release del almacén de datos persistente, el código comprueba si se ha especificado alguna de las opciones de mantenimiento BACKUP, EXPORT o EXTRACT para este conjunto de datos. Si no es así, se ejecuta el mandato INITDS. De lo contrario, se ejecuta el mandato BACKUP.