Notas del release IBM(R) DB2(R) Universal Database Notas del release Versión 7.2/Versión 7.1 FixPak 3 Esta publicación es la traducción del original inglés IBM(R) DB2(R) Universal Database Release Notes Version 7.2/Version 7.1 FixPak 3. © Copyright International Business Machines Corporation. Reservados todos los derechos. Nota para los usuarios del gobierno de los EE.UU. -- Documentación relacionada con derechos restringidos. -- El uso, duplicación o divulgación están sujetos a las restricciones establecidas en el contrato GSA ADP Schedule con IBM Corporation. ------------------------------------------------------------------------ Contenido * Contenido * ¡Bienvenido a DB2 Universal Database Versión 7! ------------------------------------------------------------------------ Notas especiales * Notas especiales o 1.1 Características de acceso de DB2 UDB Versión 7 + 1.1.1 Entrada por teclado y navegación + 1.1.1.1 Entrada por teclado + 1.1.1.2 Foco del teclado + 1.1.2 Características para visualización accesible + 1.1.2.1 Modalidad de alto contraste + 1.1.2.2 Valores de font + 1.1.2.3 No dependencia del color + 1.1.3 Indicaciones de alerta alternativas + 1.1.4 Compatibilidad con tecnologías de asistencia + 1.1.5 Documentación accesible o 1.2 Nivel de parche necesario adicional para Solaris o 1.3 CPU soportadas en DB2 Versión 7 para Solaris o 1.4 Problemas al añadir nodos a una base de datos particionada o 1.5 Errores durante la migración o 1.6 Arreglo de entorno local chino en Red Flag Linux o 1.7 La instalación de DB2 puede colgarse si no hay conectada ninguna unidad extraíble o 1.8 Valor de entorno nacional adicional para DB2 para Linux en el entorno Linux en japonés y chino simplificado o 1.9 Problema del centro de control de Microsoft Internet Explorer o 1.10 Incompatibilidad entre Information Catalog Manager y Sybase en el entorno Windows o 1.11 Pérdida de funcionalidad del centro de control o 1.12 CD de Netscape no suministrado con DB2 UDB o 1.13 Error en archivos readme de XML o 1.14 Posible pérdida de datos en Linux para S/390 o 1.15 DB2 UDB en Windows 2000 * Documentación en línea (HTML, PDF y Búsqueda) o 2.1 Navegadores de la Web soportados en el sistema operativo Windows 2000 o 2.2 Búsqueda en la información en línea de DB2 en Solaris o 2.3 Conmutación de NetQuestion para OS/2 para utilizar TCP/IP o 2.4 Mensajes de error cuando se intenta ejecutar Netscape o 2.5 Requisito de configuración para Adobe Acrobat Reader en sistemas basados en UNIX o 2.6 La Consulta de SQL se proporciona en un archivo PDF ------------------------------------------------------------------------ Instalación y configuración * Información general sobre la instalación o 3.1 Bajada de los paquetes de instalación para todos los clientes de DB2 soportados o 3.2 Instalación de DB2 en Windows 2000 o 3.3 Consecuencia de la migración con respecto a las vistas definidas con registros especiales o 3.4 Soporte del protocolo IPX/SPX en Windows 2000 o 3.5 Detención de los procesos de DB2 antes de actualizar una versión anterior de DB2 o 3.6 Ejecución de db2iupdt después de instalar DB2 si ya hay otro producto DB2 instalado o 3.7 Configuración del entorno Linux para ejecutar el Centro de control de DB2 o 3.8 DB2 Universal Database Enterprise Edition y DB2 Connect Enterprise Edition para Linux en S/390 o 3.9 DB2 Universal Database Enterprise - Extended Edition for UNIX Quick Beginnings o 3.10 Parámetro de kernel shmseg para HP-UX o 3.11 Migración de las bases de datos de control de IBM Visual Warehouse o 3.12 Acceso a las bases de datos de control del depósito * Data Links Manager Guía rápida de iniciación o 4.1 Falla el inicio de dlfm con el mensaje: "Error al obtener el afsfid para el prefijo" o 4.2 Establecimiento de la clase de Tivoli Storage Manager para archivos de archivar o 4.3 Requisitos de espacio de disco para DFS Client Enabler o 4.4 Supervisión de los procesos de componente de fondo de DB2 Data Links File Manager en AIX o 4.5 Instalación y configuración de DB2 Data Links Manager para AIX: Consideraciones adicionales sobre la instalación en entornos DCE-DFS o 4.6 El mandato "dlfm add_prefix" ha fallado o 4.7 Instalación y configuración de DB2 Data Links Manager para AIX: Instalación del DB2 Data Links Manager en AIX utilizando el programa de utilidad db2setup o 4.8 Instalación y configuración de DB2 Data Links Manager para AIX: Tarea posterior a la instalación de DCE-DFS o 4.9 Instalación y configuración de DB2 Data Links Manager para AIX: Instalación manual de DB2 Data Links Manager en AIX utilizando la Smit o 4.10 Instalación y configuración de DB2 Data Links Manager DFS Client Enabler o 4.11 Instalación y configuración de DB2 Data Links Manager para Solaris o 4.12 Elección de un método de copia de seguridad para DB2 Data Links Manager en AIX o 4.13 Elección de un método de copia de seguridad para DB2 Data Links Manager en el entorno operativo Solaris o 4.14 Elección de un método de copia de seguridad para DB2 Data Links Manager en Windows NT o 4.15 Obtención de copia de seguridad de un Sistema de archivos de diario en AIX o 4.16 Privilegios del grupo del administrador en Data Links en Windows NT o 4.17 Minimizar el registro cronológico para la instalación de Data Links File System Filter (DLFF) + 4.17.1 Anotación cronológica de mensajes después de la instalación o 4.18 La desinstalación de los componentes de DLFM utilizando la SMIT puede eliminar catálogos de archivos adicionales o 4.19 Antes de empezar/Determinar el nombre del sistema principal o 4.20 Trabajo con Data Links File Manager: Borrado después de descartar un DB2 Data Links Manager de una base de datos de DB2 o 4.21 DLFM1001E (Nuevo mensaje de error) o 4.22 Opción de archivo de configuración de puesta a punto DLFM o 4.23 Error al ejecutar el script de Data Links/DFS dmapp_prestart en AIX o 4.24 Integración de Tivoli Space Manager con Data Links + 4.24.1 Restricciones y limitaciones o 4.25 Capítulo 4. Instalación y configuración de DB2 Data Links Manager para AIX + 4.25.1 Consideraciones para la instalación + 4.25.1.1 Migración de DB2 File Manager Versión 5.2 a DB2 Data Links Manager Versión 7 * Suplemento de instalación y configuración o 5.1 Capítulo 5. Instalación de clientes DB2 en sistemas operativos UNIX + 5.1.1 Parámetros de configuración del kernel HP-UX o 5.2 Capítulo 12. Ejecución de sus propias aplicaciones + 5.2.1 Vinculación de programas de utilidad para bases de datos utilizando el Cliente de tiempo de ejecución + 5.2.2 Acceso de clientes UNIX a DB2 utilizando ODBC o 5.3 Capítulo 24. Configuración de un sistema federado para que acceder a varias fuentes de datos + 5.3.1 Sistemas federados + 5.3.1.1 Restricción + 5.3.2 Instalación de DB2 Relational Connect + 5.3.2.1 Instalación de DB2 Relational Connect en servidores Windows NT + 5.3.2.2 Instalación de DB2 Relational Connect en servidores AIX, Linux y del entorno operativo Solaris o 5.4 Capítulo 26. Acceso a fuentes de datos Oracle + 5.4.1 Errores de la documentación o 5.5 Acceso a fuentes de datos Sybase (capítulo nuevo) + 5.5.1 Adición de fuentes de datos Sybase a un servidor federado + 5.5.1.1 Paso 1: Establecer las variables de entorno y actualizar el registro de perfiles + 5.5.1.2 Paso 2: Enlazar DB2 al software cliente de Sybase (sólo AIX y Solaris) + 5.5.1.3 Paso 3: Reciclar la instancia de DB2 + 5.5.1.4 Paso 4: Crear y configurar un archivo de interfaces + 5.5.1.5 Paso 5: Crear el acomodador + 5.5.1.6 Paso 6: Opcional: Establecer la variable de entorno DB2_DJ_COMM + 5.5.1.7 Paso 7: Crear el servidor + 5.5.1.8 Opcional: Paso 8: Establecer la opción del servidor CONNECTSTRING + 5.5.1.9 Paso 9: Crear una correlación de usuario + 5.5.1.10 Paso 10: Crear apodos para tablas y vistas + 5.5.2 Especificación de páginas de códigos de Sybase o 5.6 Acceso a fuentes de datos de Microsoft SQL Server mediante ODBC (capítulo nuevo) + 5.6.1 Adición de fuentes de datos de Microsoft SQL Server a un servidor federado + 5.6.1.1 Paso 1: Establecer las variables de entorno (sólo en AIX) + 5.6.1.2 Paso 2: Ejecutar el script shell (sólo en AIX) + 5.6.1.3 Paso 3: Opcional: Establecer la variable de entorno DB2_DJ_COMM + 5.6.1.4 Paso 4: Reciclar la instancia de DB2 (sólo en AIX) + 5.6.1.5 Paso 5: Crear el acomodador + 5.6.1.6 Paso 6: Crear el servidor + 5.6.1.7 Paso 7: Crear una correlación de usuario + 5.6.1.8 Paso 8: Crear apodos para tablas y vistas + 5.6.1.9 Paso 9: Opcional: Obtener rastreos de ODBC + 5.6.2 Revisión de páginas de códigos de Microsoft SQL Server ------------------------------------------------------------------------ Administración * Guía de administración: Planificación o 6.1 Capítulo 8. Diseño físico de bases de datos + 6.1.1 Claves de particionamiento o 6.2 Diseño de grupos de nodos o 6.3 Capítulo 9. Diseño de bases de datos distribuidas + 6.3.1 Actualización de varias bases de datos o 6.4 Capítulo 13. Alta disponibilidad en el entorno de Windows NT + 6.4.1 Necesidad de rearrancar la máquina antes de ejecutar el programa de utilidad DB2MSCS o 6.5 Capítulo 14. DB2 y alta disponibilidad en Sun Cluster 2.2 o 6.6 Soporte de Veritas en Solaris o 6.7 Apéndice B. Normas de denominación + 6.7.1 Notas sobre nombres de esquema e ID de usuario de más de 8 caracteres + 6.7.2 ID de usuario y contraseñas o 6.8 Apéndice D. Incompatibilidades entre releases + 6.8.1 Incompatibilidad de DLFS de Windows NT con Norton Utilities + 6.8.2 SET CONSTRAINTS sustituida por SET INTEGRITY o 6.9 Apéndice E. Soporte de idioma nacional + 6.9.1 Versiones de idioma nacional de DB2 Versión 7 + 6.9.1.1 Catálogos de archivos del Centro de control y de documentación + 6.9.2 Valor de entorno nacional para el DB2 Administration Server + 6.9.3 DB2 UDB da soporte a la página de códigos de los Estados Bálticos (MS-1257) en plataformas Windows + 6.9.4 Derivación de valores de página de códigos + 6.9.5 Soporte a páginas de códigos y códigos de país + 6.9.6 Juegos de caracteres * Guía de administración: Implementación o 7.1 Cómo añadir o ampliar contenedores DMS (Proceso nuevo) o 7.2 Capítulo 1. Administración de DB2 utilizando las herramientas de la GUI o 7.3 Capítulo 3. Creación de una base de datos + 7.3.1 Creación de un espacio de tabla + 7.3.1.1 Utilización de E/S bruta en Linux + 7.3.2 Creación de una secuencia + 7.3.3 Comparación de secuencias y columnas IDENTITY + 7.3.4 Creación de un Índice, Extensión de índice o Especificación de índice o 7.4 Capítulo 4. Modificación de una base de datos + 7.4.1 Adición de un contenedor a un espacio de tabla SMS en una partición + 7.4.2 Alteración de una columna de identidad + 7.4.3 Alteración de una secuencia + 7.4.4 Descarte de una secuencia + 7.4.5 Conmutación del estado de un espacio de tabla + 7.4.6 Modificación de contenedores en un espacio de tabla DMS o 7.5 Capítulo 5. Control de acceso a bases de datos + 7.5.1 Privilegios de secuencia + 7.5.2 Cifrado de datos o 7.6 Capítulo 8. Recuperación de una base de datos + 7.6.1 Cómo utilizar la E/S suspendida + 7.6.2 Copia de seguridad y recuperación incremental + 7.6.2.1 Restauración a partir de imágenes de copia de seguridad incremental + 7.6.3 Recuperación paralela + 7.6.4 Copia de seguridad en conexiones con nombre + 7.6.5 Copia de seguridad de imagen dividida + 7.6.6 Archivador de anotaciones cronológicas a petición + 7.6.7 Reflexión de anotaciones cronológicas + 7.6.8 Soporte de copia de seguridad y restauración a través de plataformas en Sun Solaris y HP + 7.6.9 Consideraciones sobre DB2 Data Links Manager/Consideraciones sobre el programa de utilidad de copia de seguridad + 7.6.10 Consideraciones sobre DB2 Data Links Manager/Consideraciones sobre el programa de utilidad de restauración y recuperación de avance + 7.6.11 Restauración de bases de datos a partir de una copia de seguridad fuera de línea sin recuperación de avance + 7.6.12 Restauración de bases de datos y espacios de tabla, y recuperación de avance hasta el final de las anotaciones cronológicas + 7.6.13 Interacciones de DB2 Data Links Manager y recuperación + 7.6.14 Detección de situaciones que requieren reconciliación o 7.7 Apéndice C. Salida de usuario para recuperación de base de datos o 7.8 Apéndice D. Emisión de mandatos a varios servidores de particiones de bases de datos o 7.9 Apéndice I. Comunicaciones de alta velocidad entre nodos + 7.9.1 Habilitación de DB2 para ejecutarlo utilizando VI * Guía de administración: Rendimiento o 8.1 Capítulo 3. Consideraciones sobre aplicaciones + 8.1.1 Especificación del nivel de aislamiento + 8.1.2 Ajuste de la clase de optimización + 8.1.3 Sentencias compuestas dinámicas o 8.2 Capítulo 4. Consideraciones sobre el entorno + 8.2.1 Utilización de claves de índice mayores o 8.3 Capítulo 5. Estadísticas del catálogo del sistema + 8.3.1 Obtención y utilización de estadísticas de distribución + 8.3.2 Normas para la actualización de estadísticas de catálogo + 8.3.3 Estadísticas de los subelementos o 8.4 Capítulo 6. Comprensión del compilador SQL + 8.4.1 Tablas de resumen duplicadas + 8.4.2 Conceptos de acceso a datos y optimización o 8.5 Capítulo 8. Rendimiento operativo + 8.5.1 Gestión de la agrupación de almacenamiento intermedio de la base de datos + 8.5.2 Gestión de varias agrupaciones de almacenamiento intermedio de base de datos o 8.6 Capítulo 9. Utilización del gobierno o 8.7 Capítulo 13. Configuración de DB2 + 8.7.1 Tamaño de almacenamiento dinámico de clasificación (sortheap) + 8.7.2 Umbral de pila de clasificación (sheapthres) + 8.7.3 Porcentaje máximo de la lista de bloqueos antes del descenso escalonado de bloqueos (maxlocks) + 8.7.4 Configuración de DB2/DB2 Data Links Manager/Data Links Access Token Expiry Interval (dl_expint) + 8.7.5 Parámetro de configuración de la base de datos MIN_DEC_DIV_3 + 8.7.6 Tamaño de almacenamiento dinámico de control de aplicaciones (app_ctl_heap_sz) + 8.7.7 Tamaño del almacenamiento dinámico del supervisor del sistema de bases de datos (mon_heap_sz) + 8.7.8 Número máximo de aplicaciones activas (maxappls) + 8.7.9 Rango de recuperación e intervalo de punto de control variable (softmax) + 8.7.10 Habilitación del seguimiento de páginas modificadas (trackmod) + 8.7.11 Cambio de la vía de acceso de anotación cronológica de la base de datos (newlogpath) + 8.7.12 Ubicación de los archivos de anotación cronológica (logpath) + 8.7.13 Almacenamiento máximo para la lista de bloqueo (locklist) o 8.8 Apéndice A. Variables de registro y de entorno de DB2 + 8.8.1 Tabla de variables de registro nuevas y modificadas o 8.9 Apéndice C. Herramientas de SQL Explain * Administering Satellites Guide and Reference o 9.1 Configuración de la Versión 7.2 de DB2 Personal Edition y DB2 Workgroup Edition como satélites + 9.1.1 Requisitos previos + 9.1.1.1 Consideraciones sobre la instalación + 9.1.2 Configuración del sistema Versión 7.2 para la sincronización + 9.1.3 Instalación del FixPak 2 o superior en un sistema Versión 6 Enterprise Edition + 9.1.3.1 Actualización de la Versión 6 de DB2 Enterprise Edition para utilizarlo como servidor de control de DB2 + 9.1.4 Actualización de una Versión 6 del Centro de control y del Centro de administración de satélites * Consulta de mandatos o 10.1 db2batch - Herramienta Benchmark o 10.2 db2cap (nuevo mandato) + db2cap - Herramienta de vinculación de paquetes estáticos CLI/ODBC o 10.3 db2ckrst (nuevo mandato) + db2ckrst - Comprobar secuencia de imágenes de restauración incremental o 10.4 db2gncol (nuevo mandato) + db2gncol - Actualizar valores de columnas generadas o 10.5 db2inidb - Inicializar una base de datos reflejada o 10.6 db2look - Herramienta de extracción de estadísticas de DB2 o 10.7 db2updv7 - Actualizar la base de datos al nivel de arreglo actual de la versión 7 o 10.8 Nueva opción del procesador de línea de mandatos (-x, Suprimir impresión de cabeceras de columna) o 10.9 Requisito de font True Type para DB2 CLP o 10.10 ADD DATALINKS MANAGER o 10.11 ARCHIVE LOG (nuevo mandato) + Archive Log o 10.12 BACKUP DATABASE + 10.12.1 Diagrama de sintaxis + 10.12.2 Consideraciones sobre DB2 Data Links Manager o 10.13 BIND o 10.14 CALL o 10.15 DROP DATALINKS MANAGER (nuevo mandato) + DROP DATALINKS MANAGER o 10.16 EXPORT o 10.17 GET DATABASE CONFIGURATION o 10.18 GET ROUTINE (nuevo mandato) + GET ROUTINE o 10.19 GET SNAPSHOT o 10.20 IMPORT o 10.21 LIST HISTORY o 10.22 LOAD o 10.23 PING (nuevo mandato) + PING o 10.24 PUT ROUTINE (nuevo mandato) + PUT ROUTINE o 10.25 RECONCILE o 10.26 REORGANIZE TABLE o 10.27 RESTORE DATABASE + 10.27.1 Sintaxis + 10.27.2 Consideraciones sobre DB2 Data Links Manager o 10.28 ROLLFORWARD DATABASE o 10.29 Error de la documentación sobre los códigos de retorno CLP * Data Movement Utilities Guide and Reference o 11.1 Capítulo 2. Importación + 11.1.1 Utilización de la importación con inserciones en almacenamiento intermedio o 11.2 Capítulo 3. Carga + 11.2.1 Estados de pendiente después de una operación de carga + 11.2.2 Limitaciones y restricciones de carga + 11.2.3 Modificador de tipo de archivo totalfreespace o 11.3 Capítulo 4. AutoLoader + 11.3.1 rexecd necesario para ejecutar AutoLoader cuando la autentificación se establece en YES * Replication Guide and Reference o 12.1 Duplicación y servidores que no son IBM o 12.2 Duplicación en Windows 2000 o 12.3 Error conocido al guardar archivos de SQL o 12.4 Mantenimiento de DB2 o 12.5 Programa de utilidad de diferencia de datos en la Web o 12.6 Capítulo 3. Escenario de duplicación de datos + 12.6.1 Escenarios de duplicación o 12.7 Capítulo 5. Planificación de la duplicación + 12.7.1 Nombres de tabla y de columna + 12.7.2 Duplicación de DATALINK + 12.7.3 Restricciones de LOB + 12.7.4 Planificación de la duplicación o 12.8 Capítulo 6. Configuración del entorno de duplicación + 12.8.1 Requisito previo a una actualización en cualquier parte (update-anywhere) + 12.8.2 Configuración del entorno de duplicación o 12.9 Capítulo 8. Determinación de problemas o 12.10 Capítulo 9. Capture y Apply para AS/400 o 12.11 Capítulo 10. Capture y Apply para OS/390 + 12.11.1 Requisitos previos para DB2 DataPropagator para OS/390 + 12.11.2 Esquemas de codificación UNICODE y ASCII en OS/390 + 12.11.2.1 Elección de un esquema de codificación + 12.11.2.2 Establecimiento de esquemas de codificación o 12.12 Capítulo 11. Capture y Apply para plataformas UNIX + 12.12.1 Establecimiento de variables de entorno para Capture y Apply en UNIX y Windows o 12.13 Capítulo 14. Estructuras de tabla o 12.14 Capítulo 15. Mensajes de Capture y Apply o 12.15 Apéndice A. Inicio de los programas Capture y Apply desde dentro de una aplicación * System Monitor Guide and Reference o 13.1 db2ConvMonStream * Troubleshooting Guide o 14.1 Inicio de DB2 en Windows 95, Windows 98 y Windows ME cuando el usuario no tiene iniciada una sesión o 14.2 Capítulo 2. Resolución de problemas de DB2 Universal Database Server * Utilización de DB2 Universal Database en plataformas de 64 bits o 15.1 Capítulo 5. Configuración + 15.1.1 LOCKLIST + 15.1.2 shmsys:shminfo_shmmax o 15.2 Capítulo 6. Restricciones * Administración y programación del expansor de XML * MQSeries o 17.1 Instalación y configuración de DB2 MQSeries Functions + 17.1.1 Instalación de MQSeries + 17.1.2 Instalación de AMI de MQSeries + 17.1.3 Habilitación de DB2 MQSeries Functions o 17.2 Estilos de gestión de mensajes de MQSeries o 17.3 Estructura de mensajes o 17.4 Visión general funcional de MQSeries + 17.4.1 Limitaciones + 17.4.2 Códigos de error o 17.5 Escenarios de aplicación + 17.5.1 Gestión básica de mensajes + 17.5.2 Envío de mensajes + 17.5.3 Recuperación de mensajes + 17.5.4 Conectividad de aplicación a aplicación + 17.5.4.1 Comunicaciones tipo petición y respuesta + 17.5.4.2 Publicación y suscripción o 17.6 enable_MQFunctions + enable_MQFunctions o 17.7 disable_MQFunctions + disable_MQFunctions ------------------------------------------------------------------------ Herramientas administrativas * Centro de control o 18.1 Posibilidad de administrar DB2 Server para servidores VSE y VM o 18.2 Soporte de Java 1.2 para el Centro de control o 18.3 Error "Atajo no válido" al utilizar la ayuda en línea en el sistema operativo Windows o 18.4 Centro de control Java en OS/2 o 18.5 Error "Acceso a archivo denegado" al intentar visualizar un trabajo completado en el Diario del sistema operativo Windows o 18.6 Multisite Update Test Connect o 18.7 Centro de control de DB2 para OS/390 o 18.8 Arreglo necesario del Centro de control para OS/390 o 18.9 Cambio en el diálogo Create Spatial Layer o 18.10 Información sobre resolución de problemas para el Centro de control de DB2 o 18.11 Resolución de problemas del Centro de control en sistemas basados en UNIX o 18.12 Posible problema de Infopops en OS/2 o 18.13 Ayuda para el parámetro de configuración jdk11_path o 18.14 Error del sistema Solaris (SQL10012N) al utilizar el Centro de Scripts o el Diario o 18.15 Ayuda para el archivo DPREPL.DFT o 18.16 Lanzamiento de más de un applet del Centro de control o 18.17 Ayuda en línea para el Centro de control al ejecutarlo como applet o 18.18 Ejecución del Centro de control en modalidad de applet (Windows 95) o 18.19 Cómo trabajar con resultados de consultas muy largos * Centro de información o 19.1 Error "Atajo no válido" en el sistema operativo Windows o 19.2 Apertura de enlaces externos de Web en Netscape Navigator cuando Netscape ya está abierto (sistemas basados en UNIX) o 19.3 Problemas al iniciar el Centro de información * Asistentes o 20.1 Establecimiento del tamaño de extensión en el Asistente para crear bases de datos o 20.2 Asistente MQSeries Assist o 20.3 Asistente OLE DB Assist ------------------------------------------------------------------------ Business Intelligence * Guía de aprendizaje de Business Intelligence o 21.1 Guía de aprendizaje de Business Intelligence revisada * Data Warehouse Center Administration Guide o 22.1 Resolución de problemas o 22.2 Configuración de Excel como fuente de depósito o 22.3 Definición y ejecución de procesos o 22.4 Diálogo Exportar metadatos o 22.5 Definición de valores para un programa de sometimiento de corriente de trabajos JCL de OS/390 (VWPMVS) o 22.6 Cambios en el apéndice Ejemplos de depósito de datos o 22.7 Mensajes del Centro de depósito de datos o 22.8 Creación de un perfil y carga de datos en el Servidor de integración OLAP de DB2 o 22.9 Utilización de Classic Connect con el Centro de depósito de datos o 22.10 Estructura del entorno del Centro de depósito de datos o 22.11 Utilización de Invert Transformer o 22.12 Acceso a datos de DB2 Versión 5 con el agente de depósito de DB2 Versión 7 + 22.12.1 Migración de servidores DB2 Versión 5 + 22.12.2 Cambio de la configuración del agente + 22.12.2.1 Agentes de depósito de UNIX + 22.12.2.2 Agentes de depósito de Microsoft Windows NT, Windows 2000 y OS/2 o 22.13 Programa de extracción de metadatos de IBM ERwin + 22.13.1 Contenido + 22.13.2 Requisitos de software + 22.13.3 Archivos de programa + 22.13.4 Creación de archivos de lenguaje de códigos + 22.13.5 Importación de un archivo de lenguaje de códigos al Centro de depósito de datos + 22.13.6 Importación de un archivo de lenguaje de códigos al Gestor de catálogos de información + 22.13.7 Resolución de problemas + 22.13.8 Correlación de ERwin con el Centro de depósito de datos + 22.13.8.1 Correlación de ERwin con el Gestor de catálogos de información o 22.14 Borrado de nombre y dirección en el Centro de depósito de datos + 22.14.1 + 22.14.1.1 Requisitos + 22.14.1.2 Componentes de Trillium Software System + 22.14.1.3 Utilización de Trillium Batch System con el Centro de depósito de datos + 22.14.1.4 Importación de metadatos de Trillium + 22.14.1.5 Correlación de los metadatos + 22.14.1.6 Restricciones + 22.14.2 Grabación de un archivo de JCL de Trillium Batch System + 22.14.3 Grabación de un archivo de script de Trillium Batch System en UNIX y Windows + 22.14.4 Definición de un paso de Trillium Batch System + 22.14.5 Utilización del programa de Trillium Batch System definido por el usuario + 22.14.6 Manejo de errores + 22.14.6.1 Códigos de retorno de error + 22.14.6.2 Archivo de anotaciones cronológicas o 22.15 Integración de MQSeries con el Centro de depósito de datos + 22.15.1 Creación de vistas para mensajes MQSeries + 22.15.1.1 Requisitos + 22.15.1.2 Restricciones + 22.15.1.3 Creación de una vista para mensajes MQSeries + 22.15.2 Importación de mensajes MQSeries y metadatos XML + 22.15.2.1 Requisitos + 22.15.2.2 Restricciones + 22.15.2.3 Importación de mensajes MQSeries y metadatos XML + 22.15.2.4 Utilización del programa de MQSeries definido por el usuario + 22.15.2.5 Códigos de retorno de error + 22.15.2.6 Archivo de registro de errores o 22.16 Soporte de Microsoft OLE DB y de Servicios de transacción de datos + 22.16.1 Creación de vistas para funciones de tablas de OLE DB + 22.16.2 Creación de vistas para paquetes de DTS o 22.17 Utilización de la confirmación incremental con sustitución o 22.18 Nombres de los archivos de datos de rastreo componentes o 22.19 Se necesita Open Client para fuentes Sybase en AIX y en Solaris Operating Environment o 22.20 Entradas de ejemplo corregidas o 22.21 Capítulo 3. Configuración de fuentes de depósito + 22.21.1 Correlación del campo Memorándum de Microsoft Access con una fuente de depósito o 22.22 Capítulo 10. Mantenimiento de la base de datos del depósito + 22.22.1 Enlace de tablas a un subtipo de paso para el programa DB2 UDB RUNSTATS o 22.23 Base de datos de control del depósito por omisión o 22.24 Ventana Gestión de bases de datos de control del depósito o 22.25 Cambio de la base de datos de control del depósito activa o 22.26 Creación e inicialización de una base de datos de control del depósito o 22.27 Creación pasos de SQL editados o 22.28 Cambio de fuentes y destinos en la ventana Modelador de procesos o 22.29 Adición de descripciones a objetos del Centro de depósito de datos o 22.30 Ejecución de Sample Contents o 22.31 Edición de una sentencia Create DDL de SQL o 22.32 Migración de vistas comerciales de Visual Warehouse o 22.33 Generación de tablas de destino y claves primarias o 22.34 Utilización de controladores ODBC Merant o 22.35 Nuevo controlador ODBC o 22.36 Definición de una fuente o destino de depósito en una base de datos de OS/2 o 22.37 Supervisión del estado de la base de datos de control de depósito o 22.38 Utilización de SQL Assist con la base de datos de ejemplo TBC_MD o 22.39 Utilización de la función FormatDate o 22.40 Cambio de valor de idioma o 22.41 Utilización del transformador Generar tabla de claves o 22.42 Mantenimiento de conexiones con las bases de datos o 22.43 Configuración de un cliente del Centro de depósito de datos remoto o 22.44 Definición de una fuente de depósito de DB2 para VM o 22.45 Definición de una tabla de destino de DB2 para VM o DB2 para VSE o 22.46 Habilitación del soporte de identificador delimitado o 22.47 Un error de Data Joiner indica un problema de vinculación o 22.48 Configuración y ejecución de la duplicación con el Centro de depósito de datos o 22.49 Consejos para la resolución de problemas o 22.50 Acceso a fuentes y destinos o 22.51 Adiciones a las fuentes de bases de datos soportadas que no son de IBM o 22.52 Creación manual de una fuente de datos en el Centro de depósito de datos o 22.53 Importación y exportación de metadatos utilizando el intercambio de metadatos de depósito común (CWMI) + 22.53.1 Introducción + 22.53.2 Importación de metadatos + 22.53.3 Actualización de los metadatos después de ejecutar el programa de utilidad de importación + 22.53.4 Exportación de metadatos o 22.54 Paso del programa de utilidad Runstats de OS/390 o 22.55 Paso del programa de utilidad Load de OS/390 o 22.56 Soporte XML para Common Warehouse Metamodel (CWM) o 22.57 Modelador de procesos o 22.58 Modelador de esquemas o 22.59 Campos obligatorios o 22.60 Mejoras en la lanzadera del Centro de depósito de datos o 22.61 Impresión de información de los pasos en un archivo * Data Warehouse Center Application Integration Guide o 23.1 Plantillas de metadatos adicionales + 23.1.1 Commit.tag + 23.1.1.1 Símbolos + 23.1.1.2 Ejemplos de valores + 23.1.2 ForeignKey.tag + 23.1.2.1 Símbolos + 23.1.2.2 Ejemplos de valores + 23.1.3 ForeignKeyAdditional.tag + 23.1.3.1 Símbolos + 23.1.3.2 Ejemplos de valores + 23.1.4 PrimaryKey.tag + 23.1.4.1 Símbolos + 23.1.4.2 Ejemplos de valores + 23.1.5 PrimaryKeyAdditional.tag + 23.1.5.1 Símbolos + 23.1.5.2 Ejemplos de valores * Ayuda en línea del Centro de depósito de datos o 24.1 Definición de tablas o vistas para la duplicación o 24.2 Ejecución de VWP de Essbase con el Agente de AS/400 o 24.3 Utilización de la ventana Publicar metadatos del Centro de depósito de datos y la ventana Propiedades asociadas o 24.4 Claves foráneas o 24.5 Cuadernos de duplicación o 24.6 Importación de un lenguaje de códigos o 24.7 Enlaces para añadir datos o 24.8 Importación de tablas o 24.9 Corrección de la ayuda en línea de RUNSTATS y REORGANIZE TABLE o 24.10 Página Notificación (Cuaderno Propiedades del depósito y Cuaderno Planificación) o 24.11 Campo Módulo agente del cuaderno Sitios agente * Kit de iniciación de DB2 OLAP o 25.1 Sitio Web de OLAP Server o 25.2 Niveles de servicio de sistemas operativos soportados o 25.3 Realización de la configuración del Kit de iniciación de DB2 OLAP en UNIX o 25.4 Configuración de ODBC para el Kit de iniciación de OLAP + 25.4.1 Configuración de fuentes de datos en sistemas UNIX + 25.4.1.1 Configuración de variables de entorno de ODBC + 25.4.1.2 Edición del archivo odbc.ini + 25.4.1.3 Adición de una fuente de datos a un archivo odbc.ini + 25.4.1.4 Ejemplo de valores de ODBC para DB2 + 25.4.1.5 Ejemplo de valores de ODBC para Oracle + 25.4.2 Configuración del Catálogo de metadatos de OLAP en sistemas UNIX + 25.4.3 Configuración de fuentes de datos en sistemas Windows + 25.4.4 Configuración del Catálogo de metadatos de OLAP en sistemas Windows + 25.4.5 Después de configurar una fuente de datos o 25.5 Inicio de una sesión desde el escritorio del Kit de iniciación de OLAP + 25.5.1 Ejemplo de inicio de sesión del Kit de iniciación o 25.6 Creación y configuración manual de las bases de datos de ejemplo para el Kit de iniciación de OLAP o 25.7 Migración de aplicaciones al Kit de iniciación de OLAP Versión 7.2 o 25.8 Problemas y limitaciones conocidos o 25.9 Falta de archivos EQD del Complemento de hoja de cálculo de OLAP * Information Catalog Manager Administration Guide o 26.1 Programa de utilidad Inicialización del Gestor de catálogos de información + 26.1.1 + 26.1.2 Temas sobre licencia + 26.1.3 Temas sobre la instalación o 26.2 Acceso a catálogos de información de DB2 Versión 5 con el Gestor de catálogos de información de DB2 Versión 7 o 26.3 Configuración de un Catálogo de información o 26.4 Intercambio de metadatos con otros productos o 26.5 Intercambio de metadatos utilizando el mandato flgnxoln o 26.6 Intercambio de metadatos utilizando el mandato MDISDGC o 26.7 Invocación de programas * Information Catalog Manager Programming Guide and Reference o 27.1 Códigos de razón del Gestor de catálogos de información * Information Catalog Manager User's Guide * Gestor de catálogos de información: Mensajes en línea o 29.1 Mensaje FLG0260E o 29.2 Mensaje FLG0051E o 29.3 Mensaje FLG0003E o 29.4 Mensaje FLG0372E o 29.5 Mensaje FLG0615E * Gestor de catálogos de información: Ayuda en línea o 30.1 Gestor de catálogos de información para la Web * DB2 Warehouse Manager Installation Guide o 31.1 Requisitos de software para transformadores de almacén de datos o 31.2 Conector para SAP R/3 + 31.2.1 Requisitos previos a la instalación o 31.3 Conector para la Web + 31.3.1 Requisitos previos a la instalación * Query Patroller Administration Guide o 32.1 El cliente de DB2 Query Patroller es un componente separado o 32.2 Migración desde la Versión 6 de DB2 Query Patroller utilizando dqpmigrate o 32.3 Habilitación de la Gestión de consultas o 32.4 Ubicación del espacio de tabla para tablas de control o 32.5 Nuevos parámetros para el mandato dqpstart o 32.6 Nuevo parámetro para el mandato iwm_cmd o 32.7 Nueva variable de registro: DQP_RECOVERY_INTERVAL o 32.8 Inicio del Administrador de consultas o 32.9 Administración de usuarios o 32.10 Creación de una cola de trabajos o 32.11 Utilización de la interfaz de línea de mandatos o 32.12 Notas sobre Query Enabler o 32.13 DB2 Query Patroller Tracker puede devolver una página de columnas en blanco o 32.14 Query Patroller y Herramientas de duplicación o 32.15 Apéndice B. Resolución de problemas de clientes de DB2 Query Patroller ------------------------------------------------------------------------ Desarrollo de aplicaciones * Administrative API Reference o 33.1 db2ArchiveLog (nueva API) + db2ArchiveLog o 33.2 db2ConvMonStream o 33.3 db2DatabasePing (nueva API) + db2DatabasePing - Base de datos Ping o 33.4 db2HistData o 33.5 db2HistoryOpenScan o 33.6 db2XaGetInfo (nueva API) + db2XaGetInfo - Obtener información para el gestor de recursos o 33.7 db2XaListIndTrans (nueva API que reemplaza a sqlxphqr) + db2XaListIndTrans - Listar transacciones dudosas o 33.8 db2GetSnapshot - Obtener instantánea o 33.9 Forget Log Record o 33.10 sqlaintp - Obtener mensaje de error o 33.11 sqlbctcq - Cerrar consulta de contenedor de espacio de tabla o 33.12 sqlubkp - Copia de seguridad de la base de datos o 33.13 sqlureot - Reorganizar tabla o 33.14 sqlurestore - Restaurar base de datos o 33.15 Error de documentación sobre el soporte de memoria compartida ampliada AIX (EXTSHM) o 33.16 SQLFUPD + 33.16.1 locklist o 33.17 SQLEDBDESC o 33.18 Error de documentación de SQLFUPD * Application Building Guide o 34.1 Capítulo 1. Introducción + 34.1.1 Software soportado + 34.1.2 Programas de ejemplo o 34.2 Capítulo 3. Información general para crear aplicaciones de DB2 + 34.2.1 Archivos de creación, makefiles y programas de utilidad de comprobación de errores o 34.3 Capítulo 4. Creación de aplicaciones y applets de Java + 34.3.1 Establecimiento del entorno + 34.3.1.1 Requisito de nivel de JDK en OS/2 + 34.3.1.2 Java2 en HP-UX o 34.4 Capítulo 5. Creación de procedimientos de SQL + 34.4.1 Establecimiento del entorno de procedimientos de SQL + 34.4.2 Establecimiento de las variables de entorno del compilador + 34.4.3 Personalización del mandato de compilación + 34.4.4 Conservación de archivos intermedios + 34.4.5 Copia de seguridad y restauración + 34.4.6 Creación de procedimientos de SQL + 34.4.7 Llamada de procedimientos almacenados + 34.4.8 Distribución de procedimientos de SQL compilados o 34.5 Capítulo 7. Creación de aplicaciones HP-UX. + 34.5.1 HP-UX C + 34.5.2 HP-UX C++ o 34.6 Capítulo 9. Creación de aplicaciones OS/2 + 34.6.1 VisualAge C++ para OS/2 Versión 4.0 o 34.7 Capítulo 10. Creación de aplicaciones PTX + 34.7.1 ptx/C++ o 34.8 Capítulo 12. Creación de aplicaciones Solaris + 34.8.1 SPARCompiler C++ o 34.9 Capítulo 13. Creación de aplicaciones para sistemas operativos Windows de 32 bits + 34.9.1 VisualAge C++ Versioó 4.0 * Application Development Guide o 35.1 Capítulo 2. Codificación de una aplicación de DB2 + 35.1.1 Activación IBM DB2 Universal Database Project y Tool Add-ins para Microsoft Visual C++ o 35.2 Capítulo 6. Técnicas comunes de aplicación de DB2 + 35.2.1 Generación de valores secuenciales + 35.2.1.1 Control del comportamiento de secuencias + 35.2.1.2 Mejora del rendimiento con objetos de secuencia + 35.2.1.3 Comparación de objetos de secuencia y columnas de identidad o 35.3 Capítulo 7. Procedimientos almacenados + 35.3.1 El Tipo DECIMAL no se soporta en rutinas Java de Linux + 35.3.2 Utilización de cursores en procedimientos almacenados repetitivos + 35.3.3 Escritura de procedimientos almacenados de automatización OLE o 35.4 Capítulo 12. Trabajar con objetos completos: Tipos estructurados definidos por el usuario + 35.4.1 Inserción de atributos de tipo estructurado en columnas o 35.5 Capítulo 13. Utilización de objetos grandes (LOB) + 35.5.1 Soporte de objetos grandes (LOB) en sistemas de bases de datos federados + 35.5.1.1 Cómo DB2 recupera los LOB + 35.5.1.2 Cómo pueden las aplicaciones utilizar localizadores de LOB + 35.5.1.3 Restricciones de los LOB + 35.5.1.4 Correlaciones entre tipos de datos LOB y no LOB + 35.5.2 Ajuste del sistema o 35.6 Parte 5. Consideraciones sobre programación de DB2 + 35.6.1 IBM DB2 OLE DB Provider o 35.7 Capítulo 20. Programación en C y C++ + 35.7.1 Tipos de C/C++ para procedimientos almacenados, funciones y métodos o 35.8 Capítulo 21. Programación en Java + 35.8.1 Signatura del método Java en procedimientos y funciones PARAMETER STYLE JAVA + 35.8.2 Conexión al servidor de applet de JDBC o 35.9 Apéndice B. Programas de ejemplo * CLI Guide and Reference o 36.1 Vinculación de programas de utilidad para bases de datos utilizando el Cliente de tiempo de ejecución o 36.2 Utilización de SQL estático en aplicaciones de la CLI o 36.3 Limitaciones de perfil estático JDBC/ODBC/CLI o 36.4 Transformaciones de ADT o 36.5 Capítulo 3. Utilización de características avanzadas + 36.5.1 Cómo escribir aplicaciones de varias hebras + 36.5.2 Cursores desplazables + 36.5.2.1 Soporte de cursor desplazable para OS/390 en el extremo del servidor + 36.5.3 Utilización de SQL compuesto + 36.5.4 Utilización de procedimientos almacenados + 36.5.4.1 Escritura de un procedimiento almacenado en CLI + 36.5.4.2 Procedimientos almacenados de CLI y vinculación automática o 36.6 Capítulo 4. Configuración de CLI/ODBC y ejecución de aplicaciones de ejemplo + 36.6.1 Palabras clave de configuración o 36.7 Capítulo 5. Funciones de CLI de DB2 + 36.7.1 SQLBindFileToParam - Vincular referencia de archivo LOB a parámetro de LOB + 36.7.2 SQLNextResult - Asociar el conjunto de resultados siguiente con otro descriptor de contexto de sentencias + 36.7.2.1 Objetivo + 36.7.2.2 Sintaxis + 36.7.2.3 Argumentos de función + 36.7.2.4 Utilización + 36.7.2.5 Códigos de retorno + 36.7.2.6 Diagnósticos + 36.7.2.7 Restricciones + 36.7.2.8 Referencias o 36.8 Apéndice D. Funciones escalares ampliadas + 36.8.1 Funciones de fecha y hora o 36.9 Apéndice K. Utilización del recurso de rastreo CLI/ODBC/JDBC de DB2 * Consulta de mensajes o 37.1 Obtención de ayuda de mensajes y SQLSTATE o 37.2 Cambio de recorrelación de SQLCODE en DB2 Connect o 37.3 Mensajes nuevos y modificados + 37.3.1 Mensajes de la Interfaz de nivel de llamadas (CLI) + 37.3.2 Mensajes de DB2 + 37.3.3 Mensajes de DBI + 37.3.4 Mensajes del Centro de depósito de datos (DWC) + 37.3.5 Mensajes de SQL o 37.4 SQLSTATES corregidos * Consulta de SQL o 38.1 La Consulta de SQL se proporciona en un archivo PDF o 38.2 Capítulo 3. Elementos de lenguaje + 38.2.1 Convenios de denominación y calificaciones implícitas de nombres de objetos + 38.2.2 Asignaciones de DATALINK + 38.2.3 Expresiones + 38.2.3.1 Diagrama de sintaxis + 38.2.3.2 Funciones de OLAP + 38.2.3.3 Referencia a secuencia o 38.3 Capítulo 4. Funciones + 38.3.1 Cómo habilitar las nuevas funciones y procedimientos + 38.3.2 Funciones escalares + 38.3.2.1 ABS o ABSVAL + 38.3.2.2 DECRYPT_BIN y DECRYPT_CHAR + 38.3.2.3 ENCRYPT + 38.3.2.4 GETHINT + 38.3.2.5 IDENTITY_VAL_LOCAL + 38.3.2.6 LCASE y UCASE (Unicode) + 38.3.2.7 MQPUBLISH + 38.3.2.8 MQREAD + 38.3.2.9 MQRECEIVE + 38.3.2.10 MQSEND + 38.3.2.11 MQSUBSCRIBE + 38.3.2.12 MQUNSUBSCRIBE + 38.3.2.13 MULTIPLY_ALT + 38.3.2.14 REC2XML + 38.3.2.15 ROUND + 38.3.2.16 WEEK_ISO + 38.3.3 Funciones de tabla + 38.3.3.1 MQREADALL + 38.3.3.2 MQRECEIVEALL + 38.3.4 Procedimientos + 38.3.4.1 GET_ROUTINE_SAR + 38.3.4.2 PUT_ROUTINE_SAR o 38.4 Capítulo 5. Consultas + 38.4.1 sentencia-select/diagrama de sintaxis + 38.4.2 sentencia-select/cláusula-fetch-first o 38.5 Capítulo 6. Sentencias de SQL + 38.5.1 Soporte para actualizar la clave de particionamiento + 38.5.1.1 Sentencia: ALTER TABLE + 38.5.1.2 Sentencia: CREATE TABLE + 38.5.1.3 Sentencia: DECLARE GLOBAL TEMPORARY TABLE PARTITIONING KEY (nombre-columna,...) + 38.5.1.4 Sentencia: UPDATE + 38.5.2 Claves de índice mayores para bases de datos Unicode + 38.5.2.1 ALTER TABLE + 38.5.2.2 CREATE INDEX + 38.5.2.3 CREATE TABLE + 38.5.3 ALTER SEQUENCE + ALTER SEQUENCE + 38.5.4 ALTER TABLE + 38.5.5 SQL compuesto (intercalado) + 38.5.6 Sentencia compuesta (dinámica) + Sentencia compuesta (dinámica) + 38.5.7 CREATE FUNCTION (fuente o plantilla) + 38.5.8 CREATE FUNCTION (función escalar, tabla o fila de SQL) + 38.5.9 CREATE METHOD + CREATE METHOD + 38.5.10 CREATE SEQUENCE + CREATE SEQUENCE + 38.5.11 CREATE TRIGGER + CREATE TRIGGER + 38.5.12 CREATE WRAPPER + 38.5.13 DECLARE CURSOR + 38.5.14 DELETE + 38.5.15 DROP + 38.5.16 GRANT (privilegios para secuencias) + GRANT (privilegios para secuencias) + 38.5.17 INSERT + 38.5.18 SELECT INTO + 38.5.19 SET ENCRYPTION PASSWORD + SET ENCRYPTION PASSWORD + 38.5.20 SET variable-transición + SET Variable + 38.5.21 UPDATE o 38.6 Capítulo 7. Procedimientos de SQL (ahora llamado "Sentencias de control de SQL") + 38.6.1 Sentencia de procedimiento SQL + Sentencia de procedimiento SQL + 38.6.2 FOR + FOR + 38.6.3 Sentencia compuesta (ahora pasa a llamarse "Sentencia compuesta (procedimiento)" + 38.6.4 RETURN + RETURN + 38.6.5 SIGNAL + SIGNAL o 38.7 Apéndice A. Límites de SQL o 38.8 Apéndice D. Vistas de catálogo + 38.8.1 SYSCAT.SEQUENCES * DB2 Stored Procedure Builder o 39.1 Soporte de Java 1.2 para DB2 Stored Procedure Builder o 39.2 Depuración remota de procedimientos almacenados de DB2 o 39.3 Creación de procedimientos de SQL en las plataformas Windows, OS/2 o UNIX o 39.4 Utilización de DB2 Stored Procedure Builder en la plataforma Solaris o 39.5 Problemas y limitaciones conocidos o 39.6 Utilización de DB2 Stored Procedure Builder con el entorno nacional de chino tradicional o 39.7 Instalaciones de UNIX (AIX, Sun Solaris, Linux) y Stored Procedure Builder o 39.8 Creación de procedimientos almacenados de SQL en OS/390 o 39.9 Depuración de procedimientos almacenados de SQL o 39.10 Exportación de procedimientos almacenados de Java o 39.11 Inserción de procedimientos almacenados en OS/390 o 39.12 Establecimiento de opciones de creación para procedimientos almacenados de SQL en un servidor de estaciones de trabajo o 39.13 Renovación automática del espacio de direcciones WLM para procedimientos almacenados creados en OS/390 o 39.14 Desarrollo de procedimientos almacenados Java en OS/390 o 39.15 Creación de una función definida por el usuario (UDF) de tablas DB2 para MQ Series y OLE DB * Actualizaciones de Unicode o 40.1 Introducción + 40.1.1 Bases de datos y aplicaciones Unicode de DB2 + 40.1.2 Actualizaciones de documentación o 40.2 Consulta de SQL + 40.2.1 Capítulo 3 Elementos de lenguaje + 40.2.1.1 Promoción de tipos de datos + 40.2.1.2 Difusión entre tipos de datos + 40.2.1.3 Asignaciones y comparaciones + 40.2.1.4 Normas para los tipos de datos de resultado + 40.2.1.5 Normas para las conversiones de serie + 40.2.1.6 Expresiones + 40.2.1.7 Predicados + 40.2.2 Capítulo 4 Funciones + 40.2.2.1 Funciones escalares o 40.3 CLI Guide and Reference + 40.3.1 Capítulo 3. Utilización de características avanzadas + 40.3.1.1 Escritura de una aplicación Unicode de DB2 CLI + 40.3.2 Apéndice C. DB2 CLI y ODBC + 40.3.2.1 Aplicaciones Unicode de ODBC o 40.4 Data Movement Utilities Guide and Reference + 40.4.1 Apéndice C. Formatos de archivo de programa de utilidad de Exportación/Importación/Carga ------------------------------------------------------------------------ Conexión con sistemas principales * Suplemento de conectividad o 41.1 Configuración del servidor de aplicaciones en un entorno VM o 41.2 Valores de PATCH1 y PATCH2 para configuración de CLI/ODBC/JDBC ------------------------------------------------------------------------ Información general * Información general o 42.1 DB2 Universal Database Business Intelligence Quick Tour o 42.2 DB2 Everywhere ahora es DB2 Everyplace o 42.3 Ratón necesario o 42.4 Intento de vinculación desde los resultados de Cliente de tiempo de ejecución de DB2 en un error "Archivos de vinculación no encontrados" o 42.5 Search Discovery o 42.6 Ventanas de memoria para HP-UX 11 o 42.7 Acción del usuario para la anomalía de dlfm client_conf o 42.8 En las raras ocasiones en que el daemon de copia no se detenga con dlfm stop o 42.9 Desinstalación de DB2 DFS Client Enabler o 42.10 Autentificación de cliente en Windows NT o 42.11 AutoLoader puede colgarse durante un fork o 42.12 Restauración de DATALINK o 42.13 Definir el ID de usuario y la contraseña en IBM Communications Server para Windows NT (CS/NT) + 42.13.1 Definición de nodo o 42.14 Restricciones para sistemas federados o 42.15 Restricción para DataJoiner o 42.16 Gestor de catálogos de información en hebreo para Windows NT o 42.17 Soporte de Microsoft SNA Server y SNA Multisite Update (Confirmación en dos fases) o 42.18 El SPM de SNA de DB2 no se inicia después de rearrancar Windows o 42.19 Valor de entorno nacional para DB2 Administration Server o 42.20 Los atajos no funcionan o 42.21 Requisitos de la cuenta de servicio para DB2 en Windows NT y Windows 2000 o 42.22 Privilegio EXECUTE perdido para los usuarios de Query Patroller creados con la versión 6 o 42.23 Restricciones de Query Patroller o 42.24 Necesidad de confirmar todos los programas definidos por el usuario que se utilizarán en el Centro de depósito de datos (DWC) o 42.25 Nueva opción para la exportación de la línea de mandatos del Centro de depósito de datos o 42.26 Las API de servicios de copia de seguridad (XBSA) o 42.27 Agente de OS/390 + 42.27.1 Visión general de instalación + 42.27.2 Detalles sobre la instalación + 42.27.3 Configuración de funciones de agente adicionales + 42.27.4 Planificación de pasos de depósito con el programa desencadenante (XTClient) + 42.27.5 Transformadores + 42.27.6 Acceso a bases de datos fuera de la familia DB2 + 42.27.7 Ejecución de programas de utilidad de DB2 para OS/390 + 42.27.8 Duplicación + 42.27.9 Anotación cronológica del agente o 42.28 Colocación en antememoria en el cliente en Windows NT o 42.29 Productos de prueba en los CD-ROM de UNIX Enterprise Edition o 42.30 Productos de prueba en los CD-ROM de UNIX de DB2 Connect Enterprise Edition o 42.31 Descarte de Data Links Manager o 42.32 La desinstalación de los componentes de DLFM utilizando la SMIT puede eliminar catálogos de archivos adicionales o 42.33 Error SQL1035N al utilizar CLP en Windows 2000 o 42.34 Mejora de SQL Assist o 42.35 Integración de escritorios Gnome y KDE para DB2 en Linux o 42.36 Ejecución de DB2 bajo Windows 2000 Terminal Server, Modalidad de administración o 42.37 Ayuda en línea para los mandatos de copia de seguridad y restauración o 42.38 "Warehouse Manager" debe ser "DB2 Warehouse Manager" ------------------------------------------------------------------------ Información adicional * Información adicional o 43.1 Soporte en línea de DB2 Universal Database y DB2 Connect o 43.2 Revista de DB2 ------------------------------------------------------------------------ Apéndices * Apéndice A. Avisos o A.1 Marcas registradas * Índice ------------------------------------------------------------------------ ¡Bienvenido a DB2 Universal Database Versión 7! Nota: Establezca el font en monospace para ver mejor estas Notas del release. El sitio de Soporte de DB2 Universal Database y DB2 Connect se actualiza regularmente. Compruebe la dirección http://www.ibm.com/software/data/db2/udb/winos2unix/support para ver la información más actualizada. Este archivo contiene información acerca de los productos siguientes que no estaba disponible cuando se imprimieron los manuales de DB2: IBM DB2 Universal Database Personal Edition, Versión 7.2 IBM DB2 Universal Database Workgroup Edition, Versión 7.2 IBM DB2 Universal Database Enterprise Edition, Versión 7.2 IBM DB2 Data Links Manager, Versión 7.2 IBM DB2 Universal Database Enterprise - Extended Edition, Versión 7.2 IBM DB2 Query Patroller, Versión 7.2 IBM DB2 Personal Developer's Edition, Versión 7.2 IBM DB2 Universal Developer's Edition, Versión 7.2 IBM DB2 Data Warehouse Manager, Versión 7.2 IBM DB2 Relational Connect, Versión 7.2 Se proporciona un archivo separado de Notas del release, instalado como READCON.TXT, para los productos siguientes: IBM DB2 Connect Personal Edition, Versión 7.2 IBM DB2 Connect Enterprise Edition, Versión 7.2 La publicación Novedades contiene una visión general de algunas de las principales mejoras en DB2 de la Versión 7.2. Si no tiene la versión 7.2 del manual Novedades, puede consultarlo y bajarlo de http://www.ibm.com/software/data/db2/udb/winos2unix/support. ------------------------------------------------------------------------ Notas especiales ------------------------------------------------------------------------ Notas especiales ------------------------------------------------------------------------ 1.1 Características de acceso de DB2 UDB Versión 7 La familia de productos DB2 UDB incluye varias características que hacen que los productos sean más accesibles a las personas con discapacidad. Estas características incluyen: * Características que facilitan la entrada por teclado y la navegación * Características que mejoran las propiedades de visualización * Opciones para indicaciones de alerta sonoras y visuales * Compatibilidad con tecnologías de asistencia * Compatibilidad con características de acceso del sistema operativo * Formatos de documentación accesibles 1.1.1 Entrada por teclado y navegación 1.1.1.1 Entrada por teclado El Centro de control de DB2 se puede utilizar usando únicamente el teclado. Los elementos de menú y controles proporcionan teclas de acceso que permiten a los usuarios activar un control o seleccionar un elemento de menú directamente desde el teclado. Estas teclas vienen documentadas por sí mismas, es decir las teclas de acceso están subrayadas en el control o menú en el que aparecen. 1.1.1.2 Foco del teclado En sistemas basados en UNIX, la posición del foco del teclado está resaltado, indicando qué área de la ventana está activa y el lugar donde tendrán efecto las pulsaciones del usuario. 1.1.2 Características para visualización accesible El Centro de control de DB2 tiene varias características que mejoran la interfaz de usuario y mejoran el acceso para los usuarios con una visión reducida. Estas mejoras de acceso incluyen el soporte de valores de alto contraste y propiedades de font personalizables. 1.1.2.1 Modalidad de alto contraste La interfaz del Centro de control soporta la opción de modalidad de alto contraste proporcionada por el sistema operativo. Esta característica ayuda a los usuarios que necesitan un mayor grado de contraste entre los colores del fondo y del primer plano. 1.1.2.2 Valores de font La interfaz del Centro de control permite a los usuarios seleccionar el color, el tamaño y el font para el texto de los menús y de las ventanas de diálogo. 1.1.2.3 No dependencia del color No es necesario que los usuarios distingan entre los colores para utilizar ninguna de las funciones de este producto. 1.1.3 Indicaciones de alerta alternativas El usuario puede optar por recibir alertas mediante indicaciones sonoras o visuales. 1.1.4 Compatibilidad con tecnologías de asistencia La interfaz del Centro de control de DB2 es compatible con aplicaciones de lector de pantalla como por ejemplo Via Voice. Cuando se está en modalidad de aplicación, la interfaz del Centro de control tiene las propiedades necesarias para que estas aplicaciones de acceso hagan que la información de la pantalla esté disponible para los usuarios ciegos. 1.1.5 Documentación accesible La documentación para la familia de productos DB2 está disponible en formato HTML. Esto permite que los usuarios vean la documentación de acuerdo con las preferencias de visualización establecidas en sus navegadores. También permite utilizar lectores de pantalla y otras tecnologías de asistencia. ------------------------------------------------------------------------ 1.2 Nivel de parche necesario adicional para Solaris DB2 Universal Database Versión 7 para Solaris Versión 2.6 necesita el parche 106285-02 o superior, además de los parches que se mencionan en el manual DB2 para UNIX Guía rápida de iniciación. ------------------------------------------------------------------------ 1.3 CPU soportadas en DB2 Versión 7 para Solaris Las versiones de CPU anteriores a UltraSparc no están soportadas. ------------------------------------------------------------------------ 1.4 Problemas al añadir nodos a una base de datos particionada Cuando se añaden nodos a una base de datos particionada que tiene uno o más espacios de tabla temporal del sistema con un tamaño de página diferente del tamaño de página por omisión (4 KB), puede recibir este mensaje de error: "SQL6073N Ha fallado la operación de añadir nodo" y un SQLCODE. Esto se produce porque cuando se crea el nodo sólo existe la agrupación de almacenamiento intermedio IBMDEFAULTBP con un tamaño de página de 4 KB. Por ejemplo, puede utilizar el mandato db2start para añadir un nodo a la base de datos particionada actual: DB2START NODENUM 2 ADDNODE HOSTNAME newhost PORT 2 Si la base de datos particionada tiene espacios de tabla temporal del sistema con el tamaño de página por omisión, se devuelve el siguiente mensaje: SQL6075W La operación Iniciar gestor de bases de datos ha añadido satisfactoriamente el nodo. El nodo no está activo hasta que se detienen todos los nodos y se vuelve a iniciar. Sin embargo, si la base de datos particionada tiene espacios de tabla temporal del sistema que no tienen el tamaño de página por omisión, se devuelve el mensaje siguiente: SQL6073N Ha fallado la operación de nodo. SQLCODE = "<-902>" En un ejemplo similar, puede utilizar el mandato ADD NODE después de actualizar manualmente el archivo db2nodes.cfg con la nueva descripción de nodo. Después de editar el archivo y ejecutar el mandato ADD NODE con una base de datos particionada que tiene espacios de tabla temporal del sistema con el tamaño de página por omisión, se devuelve el mensaje siguiente: DB20000I El mandato ADD NODE se completó satisfactoriamente. Sin embargo, si la base de datos particionada tiene espacios de tabla temporal del sistema que no tienen el tamaño de página por omisión, se devuelve el mensaje siguiente: SQL6073N Ha fallado la operación de nodo. SQLCODE = "<-902>" Un modo de evitar los problemas descritos previamente consiste en ejecutar: DB2SET DB2_HIDDENBP=16 antes de emitir db2start o el mandato ADD NODE. Esta variable de registro permite que DB2 asigne agrupaciones de almacenamientos intermedios ocultas de 16 páginas cada una utilizando un tamaño de página diferente del valor por omisión. Esto permite que la operación ADD NODE se complete satisfactoriamente. Otro modo de evitar estos problemas consiste en especificar la cláusula WITHOUT TABLESPACES en ADD NODE o el mandato db2start. Después de esto, deberá crear las agrupaciones de almacenamientos intermedios utilizando la sentencia CREATE BUFFERPOOL y asociar los espacios de tabla temporal del sistema con la agrupación de almacenamientos intermedios utilizando la sentencia ALTER TABLESPACE. Cuando se añaden nodos a un grupo de nodos existentes que tienen uno o más espacios de tabla con un tamaño de página diferente del tamaño de página por omisión (4 KB), puede recibir el mensaje de error: "SQL0647N La agrupación de almacenamientos intermedios "" no está activa actualmente.". Esto se produce porque las agrupaciones de almacenamientos intermedios que no tienen el tamaño de página por omisión creadas en el nuevo nodo no se han activado para los espacios de tabla. Por ejemplo, puede utilizar la sentencia ALTER NODEGROUP para añadir un nodo a un grupo de nodos: DB2START CONNECT TO mpp1 ALTER NODEGROUP ng1 ADD NODE (2) Si el grupo de nodos tiene espacios de tabla con el tamaño de página por omisión, se devuelve el mensaje siguiente: SQL1759W Es necesario redistribuir el grupo de nodos para cambiar la posición de los datos para que los objetos del grupo de nodos "" incluyan algunos nodos añadidos o excluyan algunos nodos eliminados. Sin embargo, si el grupo de nodos tiene espacios de tabla que no tienen el tamaño de página por omisión, el mensaje que se devuelve es: SQL0647N La agrupación de almacenamientos intermedios "" no está activa actualmente. Un modo de evitar este problema consiste en crear agrupaciones de almacenamientos intermedios para cada tamaño de página y, a continuación, volver a conectar con la base de datos antes de emitir la sentencia ALTER NODEGROUP: DB2START CONNECT TO mpp1 CREATE BUFFERPOOL bp1 SIZE 1000 PAGESIZE 8192 CONNECT RESET CONNECT TO mpp1 ALTER NODEGROUP ng1 ADD NODE (2) Un segundo modo de evitar el problema consiste en ejecutar: DB2SET DB2_HIDDENBP=16 antes de emitir el mandato db2start y las sentencias CONNECT y ALTER NODEGROUP. Otro problema se puede producir cuando se utiliza la sentencia ALTER TABLESPACE para añadir un espacio de tabla a un nodo. Por ejemplo: DB2START CONNECT TO mpp1 ALTER NODEGROUP ng1 ADD NODE (2) WITHOUT TABLESPACES ALTER TABLESPACE ts1 ADD ('ts1') ON NODE (2) Estas series de mandatos y sentencias generan el mensaje de error SQL0647N (no el mensaje esperado SQL1759W). Para completar este cambio correctamente, debe volver a conectar con la base de datos después de la sentencia ALTER NODEGROUP... WITHOUT TABLESPACES. DB2START CONNECT TO mpp1 ALTER NODEGROUP ng1 ADD NODE (2) WITHOUT TABLESPACES CONNECT RESET CONNECT TO mpp1 ALTER TABLESPACE ts1 ADD ('ts1') ON NODE (2) Otro modo de evitar el problema consiste en ejecutar: DB2SET DB2_HIDDENBP=16 antes de emitir el mandato db2start y las sentencias CONNECT, ALTER NODEGROUP y ALTER TABLESPACE. ------------------------------------------------------------------------ 1.5 Errores durante la migración Durante la migración, las entradas erróneas en el archivo db2diag.log (base de datos no migrada) aparecen incluso cuando la migración es satisfactoria y se pueden ignorar. ------------------------------------------------------------------------ 1.6 Arreglo de entorno local chino en Red Flag Linux Si está utilizando Red Flag Linux Server Versión 1.1 en chino simplificado, póngase en contacto con Red Flag para recibir el arreglo de entorno nacional de chino simplificado. Sin el arreglo de entorno nacional de chino simplificado para la Versión 1.1, DB2 no reconoce que la página de códigos del chino simplificado es 1386. ------------------------------------------------------------------------ 1.7 La instalación de DB2 puede colgarse si no hay conectada ninguna unidad extraíble Durante la instalación de DB2, la instalación puede quedarse colgada después de seleccionar el tipo de instalación cuando se utiliza un sistema con una unidad extraíble que no esté conectada. Para solucionar este problema, ejecute setup, especificando la opción -a: setup.exe -a ------------------------------------------------------------------------ 1.8 Valor de entorno nacional adicional para DB2 para Linux en el entorno Linux en japonés y chino simplificado Cuando se desea utilizar las herramientas de la GUI de Java, se requiere un valor de entorno nacional adicional, como por ejemplo el Centro de control, en un sistema Linux en japonés o chino simplificado. Los caracteres en japonés y chino no se pueden visualizar correctamente sin este valor. Incluya el valor siguiente en el perfil de usuario o ejecútelo desde la línea de mandatos antes de cada invocación al Centro de control. Para un sistema en japonés: export LC_ALL=ja_JP Para un sistema en chino simplificado: export LC_ALL=zh_CN ------------------------------------------------------------------------ 1.9 Problema del centro de control de Microsoft Internet Explorer Hay un problema provocado por los valores de las opciones de seguridad de Internet Explorer (IE). El centro de control utiliza espacios no firmados, por tanto el gestor de seguridad inhabilita el acceso a la información del sistema. Para eliminar este problema, reconfigure las opciones de seguridad de IE de la forma siguiente: 1. Seleccione Opciones de Internet en el menú Ver (IE4) o en el menú Herramientas (IE5). 2. En la página Seguridad, seleccione Zona de ubicaciones fiables. 3. Pulse Añadir ubicaciones.... 4. Añada el servidor de la web del centro de control a la lista de ubicaciones fiables. Si el servidor de la web del centro de control está en el mismo dominio, puede serle útil añadir sólo el nombre del servicio de la web (sin el nombre de dominio). Por ejemplo: http://ccWebServer.ccWebServerDomain http://ccWebServer 5. Pulse en Aceptar. 6. Pulse sobre Custom Level.... 7. Desplácese a Java --> Java Permissions y seleccione Custom. 8. Pulse Java Custom Settings.... 9. Seleccione la página Edit Permissions. 10. Desplácese hacia abajo hasta Unsigned Content --> Ejecute Unsigned Content --> Additional Unsigned Permissions --> System Information y seleccione Enable. 11. Pulse Aceptar en cada ventana abierta. ------------------------------------------------------------------------ 1.10 Incompatibilidad entre Information Catalog Manager y Sybase en el entorno Windows La instalación de Information Catalog Manager (ICM) Versión 7 en la misma máquina Windows NT o Windows 2000 con Sybase Open Client da como resultado un error y Sybase Utilities deja de funcionar. Se produce un mensaje de error parecido al siguiente: No se ha podido inicializar LIBTCL.DLL. Por favor, asegúrese de que la variable de entorno SYBASE se haya establecido correctamente. Evite esta situación eliminando el parámetro de entorno LC_ALL a partir de los parámetros del entorno de Windows. LC_ALL es un parámetro de categoría de entorno nacional. Las categorías de entorno nacional son constantes evidentes que utilizan las rutinas de localización para especificar la parte de la información de entorno nacional que ha de utilizar un programa. El entorno nacional hace referencia a la localidad (o país) para el que pueden personalizarse determinados aspectos de su programa. Las áreas que dependen del entorno nacional incluyen, por ejemplo, el formato de las fechas o el formato de presentación de los valores monetarios. LC_ALL afecta a todo comportamiento específico de entorno nacional (todas las categorías). Si elimina el parámetro de entorno LC_ALL para que ICM pueda coexistir con Sybase en la plataforma de Windows NT, dejarán de funcionar los recursos de siguientes: * Usuario de catálogos de información * Administrador de catálogos de información * Gestor de catálogos de información ------------------------------------------------------------------------ 1.11 Pérdida de funcionalidad del centro de control No deberían introducirse problemas frente clientes del Centro de control de nivel inferior aplicando el FixPak 2 a un servidor DB2. Sin embargo, en DB2 Versión 7.2, los clientes del Centro de control de nivel inferior pierden casi toda la funcionalidad. En este caso por nivel inferior se hace referencia a cualquier cliente de la Versión 6 anterior al FixPak 6 y a cualquier cliente de la Versión 7 anterior al FixPak 2. Los clientes de la Versión 5 no se ven afectados. El arreglo sugerido consiste en actualizar los clientes afectados. Los clientes de la Versión 6 deberían actualizarse al FixPak 6 o posterior y los clientes de la Versión 7 deberían actualizarse al FixPak 2 o posterior. ------------------------------------------------------------------------ 1.12 CD de Netscape no suministrado con DB2 UDB El CD de Netscape ya no se suministra con DB2 UDB. Los productos Netscape están disponibles en http://www.netscape.com. ------------------------------------------------------------------------ 1.13 Error en archivos readme de XML El archivo README.TXT correspondiente a DB2 XML Extender Versión 7.1 indica lo siguiente bajo "Consideraciones": 3. La versión por omisión de DB2 UDB es DB2 UDB Versión 7.1. Si desea utilizar DB2 UDB Versión 6.1 en AIX y Solaris, debe asegurarse de que está trabajando con una instancia de DB2 UDB V6.1 y con las bibliotecas de DB2 UDB V6.1. Es incorrecto. DB2 XML Extender sólo recibe soporte con DB2 Versión 7.1 y 7.2. Los archivos readme.aix, readme.nt y readme.sun listan los siguientes Requisitos de software: * DB2 UDB 6.1 con FP1_U465423 o superior (AIX) * DB2 Universal Database Versión 6.1 o superior con el FixPak 3 instalado (NT) * DB2 UDB Versión 6.1 con el FixPak FP1_U465424 o superior (Sun) Es incorrecto. DB2 XML Extender necesita DB2 Versión 7.1 ó 7.2. ------------------------------------------------------------------------ 1.14 Posible pérdida de datos en Linux para S/390 Cuando se utiliza DB2 en Linux para S/390 con un kernel serie 2.2, la cantidad de RAM disponible en la máquina Linux debe estar limitada a menos de 1 GB. Al limitar la RAM a 1 GB se evita una posible pérdida de datos en DB2 debido a un problema en el kernel de Linux. Esto sólo afecta a DB2 en Linux para S/390, no a Linux en Intel. Se pondrá a disponibilidad de los usuarios un parche del kernel en http://www10.software.ibm.com/developerworks/opensource/linux390 /alpha_src.html que permitirá utilizar más de 1 GB de RAM. ------------------------------------------------------------------------ 1.15 DB2 UDB en Windows 2000 En estas Notas de release, cuando se hace referencia a Windows NT se incluye Windows 2000, a no ser que se especifique lo contrario. ------------------------------------------------------------------------ Documentación en línea (HTML, PDF y Búsqueda) ------------------------------------------------------------------------ 2.1 Navegadores de la Web soportados en el sistema operativo Windows 2000 Le recomendamos utilizar Microsoft Internet Explorer en Windows 2000. Si utiliza Netscape, tenga presente lo siguiente: * Las búsquedas en la información en línea de DB2 pueden tardar mucho en finalizar en Windows 2000 si se utiliza Netscape. Netscape utilizará todos los recursos de la CPU disponibles y parecerá que se ejecuta indefinidamente. Hasta que finalmente obtenga el resultado de la búsqueda, le recomendamos cambiar el enfoque pulsando otra ventana después de someter la búsqueda. Así, dicho resultado se obtendrá en un período de tiempo razonable. * Puede observar que, cuando se solicita ayuda, ésta se visualiza correctamente en una ventana del navegador Netscape, sin embargo, si se deja la ventana del navegador abierta y, más adelante, se solicita ayuda de una parte distinta del Centro de control, no cambia nada en el navegador. Si cierra la ventana del navegador y vuelve a solicitar ayuda, aparecerá la ayuda correcta. Puede resolver este problema siguiendo los pasos indicados en el apartado 2.4, Mensajes de error cuando se intenta ejecutar Netscape. También puede eludir el problema cerrando la ventana del navegador antes de solicitar ayuda para el Centro de control. * Cuando se solicita ayuda del Centro de control o un tema del Centro de información, se puede recibir un mensaje de error. Para resolverlo, siga los pasos indicados en el apartado 2.4, Mensajes de error cuando se intenta ejecutar Netscape. ------------------------------------------------------------------------ 2.2 Búsqueda en la información en línea de DB2 en Solaris Si tiene problemas al buscar en la información en línea de DB2 en Solaris, compruebe los parámetros del kernel del sistema en /etc/system. A continuación se proporcionan los parámetros de kernel mínimos necesarios para el sistema de búsqueda de DB2, NetQuestion: semsys:seminfo_semmni 256 semsys:seminfo_semmap 258 semsys:seminfo_semmns 512 semsys:seminfo_semmnu 512 semsys:seminfo_semmsl 50 shmsys:shminfo_shmmax 6291456 shmsys:shminfo_shmseg 16 shmsys:shminfo_shmmni 300 Para establecer un parámetro de kernel, añada una línea al final de /etc/system tal como se muestra a continuación: set = valor Debe rearrancar el sistema para que entre en vigor cualquier valor cambiado o nuevo. ------------------------------------------------------------------------ 2.3 Conmutación de NetQuestion para OS/2 para utilizar TCP/IP Las instrucciones para conmutar NetQuestion de modo que utilice TCP/IP en sistemas OS/2 están incompletas. La ubicación de los archivos *.cfg mencionados en dichas instrucciones es el subdirectorio de datos del directorio de instalación de NetQuestion. Se puede determinar el directorio de instalación de NetQuestion entrando uno de los mandatos siguientes: echo %IMNINSTSRV% //para instalaciones SBCS echo %IMQINSTSRV% //para instalaciones DBCS ------------------------------------------------------------------------ 2.4 Mensajes de error cuando se intenta ejecutar Netscape Si se le presenta los siguientes mensajes de error al intentar ejecutar Netscape: No se encuentra el archivo (o uno de sus componentes). Asegúrese que la vía de acceso y el nombre de archivo sean correctos y que estén disponibles todas las bibliotecas necesarias. No se puede abrir "D:\Archivos de programa\SQLLIB\CC\..\doc\html\db2help\XXXXX.htm" debe llevar a cabo los pasos siguientes para corregir este problema en Windows NT, 95 ó 98 (vea más adelante lo que debe hacer en Windows 2000): 1. En el menú Inicio, seleccione Programas --> Explorador de Windows. Se abrirá Explorador de Windows. 2. En Explorador de Windows, seleccione Ver --> Opciones. Se abrirá el cuaderno Opciones de carpeta. 3. Pulse la pestaña Tipos de archivo. Se abre la página Tipos de archivo. 4. Resalte Documento de hipertexto Netscape en el campo Tipos de archivo registrados y pulse Editar. Se abre la ventana Editar tipo de archivo. 5. Resalte "Abrir" en el campo Acciones. 6. Pulse el botón Editar. Se abre la ventana Acción de edición para tipo. 7. Deseleccione el recuadro de selección Utilizar DDE. 8. En el campo Aplicación utilizada para realizar la acción, asegúrese de que aparece "%1" en el mismo final de la serie (incluya las comillas y un espacio en blanco delante de la primera comilla). Si encuentra los mensajes en Windows 2000, debe realizar los pasos siguientes: 1. En el menú Inicio, seleccione Explorador de Windows. Se abrirá Explorador de Windows. 2. En Explorador de Windows, seleccione Herramientas --> Opciones de carpeta. Se abrirá el cuaderno Opciones de carpeta. 3. Pulse la pestaña Tipos de archivo. 4. En la página Tipos de archivo, en el campo Tipos de archivo registrados, resalte: Documento de hipertexto Netscape HTM y pulse Avanzado. Se abre la ventana Editar tipo de archivo. 5. Resalte "Abrir" en el campo Acciones. 6. Pulse el botón Editar. Se abre la ventana Acción de edición para tipo. 7. Deseleccione el recuadro de selección Utilizar DDE. 8. En el campo Aplicación utilizada para realizar la acción, asegúrese de que aparece "%1" en el mismo final de la serie (incluya las comillas y un espacio en blanco delante de la primera comilla). 9. Pulse en Aceptar. 10. Repita los pasos 4 a 8 para los tipos de archivo Documento de hipertexto Netscape HTML y Documento de hipertexto Netscape SHTML. ------------------------------------------------------------------------ 2.5 Requisito de configuración para Adobe Acrobat Reader en sistemas basados en UNIX Acrobat Reader a menudo se ofrece en inglés en plataformas basadas en UNIX y se pueden devolver errores si se intentan abrir archivos PDG con entornos nacionales de idiomas distintos del inglés. Estos errores sugieren que existen problemas de acceso o extracción de font en el archivo PDF, pero en realidad se deben a que Acrobat Reader en inglés no puede funcionar correctamente con un entorno nacional de idioma que no sea inglés en UNIX. Para ver estos archivos PDF, conmute al entorno nacional inglés realizando uno de los pasos siguientes antes de ejecutar Acrobat Reader en inglés: * Edite el script de ejecución de Acrobat Reader, añadiendo la línea siguiente después de la sentencia #!/bin/sh del archivo de script de ejecución: LANG=C;export LANG Con este paso asegurará el funcionamiento correcto cuando otras aplicaciones, tales como el Navegador Netscape, o un menú de ayuda de aplicación utilicen Acrobat Reader. * Entre LANG=C en el indicador de mandatos para establecer el entorno de aplicación de Acrobat Reader en inglés. Para obtener más información, póngase en contacto con Adobe Systems (http://www.Adobe.com). ------------------------------------------------------------------------ 2.6 La Consulta de SQL se proporciona en un archivo PDF El apéndice "Utilización de la biblioteca DB2" de cada manual indica que la Consulta de SQL está disponible en formato PDF en dos volúmenes separados. Esta información no es correcta. Aunque el manual impreso aparece en dos volúmenes y los dos números de formulario correspondientes son correctos, sólo existe un archivo PDF y contiene los dos volúmenes. El nombre de archivo PDF es db2s0x70. ------------------------------------------------------------------------ Instalación y configuración Tabla de contenido parcial * Información general sobre la instalación o 3.1 Bajada de los paquetes de instalación para todos los clientes de DB2 soportados o 3.2 Instalación de DB2 en Windows 2000 o 3.3 Consecuencia de la migración con respecto a las vistas definidas con registros especiales o 3.4 Soporte del protocolo IPX/SPX en Windows 2000 o 3.5 Detención de los procesos de DB2 antes de actualizar una versión anterior de DB2 o 3.6 Ejecución de db2iupdt después de instalar DB2 si ya hay otro producto DB2 instalado o 3.7 Configuración del entorno Linux para ejecutar el Centro de control de DB2 o 3.8 DB2 Universal Database Enterprise Edition y DB2 Connect Enterprise Edition para Linux en S/390 o 3.9 DB2 Universal Database Enterprise - Extended Edition for UNIX Quick Beginnings o 3.10 Parámetro de kernel shmseg para HP-UX o 3.11 Migración de las bases de datos de control de IBM Visual Warehouse o 3.12 Acceso a las bases de datos de control del depósito * Data Links Manager Guía rápida de iniciación o 4.1 Falla el inicio de dlfm con el mensaje: "Error al obtener el afsfid para el prefijo" o 4.2 Establecimiento de la clase de Tivoli Storage Manager para archivos de archivar o 4.3 Requisitos de espacio de disco para DFS Client Enabler o 4.4 Supervisión de los procesos de componente de fondo de DB2 Data Links File Manager en AIX o 4.5 Instalación y configuración de DB2 Data Links Manager para AIX: Consideraciones adicionales sobre la instalación en entornos DCE-DFS o 4.6 El mandato "dlfm add_prefix" ha fallado o 4.7 Instalación y configuración de DB2 Data Links Manager para AIX: Instalación del DB2 Data Links Manager en AIX utilizando el programa de utilidad db2setup o 4.8 Instalación y configuración de DB2 Data Links Manager para AIX: Tarea posterior a la instalación de DCE-DFS o 4.9 Instalación y configuración de DB2 Data Links Manager para AIX: Instalación manual de DB2 Data Links Manager en AIX utilizando la Smit o 4.10 Instalación y configuración de DB2 Data Links Manager DFS Client Enabler o 4.11 Instalación y configuración de DB2 Data Links Manager para Solaris o 4.12 Elección de un método de copia de seguridad para DB2 Data Links Manager en AIX o 4.13 Elección de un método de copia de seguridad para DB2 Data Links Manager en el entorno operativo Solaris o 4.14 Elección de un método de copia de seguridad para DB2 Data Links Manager en Windows NT o 4.15 Obtención de copia de seguridad de un Sistema de archivos de diario en AIX o 4.16 Privilegios del grupo del administrador en Data Links en Windows NT o 4.17 Minimizar el registro cronológico para la instalación de Data Links File System Filter (DLFF) + 4.17.1 Anotación cronológica de mensajes después de la instalación o 4.18 La desinstalación de los componentes de DLFM utilizando la SMIT puede eliminar catálogos de archivos adicionales o 4.19 Antes de empezar/Determinar el nombre del sistema principal o 4.20 Trabajo con Data Links File Manager: Borrado después de descartar un DB2 Data Links Manager de una base de datos de DB2 o 4.21 DLFM1001E (Nuevo mensaje de error) o 4.22 Opción de archivo de configuración de puesta a punto DLFM o 4.23 Error al ejecutar el script de Data Links/DFS dmapp_prestart en AIX o 4.24 Integración de Tivoli Space Manager con Data Links + 4.24.1 Restricciones y limitaciones o 4.25 Capítulo 4. Instalación y configuración de DB2 Data Links Manager para AIX + 4.25.1 Consideraciones para la instalación + 4.25.1.1 Migración de DB2 File Manager Versión 5.2 a DB2 Data Links Manager Versión 7 * Suplemento de instalación y configuración o 5.1 Capítulo 5. Instalación de clientes DB2 en sistemas operativos UNIX + 5.1.1 Parámetros de configuración del kernel HP-UX o 5.2 Capítulo 12. Ejecución de sus propias aplicaciones + 5.2.1 Vinculación de programas de utilidad para bases de datos utilizando el Cliente de tiempo de ejecución + 5.2.2 Acceso de clientes UNIX a DB2 utilizando ODBC o 5.3 Capítulo 24. Configuración de un sistema federado para que acceder a varias fuentes de datos + 5.3.1 Sistemas federados + 5.3.1.1 Restricción + 5.3.2 Instalación de DB2 Relational Connect + 5.3.2.1 Instalación de DB2 Relational Connect en servidores Windows NT + 5.3.2.2 Instalación de DB2 Relational Connect en servidores AIX, Linux y del entorno operativo Solaris o 5.4 Capítulo 26. Acceso a fuentes de datos Oracle + 5.4.1 Errores de la documentación o 5.5 Acceso a fuentes de datos Sybase (capítulo nuevo) + 5.5.1 Adición de fuentes de datos Sybase a un servidor federado + 5.5.1.1 Paso 1: Establecer las variables de entorno y actualizar el registro de perfiles + 5.5.1.2 Paso 2: Enlazar DB2 al software cliente de Sybase (sólo AIX y Solaris) + 5.5.1.3 Paso 3: Reciclar la instancia de DB2 + 5.5.1.4 Paso 4: Crear y configurar un archivo de interfaces + 5.5.1.5 Paso 5: Crear el acomodador + 5.5.1.6 Paso 6: Opcional: Establecer la variable de entorno DB2_DJ_COMM + 5.5.1.7 Paso 7: Crear el servidor + 5.5.1.8 Opcional: Paso 8: Establecer la opción del servidor CONNECTSTRING + 5.5.1.9 Paso 9: Crear una correlación de usuario + 5.5.1.10 Paso 10: Crear apodos para tablas y vistas + 5.5.2 Especificación de páginas de códigos de Sybase o 5.6 Acceso a fuentes de datos de Microsoft SQL Server mediante ODBC (capítulo nuevo) + 5.6.1 Adición de fuentes de datos de Microsoft SQL Server a un servidor federado + 5.6.1.1 Paso 1: Establecer las variables de entorno (sólo en AIX) + 5.6.1.2 Paso 2: Ejecutar el script shell (sólo en AIX) + 5.6.1.3 Paso 3: Opcional: Establecer la variable de entorno DB2_DJ_COMM + 5.6.1.4 Paso 4: Reciclar la instancia de DB2 (sólo en AIX) + 5.6.1.5 Paso 5: Crear el acomodador + 5.6.1.6 Paso 6: Crear el servidor + 5.6.1.7 Paso 7: Crear una correlación de usuario + 5.6.1.8 Paso 8: Crear apodos para tablas y vistas + 5.6.1.9 Paso 9: Opcional: Obtener rastreos de ODBC + 5.6.2 Revisión de páginas de códigos de Microsoft SQL Server ------------------------------------------------------------------------ Información general sobre la instalación ------------------------------------------------------------------------ 3.1 Bajada de los paquetes de instalación para todos los clientes de DB2 soportados Para bajar los paquetes de instalación para todos los clientes de DB2 soportados, que incluyen los clientes de las versiones anteriores a la Versión 7, conéctese al sitio Web IBM DB2 Client Application Enabler Pack en http://www.ibm.com/software/data/db2/db2tech/clientpak.html ------------------------------------------------------------------------ 3.2 Instalación de DB2 en Windows 2000 En Windows 2000, cuando instale sobre una versión anterior de DB2 o cuando reinstale la versión actual, asegúrese de que todas las opciones de recuperación para todos los servicios de DB2 estén establecidos en "No realizar ninguna acción". ------------------------------------------------------------------------ 3.3 Consecuencia de la migración con respecto a las vistas definidas con registros especiales Las vistas pasan a ser no utilizables después de una migración de base de datos si se utiliza el registro especial CURRENT SCHEMA para definir una columna de vista. Por ejemplo: create view v1 (c1) as values user En la Versión 5, USER y CURRENT SCHEMA eran del tipo de datos CHAR(8), pero desde la Versión 6, se han definido como VARCHAR(128). En este ejemplo, el tipo de datos para la columna c1 es CHAR si la vista se crea en la Versión 5 y seguirá siendo CHAR después de la migración de base de datos. Cuando la vista se utilice después de la migración, se compilará en el tiempo de ejecución, pero fallará porque el tipo de datos no coincidirá. La solución consiste en eliminar la vista y volverla a crear. Antes de desactivar la vista, capture la sintaxis utilizada para crearla consultando la vista de catálogo de SYSCAT.VIEWS. Por ejemplo: select text from syscat.views where viewname='<>' ------------------------------------------------------------------------ 3.4 Soporte del protocolo IPX/SPX en Windows 2000 Esta información hace referencia al capítulo sobre planificación de la instalación del manual Guía rápida de iniciación, en la sección denominada "Posibles escenarios de conectividad entre cliente y servidor". El diagrama de soporte de protocolos publicado no es totalmente correcto. No se soporta un cliente Windows 2000 conectado a cualquier servidor OS/2 o basado en UNIX mediante IPX/SPX. Asimismo, no se soporta ningún cliente OS/2 o basado en UNIX conectado a un servidor Windows 2000 mediante IPX/SPX. ------------------------------------------------------------------------ 3.5 Detención de los procesos de DB2 antes de actualizar una versión anterior de DB2 Esta información hace referencia a la información sobre migración del manual DB2 para Windows Guía rápida de iniciación. Si se está realizando una actualización de una versión anterior de DB2 que se está ejecutando en la máquina Windows, el programa de instalación proporciona un aviso que contiene una lista de los procesos que retienen DLL de DB2 en la memoria. En este punto, el usuario tiene la posibilidad de detener manualmente los procesos que aparecen en dicha lista, o bien puede dejar que el programa de instalación concluya dichos procesos de forma automática. Es aconsejable detener manualmente todos los procesos de DB2 antes de realizar la instalación, a fin de evitar una pérdida de datos. La mejor manera de asegurarse de que no se esté ejecutando ningún proceso de DB2 consiste en visualizar los procesos del sistema mediante el panel Servicios de Windows. En dicho panel, asegúrese de que no haya ningún servicio de DB2, de OLAP ni de Depósito de datos en ejecución. Nota: En un momento dado sólo puede haber una versión de DB2 ejecutándose en plataformas Windows. Por ejemplo, no se puede tener DB2 Versión 7 y DB2 Versión 6 ejecutándose en la misma máquina Windows. Si se instala DB2 Versión 7 en una máquina en la que ya está instalado DB2 Versión 6, el programa de instalación suprimirá DB2 Versión 6 durante la instalación. Para obtener más información sobre cómo migrar desde versiones anteriores de DB2, consulte el manual Guía rápida de iniciación adecuado. ------------------------------------------------------------------------ 3.6 Ejecución de db2iupdt después de instalar DB2 si ya hay otro producto DB2 instalado La siguiente información tenía que estar disponible en la documentación de instalación de la Guía rápida de iniciación. Cuando instale DB2 UDB Versión 7 en sistemas basados en UNIX, y si ya hay un producto DB2 instalado, tendrá que ejecutar el mandato db2iupdt para actualizar las instancias con las que pretende utilizar las nuevas características de este producto. Algunas de las características no estarán disponibles hasta que se ejecute este mandato. ------------------------------------------------------------------------ 3.7 Configuración del entorno Linux para ejecutar el Centro de control de DB2 Esta información se tenía que haber incluido en el capítulo "Instalación del Centro de control de DB2" del manual Guía rápida de iniciación. Después dejar el instalador de DB2 en Linux y volver a la ventana de terminal, escriba los mandatos siguientes para establecer el entorno correcto para ejecutar el Centro de control de DB2: su -l export JAVA_HOME=/usr/jdk118 export DISPLAY=:0 A continuación, abra otra ventana de terminal y escriba: su root xhost + Cierre esta ventana de terminal y vuelva al terminal en que ha iniciado una sesión con el ID de propietario de la instancia, y escriba el mandato: db2cc para iniciar el Centro de control. ------------------------------------------------------------------------ 3.8 DB2 Universal Database Enterprise Edition y DB2 Connect Enterprise Edition para Linux en S/390 DB2 Universal Database Enterprise Edition y DB2 Connect Enterprise Edition están ahora disponibles para Linux en S/390. Antes de instalar Linux en una máquina S/390, debería tener en cuenta los requisitos de software y hardware: Hardware S/390 9672 Generation 5 o posterior, Multiprise 3000. Software * SuSE Linux v7.0 para S/390 o Turbolinux Server 6 para zSeries y S/390 * nivel de kernel 2.2.16, con parches para S/390 (vea más abajo) * glibc 2.1.3 * libstdc++ 6.1 Para Linux en S/390 se necesitan los parches siguientes: * no se necesitan parches en este momento. Para las últimas actualizaciones, vaya al sitio Web http://www.software.ibm.com/data/db2/linux. Notas: 1. Sólo se da soporte a Linux en S/390 y Linux basados en Intel de 32 bits. 2. Los que se indican a continuación no están disponibles en Linux/390 en DB2 Versión 7: o DB2 UDB Enterprise - Extended Edition o DB2 Extenders o Data Links Manager o DB2 Administrative Client o Change Password Support o LDAP Support ------------------------------------------------------------------------ 3.9 DB2 Universal Database Enterprise - Extended Edition for UNIX Quick Beginnings En el Capítulo 5. Instalación y configuración de DB2 Universal Database en Linux se debería indicar que cada nodo físico de un clúster EEE de Linux debe tener los mismos niveles de kernel, glibc y libstdc++. Puede bajar una versión de prueba de DB2 EEE para Linux del siguiente sitio Web: http://www6.software.ibm.com/dl/db2udbdl/db2udbdl-p ------------------------------------------------------------------------ 3.10 Parámetro de kernel shmseg para HP-UX La información sobre la actualización de los parámetros de configuración del kernel de HP-UX que se suministra con el manual Quick Beginnings es incorrecta. El valor recomendado para el parámetro de kernel shmseg para HP-UX se debe pasar por alto. En su lugar, debe utilizarse el valor por omisión para HP-UX (120). ------------------------------------------------------------------------ 3.11 Migración de las bases de datos de control de IBM Visual Warehouse La publicación DB2 Universal Database Guía rápida de iniciación para Windows proporciona información sobre cómo se migra la base de datos de control del depósito activa durante una instalación típica de DB2 Universal Database Versión 7 en Windows NT y Windows 2000. Si tiene que migrar más de una base de datos de control del depósito, debe utilizar la ventana Gestión de bases de datos de control del depósito para migrar las bases de datos adicionales. Sólo puede haber una base de datos de control del depósito activa en cada momento. Si la última base de datos que migre no es la que pretende utilizar en su próximo inicio de sesión con el Centro de depósito de datos, debe utilizar la ventana Gestión de bases de datos de control del depósito para registrar la base de datos que pretende utilizar. ------------------------------------------------------------------------ 3.12 Acceso a las bases de datos de control del depósito En una instalación típica de DB2 Versión 7 en Windows NT, se crea una base de datos de control del depósito DB2 Versión 7, junto con el servidor de depósito. Si tiene una base de datos de control del depósito Visual Warehouse, debe actualizar el servidor DB2 que contiene la base de datos de control del depósito a DB2 Versión 7 para poder migrar los metadatos de la base de datos de control del depósito para uso del Centro de depósito de datos de DB2 Versión 7. Debe migrar todas las bases de datos de control del depósito que desee seguir utilizando a la Versión 7. Los metadatos de la base de datos de control del depósito activa se migran a la Versión 7 durante el proceso de instalación de DB2 Versión 7. Para migrar los metadatos de las bases de datos de control del depósito adicionales, utilice el programa de utilidad Warehouse Control Database Migration, que se inicia seleccionando Inicio --> Programas --> IBM DB2 --> Gestión de bases de datos de control del depósito en Windows NT. Para obtener información sobre cómo migrar las bases de datos de control del depósito, consulte la publicación DB2 Universal Database para Windows Guía rápida de iniciación. ------------------------------------------------------------------------ Data Links Manager Guía rápida de iniciación ------------------------------------------------------------------------ 4.1 Falla el inicio de dlfm con el mensaje: "Error al obtener el afsfid para el prefijo" Para un Data Links Manager que se ejecute en el entorno DCE-DFS, póngase en contacto con el servicio técnico de IBM si el inicio de dlfm falla con el error siguiente: Error al obtener el afsfid para el prefijo Se puede producir este error cuando un catálogo de archivos DFS registrado con el Data Links Manager utilizando "dlfm add_prefix" se ha suprimido. ------------------------------------------------------------------------ 4.2 Establecimiento de la clase de Tivoli Storage Manager para archivos de archivar Para especificar qué clase de gestión de TSM debe utilizarse para los archivos de archivar, establezca la entrada de registro DLFM_TSM_MGMTCLASS de DB2 en el nombre de clase de gestión apropiado. ------------------------------------------------------------------------ 4.3 Requisitos de espacio de disco para DFS Client Enabler DFS Client Enabler es un componente opcional que se puede seleccionar durante la instalación del cliente o servidor DB2 Universal Database. No se puede instalar DFS Client Enabler sin instalar un producto cliente o servidor DB2 Universal Database, a pesar de que DFS Client Enabler se ejecuta por sí mismo sin necesidad de un cliente o servidor DB2 UDB. Además de los 2 MB de espacio de disco necesario para el código de DFS Client Enabler, debe reservar 40 MB adicionales si instala DFS Client Enabler como parte de una instalación de Cliente de tiempo de ejecución de DB2. Necesitará más espacio de disco si instala DFS Client Enabler como parte de una instalación de DB2 Administration Client o servidor DB2. Para obtener más información sobre los requisitos de espacio de disco para productos DB2 Universal Database, consulte el manual DB2 para UNIX Guía rápida de iniciación. ------------------------------------------------------------------------ 4.4 Supervisión de los procesos de componente de fondo de DB2 Data Links File Manager en AIX Existe un cambio en la salida del mandato dlfm see. Cuando se emite este mandato para supervisar los procesos de componente de fondo del Data Links File Manager en AIX, la salida que se devuelve será parecida a la siguiente: PID PPID PGID RUNAME UNAME ETIME DAEMON NAME 17500 60182 40838 dlfm root 12:18 dlfm_copyd_(dlfm) 41228 60182 40838 dlfm root 12:18 dlfm_chownd_(dlfm) 49006 60182 40838 dlfm root 12:18 dlfm_upcalld_(dlfm) 51972 60182 40838 dlfm root 12:18 dlfm_gcd_(dlfm) 66850 60182 40838 dlfm root 12:18 dlfm_retrieved_(dlfm) 67216 60182 40838 dlfm dlfm 12:18 dlfm_delgrpd_(dlfm) 60182 1 40838 dlfm dlfm 12:18 dlfmd_(dlfm) La petición de DLFM SEE ha sido satisfactoria. El nombre incluido entre paréntesis es el nombre de la instancia dlfm, en este caso "dlfm". ------------------------------------------------------------------------ 4.5 Instalación y configuración de DB2 Data Links Manager para AIX: Consideraciones adicionales sobre la instalación en entornos DCE-DFS En el apartado titulado "Requisitos previos a la instalación", se debe añadir nueva información: También debe instalar un e-fix para DFS 3.1, o el conjunto de PTF 1 (cuando esté disponible). El e-fix está disponible en: http://www.transarc.com/Support/dfs/datalinks/efix_dfs31_main_page.html Asimismo: El cliente dfs se tiene que estar ejecutando antes de instalar el Data Links Manager. Utilice db2setup o smitty. En el apartado titulado "Archivo de tablas de claves", existe un error que se debe corregir de la forma siguiente: El archivo de tablas de claves, que contiene información de principal y contraseña, se debe llamar datalink.ktb y .... El nombre correcto: datalink.ktb se utiliza en el ejemplo que viene a continuación. El apartado "Archivo de tablas de claves" se debe mover al apartado "Tarea posterior a la instalación de DCE-DFS", puesto que no se puede producir la creación de este archivo hasta después de que se haya creado la instancia DLMADMIN. En el apartado titulado "Servidores y clientes de Data Links File Manager", se debe observar que el servidor Data Links Manager se debe instalar antes que cualquier cliente de Data Links Manager. Se debe añadir un nuevo apartado, "Directorio de copia de seguridad": Si el método de copia de seguridad es un sistema de archivos local, debe ser un directorio del sistema de archivos DFS. Asegúrese de que un administrador de DFS haya creado este catálogo de archivos. No debe ser un catálogo de archivos DMLFS. ------------------------------------------------------------------------ 4.6 El mandato "dlfm add_prefix" ha fallado Para un Data Links Manager que se ejecute en el entorno DCE/DFS, el mandato dlfm add_prefix puede fallar con el código de retorno -2061 (ha fallado la copia de seguridad). Si así sucede, lleve a cabo los pasos siguientes: 1. Detenga los procesos del daemon Data Links Manager emitiendo el mandato dlfm stop. 2. Detenga los procesos de DB2 emitiendo el mandato dlfm stopdbm. 3. Obtenga las credenciales del usuario root de dce emitiendo el mandato dce_login root. 4. Inicie los procesos de DB2 emitiendo el mandato dlfm startdbm. 5. Registre el catálogo de archivos con el Data Links Manager emitiendo el mandato dlfm add_prefix. 6. Inicie los procesos del daemon Data Links Manager emitiendo el mandato dlfm start. ------------------------------------------------------------------------ 4.7 Instalación y configuración de DB2 Data Links Manager para AIX: Instalación del DB2 Data Links Manager en AIX utilizando el programa de utilidad db2setup En el apartado "Base de datos DB2 DLFM_DB creada", no se crea DLFM_DB en el entorno DCE_DFS. Esto se debe hacer como paso posterior a la instalación. En el apartado "Registro previo al inicio de DCE-DFS para DMAPP", el Paso 2 se debe cambiar por el siguiente: 2. Se añaden mandatos a /opt/dcelocal/tcl/user_cmd.tcl para asegurar que DMAPP se inicia cuando se inicia DFS. ------------------------------------------------------------------------ 4.8 Instalación y configuración de DB2 Data Links Manager para AIX: Tarea posterior a la instalación de DCE-DFS Se debe añadir el siguiente apartado nuevo, "Completar la instalación del Data Links Manager": En el servidor Data Links Manager, se deben realizar los pasos siguientes para completar la instalación: 1. Cree el archivo de tablas de claves tal y como se ha descrito en "Archivo de tablas de claves" del apartado "Consideraciones de instalación adicionales en el entorno de DCE-DFS", del capítulo "Instalación y configuración de DB2 Data Links Manager para AIX". 2. Como usuario root, entre los mandatos siguientes para iniciar DMAPP: stop.dfs all start.dfs all 3. Ejecute "dlfm setup" utilizando las credenciales del usuario root de dce, tal como sigue: a. Inicie una sesión como administrador de Data Links Manager, DLMADMIN. b. Como usuario root, emita dce_login. c. Entre el mandato: dlfm setup. En el cliente de Data Links Manager, se deben realizar los pasos siguientes para completar la instalación: 1. Cree el archivo de tablas de claves tal y como se ha descrito en "Archivo de tablas de claves" del apartado "Consideraciones de instalación adicionales en el entorno de DCE-DFS", del capítulo "Instalación y configuración de DB2 Data Links Manager para AIX". 2. Como usuario root, entre los mandatos siguientes para iniciar DMAPP: stop.dfs all start.dfs all ------------------------------------------------------------------------ 4.9 Instalación y configuración de DB2 Data Links Manager para AIX: Instalación manual de DB2 Data Links Manager en AIX utilizando la Smit En el apartado, "Tareas posteriores a la instalación de la SMIT", modifique el paso 7 para indicar que se debe emitir el mandato "dce_login root" antes que "dlfm setup". El paso 11 no es necesario. Este paso se realiza automáticamente cuando se lleva a cabo el Paso 6 (dlfm server_conf) o el Paso 8 (dlfm client_conf). Elimine también el paso 12 (dlfm start). Para completarla instalación, lleve a cabo los pasos siguientes: 1. Cree el archivo de tablas de claves tal y como se ha descrito en "Archivo de tablas de claves" del apartado "Consideraciones de instalación adicionales en el entorno de DCE-DFS", del capítulo "Instalación y configuración de DB2 Data Links Manager para AIX". 2. Como usuario root, entre los mandatos siguientes para iniciar DMAPP: stop.dfs all start.dfs all ------------------------------------------------------------------------ 4.10 Instalación y configuración de DB2 Data Links Manager DFS Client Enabler En el apartado "Configuración de un DFS Client Enabler", añada la información siguiente al Paso 2: Normalmente, una ejecución de mandatos "secval" completará la configuración. No obstante, puede ser necesario rearrancar también la máquina. Si se encuentran problemas al acceder a archivos READ PERMISSION DB, rearranque la máquina en que se acaba de instalar DB2 DFS Client Enabler. ------------------------------------------------------------------------ 4.11 Instalación y configuración de DB2 Data Links Manager para Solaris Las acciones siguientes deben efectuarse después de instalar DB2 Data Links Manager para Solaris: 1. Añada las tres líneas siguientes al archivo /etc/system: set dlfsdrv:glob_mod_pri=0x100800 set dlfsdrv:glob_mesg_pri=0xff set dlfsdrv:ConfigDlfsUid=UID donde UID representa el ID de usuario del id dlfm. 2. Vuelva a arrancar la máquina para activar los cambios. ------------------------------------------------------------------------ 4.12 Elección de un método de copia de seguridad para DB2 Data Links Manager en AIX Además de Disk Copy y XBSA, también puede utilizar Tivoli Storage Manager (TSM) para obtener copia de seguridad de los archivos que residen en un servidor Data Links. Para utilizar Tivoli Storage Manager como servidor de archivar: 1. Instale Tivoli Storage Manager en el servidor Data Links. Para obtener más información, consulte la documentación del producto Tivoli Storage Manager. 2. Registre la aplicación cliente del servidor Data Links con el servidor de Tivoli Storage Manager. Para obtener más información, consulte la documentación del producto Tivoli Storage Manager. 3. Añada las variables de entorno siguientes a los archivos script db2profile o db2cshrc del administrador de Data Links Manager: (para el shell Bash, Bourne o Korn) export DSMI_DIR=/usr/tivoli/tsm/client/api/bin export DSMI_CONFIG=$HOME/tsm/dsm.opt export DSMI_LOG=$HOME/dldump export PATH=$PATH:$DSMI_DIR (para el shell C) setenv DSMI_DIR /usr/tivoli/tsm/client/api/bin setenv DSMI_CONFIG ${HOME}/tsm/dsm.opt setenv DSMI_LOG ${HOME}/dldump setenv PATH=${PATH}:$DSMI_DIR 4. Asegúrese de que el archivo de opciones del sistema TSM dsm.sys esté ubicado en el directorio $DSMI_DIR. 5. Asegúrese de que el archivo de opciones del usuario TSM dsm.opt esté ubicado en el directorio INSTHOME/tsm, donde INSTHOME es el directorio inicial del Administrador de Data Links Manager. 6. Establezca la opción PASSWORDACCESS en generate en el archivo de opciones del sistema de Tivoli Storage Manager /usr/tivoli/tsm/client/api/bin/dsm.sys. 7. Registre la contraseña de TSM con la opción generate antes de iniciar por primera vez el Data Links File Manager. De esta manera, no será necesario que proporcione una contraseña cuando el Data Links File Manager inicie una conexión con el servidor TSM. Para obtener más información, consulte la documentación del producto TSM. 8. Establezca la variable de registro DLFM_BACKUP_TARGET en TSM. En este caso, se ignorará el valor de la variable de registro DLFM_BACKUP_DIR_NAME. Esto activará la opción de copia de seguridad de Tivoli Storage Manager. Notas: 1. Si cambia el valor de la variable de registro DLFM_BACKUP_TARGET entre TSM y disco durante la ejecución, debe tener en cuenta que los archivos archivados no se moverán a la ubicación de archivo recién especificada. Por ejemplo, si inicia el Data Links File Manager con el valor de registro DLFM_BACKUP_TARGET establecido en TSM, y si cambia el valor de registro por una ubicación de disco, todos los archivos recién archivados se almacenarán en la nueva ubicación del disco. Los archivos que se archivaron previamente en TSM no se moverán a la nueva ubicación de disco. 2. Para alterar temporalmente la clase de gestión de TSM por omisión, hay una nueva variable de registro llamada DLFM_TSM_MGMTCLASS. Si esta variable de registro se deja sin establecer, se utilizará la clase de gestión de TSM por omisión. 9. Detenga el Data Links File Manager entrando el mandato dlfm stop. 10. Inicie el Data Links File Manager entrando el mandato dlfm start. ------------------------------------------------------------------------ 4.13 Elección de un método de copia de seguridad para DB2 Data Links Manager en el entorno operativo Solaris Además de Disk Copy y XBSA, también puede utilizar Tivoli Storage Manager (TSM) para obtener copia de seguridad de los archivos que residen en un servidor Data Links. Para utilizar Tivoli Storage Manager como servidor de archivar: 1. Instale Tivoli Storage Manager en el servidor Data Links. Para obtener más información, consulte la documentación del producto Tivoli Storage Manager. 2. Registre la aplicación cliente del servidor Data Links con el servidor de Tivoli Storage Manager. Para obtener más información, consulte la documentación del producto Tivoli Storage Manager. 3. Añada las variables de entorno siguientes a los archivos script db2profile o db2cshrc del administrador de Data Links Manager: (para el shell Bash, Bourne o Korn) export DSMI_DIR=/opt/tivoli/tsm/client/api/bin export DSMI_CONFIG=$HOME/tsm/dsm.opt export DSMI_LOG=$HOME/dldump export PATH=$PATH:/opt/tivoli/tsm/client/api/bin (para el shell C) setenv DSMI_DIR /opt/tivoli/tsm/client/api/bin setenv DSMI_CONFIG ${HOME}/tsm/dsm.opt setenv DSMI_LOG ${HOME}/dldump setenv PATH=${PATH}:/opt/tivoli/tsm/client/api/bin 4. Asegúrese de que el archivo de opciones del sistema TSM dsm.sys esté ubicado en el directorio /opt/tivoli/tsm/client/api/bin. 5. Asegúrese de que el archivo de opciones del usuario TSM dsm.opt esté ubicado en el directorio INSTHOME/tsm, donde INSTHOME es el directorio inicial del Administrador de Data Links Manager. 6. Establezca la opción PASSWORDACCESS en generate en el archivo de opciones del sistema de Tivoli Storage Manager /opt/tivoli/tsm/client/api/bin/dsm.sys. 7. Registre la contraseña de TSM con la opción generate antes de iniciar por primera vez el Data Links File Manager. De esta manera, no será necesario que proporcione una contraseña cuando el Data Links File Manager inicie una conexión con el servidor TSM. Para obtener más información, consulte la documentación del producto TSM. 8. Establezca la variable de registro DLFM_BACKUP_TARGET en TSM. En este caso, se ignorará el valor de la variable de registro DLFM_BACKUP_DIR_NAME. Esto activará la opción de copia de seguridad de Tivoli Storage Manager. Notas: 1. Si cambia el valor de la variable de registro DLFM_BACKUP_TARGET entre TSM y disco durante la ejecución, debe tener en cuenta que los archivos archivados no se moverán a la ubicación de archivo recién especificada. Por ejemplo, si inicia el Data Links File Manager con el valor de registro DLFM_BACKUP_TARGET establecido en TSM, y si cambia el valor de registro por una ubicación de disco, todos los archivos recién archivados se almacenarán en la nueva ubicación del disco. Los archivos que se archivaron previamente en TSM no se moverán a la nueva ubicación de disco. 2. Para alterar temporalmente la clase de gestión de TSM por omisión, hay una nueva variable de registro llamada DLFM_TSM_MGMTCLASS. Si esta variable de registro se deja sin establecer, se utilizará la clase de gestión de TSM por omisión. 9. Detenga el Data Links File Manager entrando el mandato dlfm stop. 10. Inicie el Data Links File Manager entrando el mandato dlfm start. ------------------------------------------------------------------------ 4.14 Elección de un método de copia de seguridad para DB2 Data Links Manager en Windows NT Siempre que se inserta un valor DATALINK en una tabla que tiene una columna DATALINK definida para recuperación, los archivos DATALINK correspondientes del servidor Data Links se planifican para obtener copia de seguridad de los mismos en un servidor de archivo. Actualmente, Disk Copy (método por omisión) y el Tivoli Storage Manager son las dos opciones soportadas para obtener copia de seguridad de los archivos en un servidor de archivo. Releases futuros de DB2 Data Links Manager para Windows NT soportarán los soportes y el software de copia de seguridad de otros proveedores. Disk Copy (método por omisión) Cuando se entra el mandato backup en el servidor DB2, éste se asegura de que se obtenga copia de seguridad de los archivos enlazados de la base de datos del servidor Data Links en el directorio especificado por la variable de entorno DLFM_BACKUP_DIR_NAME. El valor por omisión para esta variable es c:\dlfmbackup, donde c:\ representa la unidad de instalación de copia de seguridad del Data Links Manager. Para establecer esta variable en c:\dlfmbackup, entre el mandato siguiente: db2set -g DLFM_BACKUP_DIR_NAME=c:\dlfmbackup La ubicación especificada por la variable de entorno DLFM_BACKUP_DIR_NAME no debe estar ubicada en un sistema de archivos que utilice un Filtro de sistemas de archivos de enlaces de datos, y debe asegurarse de que se dispone del espacio necesario en el directorio especificado para los archivos de copia de seguridad. Asimismo, cerciórese de que la variable DLFM_BACKUP_TARGET se establezca en LOCAL entrando el mandato siguiente: db2set -g DLFM_BACKUP_TARGET=LOCAL Después de establecer o cambiar estas variables, detenga y reinicie el Data Links File Manager utilizando los mandatos dlfm stop y dlfm start. Tivoli Storage Manager Para utilizar Tivoli Storage Manager como servidor de archivar: 1. Instale Tivoli Storage Manager en el servidor Data Links. Para obtener más información, consulte la documentación del producto Tivoli Storage Manager. 2. Registre la aplicación cliente del servidor Data Links con el servidor de Tivoli Storage Manager. Para obtener más información, consulte la documentación del producto Tivoli Storage Manager. 3. Pulse Inicio y seleccione Configuración --> Panel de control --> Sistema. Se abre la ventana Propiedades del sistema. Seleccione la pestaña Entorno y entre las variables de entorno siguientes y los valores correspondientes: Variable Valor DSMI_DIR c:\tsm\baclient DSMI_CONFIG c:\tsm\baclient\dsm.opt DSMI_LOG c:\tsm\dldump 4. Asegúrese de que el archivo de opciones del sistema TSM dsm.sys esté ubicado en el directorio c:\tsm\baclient. 5. Asegúrese de que el archivo de opciones del usuario TSM dsm.opt esté ubicado en el directorio c:\tsm\baclient. 6. Establezca la opción PASSWORDACCESS en generate en el archivo de opciones del sistema de Tivoli Storage Manager c:\tsm\baclient\dsm.sys. 7. Registre la contraseña de TSM con la opción generate antes de iniciar por primera vez el Data Links File Manager. De esta manera, no será necesario que proporcione una contraseña cuando el Data Links File Manager inicie una conexión con el servidor TSM. Para obtener más información, consulte la documentación del producto TSM. 8. Establezca la variable de registro DLFM_BACKUP_TARGET en TSM utilizando el mandato siguiente: db2set -g DLFM_BACKUP_TARGET=TSM En este caso, se ignorará el valor de la variable de entorno DLFM_BACKUP_DIR_NAME. Esto activará la opción de copia de seguridad de Tivoli Storage Manager. Notas: 1. Si cambia el valor de la variable de entorno DLFM_BACKUP_TARGET entre TSM y LOCAL durante la ejecución, debe tener en cuenta que los archivos archivados no se moverán a la ubicación de archivo recién especificada. Por ejemplo, si inicia el Data Links File Manager con la variable de entorno DLFM_BACKUP_TARGET establecida en TSM, y si cambia su valor por LOCAL, todos los archivos recién archivados se almacenarán en la nueva ubicación del disco. Los archivos que se archivaron previamente en TSM no se moverán a la nueva ubicación de disco. 2. Para alterar temporalmente la clase de gestión de TSM por omisión, hay una nueva variable de entorno llamada DLFM_TSM_MGMTCLASS. Si esta variable se deja sin establecer, se utilizará la clase de gestión de TSM por omisión. 9. Detenga el Data Links File Manager entrando el mandato dlfm stop. 10. Inicie el Data Links File Manager entrando el mandato dlfm start. ------------------------------------------------------------------------ 4.15 Obtención de copia de seguridad de un Sistema de archivos de diario en AIX En la publicación se indica que se debe detener el Data Links Manager y se debe obtener una copia de seguridad del sistema de archivos fuera de línea. Se sugiere el enfoque siguiente, que suprime la necesidad de detener el Data Links Manager, para los usuarios que requieren una mayor disponibilidad. 1. Acceda al archivo de origen de la CLI quiesce.c y al script de shell online.sh. Estos archivos se encuentran en el directorio /samples/dlfm. 2. Compile quiesce.c: xlC -o quiesce -L$HOME/sqllib/lib -I$HOME/sqllib/include -c quiesce.c 3. Como root, ejecute el script en el nodo que contiene el sistema de archivos DLFS. El script de shell online.sh supone que se tiene, en el nodo del Data Links Manager, una entrada de catálogo para cada una de las bases de datos registradas con el Data Links Manager. También supone que /etc/filesystems contiene la entrada completa para el sistema de archivos DLFS. El script de shell hace lo siguiente: * Inmoviliza todas las tablas de las bases de datos registradas con el Data Links Manager. Esto detendrá cualquier actividad nueva. * Desmonta y vuelve a montar el sistema de archivos como sistema de archivos de sólo lectura. * Obtiene una copia de seguridad del sistema de archivos. * Desmonta y vuelve a montar el sistema de archivos como sistema de archivos de lectura-grabación. * Restablece las tablas de DB2; es decir, las activa sacándolas del estado de inmovilizadas. Se debe modificar el script de forma que se ajuste al entorno, del modo siguiente: 1. Seleccione el mandato de copia de seguridad y coloque la opción do_backup del script. 2. Establezca las variables de entorno siguientes dentro del script: o DLFM_INST: establézcala con el nombre de la instancia DLFM. o PATH_OF_EXEC: establézcala en la vía en que reside el ejecutable "quiesce". Invoque al script del modo siguiente: online.sh ------------------------------------------------------------------------ 4.16 Privilegios del grupo del administrador en Data Links en Windows NT En Windows NT, un usuario que pertenezca al grupo del administrador debería tener los mismos privilegios con respecto a los archivos que se enlazan utilizando DataLinks como usuario root en UNIX para la mayoría de las funciones. La tabla siguiente compara ambas situaciones. Operación Unix (root) Windows NT (Administrador) Redenominar Sí Sí Archivo de acceso sin Sí Sí señal Suprimir Sí No (vea la nota que hay más abajo) Actualizar Sí No (vea la nota que hay más abajo) Nota: NTFS no acepta estas operaciones para un archivo de sólo lectura. El usuario del administrador puede efectuar estas operaciones de modo satisfactorio admitiendo el permiso de grabación para el archivo. ------------------------------------------------------------------------ 4.17 Minimizar el registro cronológico para la instalación de Data Links File System Filter (DLFF) Puede minimizar el registro cronológico para la instalación de Data Links File System Filter (DLFF) cambiando el archivo dlfs_cfg . El archivo dlfs_cfg se pasa a la rutina strload para cargar los parámetros de controlador y configuración. El archivo está ubicado en el directorio /usr/lpp/db2_07_01/cfg/. Por medio de un enlace simbólico, el archivo también puede hallarse en el directorio /etc. El archivo dlfs_cfg tiene el formato siguiente: d 'driver-name' 'vfs number' 'dlfm id' 'global message priority' 'global module priority' - 0 1 donde: d Especifica que ha de cargarse el controlador. driver-name Es la vía de acceso completa al controlador que ha de cargarse. Por ejemplo, la vía de acceso completa para DB2 Versión 7 es /usr/lpp/db2_07_01/bin/dlfsdrv. El nombre del controlador es dlfsdrv. vfs number Es la entrada de vfs para DLFS en /etc/vfs. dlfm id Es el ID de usuario del administrador de DataLinks Manager. global message priority Es el ID de prioridad global del mensaje. global module priority Es el ID de prioridad global del módulo. 0 1 Son los números secundarios para la creación de nodos no clónicos para este controlador. Los nombres de nodo se crean agregando el número secundario al nombre de nodo de controlador clonado. No pueden proporcionarse más de cinco números secundarios (0-4). Un ejemplo tendría esta apariencia: d /usr/lpp/db2_07_01/bin/dlfsdrv 14,208,255,-1 - 0 1 Los mensajes que se registren cronológicamente dependen de los valores para la prioridad global del mensaje y para la prioridad global del módulo. Para minimizar la anotación cronológica, puede cambiar el valor para la prioridad global del mensaje. Hay cuatro valores de prioridad de mensaje que pueden utilizarse: #define LOG_EMERGENCY 0x01 #define LOG_TRACING 0x02 #define LOG_ERROR 0x04 #define LOG_TROUBLESHOOT 0x08 La mayoría de los mensajes de DLFF tienen LOG_TROUBLESHOOT como prioridad de mensajes. Aquí mostramos algunos ejemplos de configuración alternativos: Si necesita mensajes de emergencia y mensajes de error, establezca la prioridad global del mensaje en 5 (1+4) en el archivo de configuración dlfs_cfg: d /usr/lpp/db2_07_01/bin/dlfsdrv 14,208,5,-1 - 0 1 Si sólo se necesitan mensajes de error, establezca la prioridad global del mensaje en d /usr/lpp/db2_07_01/bin/dlfsdrv 14,208,4,-1 - 0 1 Si no requiere anotación cronológica para DLFS, establezca la prioridad global del mensaje en 0: d /usr/lpp/db2_07_01/bin/dlfsdrv 14,208,0,-1 - 0 1 4.17.1 Anotación cronológica de mensajes después de la instalación Si necesita anotar cronológicamente mensajes de emergencia, error y resolución de problemas después de la instalación, debe modificar el archivo dlfs_cfg. El archivo dlfs_cfg está ubicado en el directorio /usr/lpp/db2_07_01/cfg. La prioridad global del mensaje debe establecerse en 255 (prioridad máxima) o en 13 (8+4+1). Establecer la prioridad en 13 (8+4+1) registrará cronológicamente información de emergencia, error y resolución de problemas. Después de establecer la prioridad global del mensaje, desmonte el sistema de archivos de filtro DLFS y vuelva a cargar el controlador dlfsdrv para que los valores de prioridad nuevos se establezcan en el momento de la carga. Después de volver a cargar el controlador dlfsdrv, debe volverse a montar el sistema de archivos de filtro DLFS. Nota: Los valores para dlfs_cfg permanecerán para cualquier carga sucesiva del controlador dlfsdrv hasta que se vuelva a modificar el archivo dlfs_cfg. ------------------------------------------------------------------------ 4.18 La desinstalación de los componentes de DLFM utilizando la SMIT puede eliminar catálogos de archivos adicionales Antes de desinstalar DB2 (Versiones 5, 6 ó 7) de una máquina AIX en la que está instalado Data Links Manager, siga estos pasos: 1. Como root, haga una copia de /etc/vfs utilizando el mandato: cp -p /etc/vfs /etc/vfs.bak 2. Desinstale DB2. 3. Como root, sustituya /etc/vfs con la copia de seguridad creada en el paso 1: cp -p /etc/vfs.bak /etc/vfs ------------------------------------------------------------------------ 4.19 Antes de empezar/Determinar el nombre del sistema principal Es necesario determinar los nombres de cada uno de los servidores DB2 y servidores Data Links. Será necesario conocer estos nombres de sistema principal para verificar la instalación. Al conectar con un DB2 Data Links File Manager, el servidor DB2 UDB envía internamente la información siguiente al DLFM: * Nombre de base de datos * Nombre de instancia * Nombre de sistema principal Luego el DLFM compara esta información con sus tablas internas para determinar si debe permitirse la conexión. Permitirá la conexión sólo si esta combinación de nombre de base de datos, nombre de instancia y nombre de sistema principal se ha registrado con el mismo, utilizando el mandato dlfm add_db. El nombre de sistema principal que se utiliza en el mandato dlfm add_db debe coincidir exactamente con el que envía internamente el servidor DB2 UDB. Utilice el nombre de sistema principal exacto que se obtiene del modo siguiente: 1. Entre el mandato hostname en el servidor DB2. Por ejemplo, este mandato puede devolver db2server. 2. Dependiendo de la plataforma, lleve a cabo una de las acciones siguientes: o En AIX, entre el mandato host db2server, donde db2server es el nombre obtenido en el paso anterior. Este mandato debe devolver una salida parecida a la siguiente: db2server.services.com is 9.11.302.341, Alias: db2server o En Windows NT, entre el mandato nslookup db2server, donde db2server es el nombre obtenido en el paso anterior. Este mandato debe devolver una salida parecida a la siguiente: Servidor: dnsserv.services.com Dirección: 9.21.14.135 Nombre: db2server.services.com Dirección: 9.21.51.178 o En Solaris, entre cat /etc/hosts | grep 'nombresistemaprincipal'. Esto debe devolver una salida parecida a la siguiente si el nombre de sistema principal se especifica sin un nombre de dominio en /etc/hosts: 9.112.98.167 db2server loghost Si se especifica el nombre de sistema principal con un nombre de dominio, el mandato devuelve una salida parecida a la siguiente: 9.112.98.167 db2server.services.com loghost Utilice db2server.services.com para el nombre de sistema principal cuando registre una base de datos de DB2 UDB utilizando el mandato dlfm add_db. Las conexiones internas del servidor DB2 con el DLFM fallarán si se utilizan otros alias en el mandato dlfm add_db. Un servidor Data Links se registra en una base de datos de DB2 utilizando el mandato de DB2 "add datalinks manager for database alias_basedatos using node hostname port número_puerto". El nombre de sistema principal es el nombre del servidor Data Links. En este mandato se puede utilizar cualquier alias válido del servidor Data Links. Los valores DATALINK que son referencias a este servidor Data Links deben especificar el nombre de sistema principal en el valor de URL; es decir, debe utilizarse el nombre exacto que se ha utilizado en el mandato "add datalinks manager" al asignar valores de URL a columnas DATALINK. La utilización de un alias distinto ocasionará una anomalía en la sentencia de SQL. ------------------------------------------------------------------------ 4.20 Trabajo con Data Links File Manager: Borrado después de descartar un DB2 Data Links Manager de una base de datos de DB2 Cuando se descarta un DB2 Data Links Manager de una base de datos utilizando el mandato DROP DATALINKS MANAGER, el comando por sí mismo no limpia la información correspondiente en el DB2 Data Links Manager. Los usuarios pueden iniciar explícitamente el desenlace de cualquier archivo enlazado a la base de datos y la recogida de desechos de información de copia de seguridad. Esto se puede llevar a cabo utilizando el mandato dlfm drop_dlm. Este mandato inicia la supresión asíncrona de toda la información para una base de datos específica. El DB2 Data Links Manager debe estar ejecutándose para que este mandato sea satisfactorio. Es sumamente importante que este mandato se utilice únicamente después de descartar un DB2 Data Links Manager; de lo contrario, se perderá información importante sobre el DB2 Data Links Manager y no se podrá recuperar. Para iniciar el proceso de desenlace y de recogida de desechos de información de copia de seguridad para una base de datos específica: 1. Inicie una sesión en el sistema como Administrador de DB2 Data Links Manager. 2. Emita el mandato siguiente: dlfm drop_dlm basedatos instancia nombresistemaprincipal donde: basedatos es el nombre de la base de datos de DB2 UDB remota; instancia es la instancia bajo la que reside la base de datos y nombresistemaprincipal es el nombre del sistema principal del servidor DB2 UDB en el que reside la base de datos. 3. Finalice la sesión. Para obtener un marco hipotético completo sobre la utilización que muestre el contexto en el que debe utilizarse este mandato, consulte Consulta de mandatos. Se ha creado un nuevo código de error para este mandato (consulte 4.21, DLFM1001E (Nuevo mensaje de error)). ------------------------------------------------------------------------ 4.21 DLFM1001E (Nuevo mensaje de error) DLFM1001E: Error en el proceso de drop_dlm Causa: El Data Links Manager no ha podido iniciar el proceso de desenlace y recogida de desechos para la base de datos especificada. Este puede suceder debido a cualquiera de las razones siguientes: * El Data Links Manager no se está ejecutando. * Se ha especificado una combinación no válida de base de datos, instancia y nombre de sistema principal. * Se ha producido una anomalía en uno de los servicios componentes del Data Links Manager. Acción: Realice los pasos siguientes: 1. Asegúrese de que el Data Links Manager se esté ejecutando. Inicie el Data Links Manager si todavía no se está ejecutando. 2. Asegúrese de que la combinación de base de datos, instancia y nombre de sistema principal identifica una base de datos registrada. Puede hacerlo utilizando el mandato "dlfm list registered databases" en el Data Links Manager. 3. Si todavía se produce un error, consulte la información que se encuentra en el archivo db2diag.log para ver si alguno de los servicios componentes (por ejemplo, el Servicio de gestión de conexiones, el Servicio de gestión de transacciones, etc.) ha sido anómalo. Anote el código de error de db2diag.log y efectúe las acciones oportunas que se sugieren bajo dicho código de error. ------------------------------------------------------------------------ 4.22 Opción de archivo de configuración de puesta a punto DLFM Se ha eliminado la opción dlfm.cfg de puesta a punto de dlfm. Debe hacerse caso omiso a las referencias a la misma que aparezcan en la documentación. ------------------------------------------------------------------------ 4.23 Error al ejecutar el script de Data Links/DFS dmapp_prestart en AIX Si el mandato /usr/sbin/cfgdmepi -a "/usr/lib/drivers/dmlfs.ext" es anómalo con un código de retorno de 1 al ejecutar el script de Data Links/DFS dmapp_prestart, instale DFS 3.1 ptfset1 para arreglar cfgdmepi. ------------------------------------------------------------------------ 4.24 Integración de Tivoli Space Manager con Data Links Ahora DB2 Data Links Manager podrá aprovechar las funciones de Tivoli Space Manager. El programa cliente de Tivoli Space Manager Hierarchical Storage Manager (HSM) migra automáticamente los archivos seleccionados al almacenamiento para mantener niveles específicos de espacio libre en los sistemas de archivos locales. Vuelve a llamar automáticamente a los archivos migrados cuando se accede a los mismos y permite a los usuarios migrar y volver a llamar archivos específicos. Esta característica ayuda a los clientes que tienen sistemas de archivos con archivos grandes que se tienen que mover de forma periódica a un almacenamiento terciario en el que el espacio del sistema de archivos se tiene que gestionar de forma regular. Para muchos clientes, Tivoli Space Manager proporciona actualmente los métodos necesarios para gestionar su almacenamiento terciario. El nuevo soporte de DB2 Data Links Manager de Tivoli Space Manager ofrece mayor flexibilidad para gestionar el espacio para archivos DATALINK. En lugar de tener que preasignar almacenamiento suficiente en el sistema de archivos DB2 Data Links Manager para todos los archivos que se puedan almacenar ahí, Tivoli Space Manager permite que las asignaciones del sistema de archivos gestionado por Data Links se ajusten durante un periodo de tiempo sin el riesgo de que se llene sin querer el sistema de archivos durante su uso normal. Adición de soporte de Data Links y HSM a un sistema de archivos Cuando registre un sistema de archivos con Hierarchical Storage Management (HSM), hágalo con HSM primero y luego con DataLinks File Manager. 1. Registre con HSM, mediante el mandato "dsmmigfs add /fs". 2. Registre con DLM, mediante el mandato "dlfmfsmd /fs". El soporte de Data Links de un sistema de archivos se refleja en la stanza en /etc/filesystems para un sistema de archivos HSM a través de las siguientes entradas: vfs = dlfs mount = false options = rw,Basefs=fsm nodename = - Adición de soporte de Data Links a un sistema de archivos HSM existente Registre con DLM, mediante el mandato "dlfmfsmd /fs". Adición de soporte de HSM a un sistema de archivos Data Links existente 1. Registre con HSM, mediante el mandato "dsmmigfs add /fs". 2. Registre con DLM, mediante el mandato "dlfmfsmd /fs". Eliminación del soporte de Data Links de un sistema de archivos Data Links-HSM Elimine el soporte de Data Links utilizando el mandato "dlfmfsmd -j /fs". Eliminación del soporte de HSM de un sistema de archivos Data Links-HSM 1. Elimine el soporte de HSM mediante el mandato "dsmmigfs remove /fs". 2. Elimine el soporte de Data Links, "dlfmfsmd -j /fs". 3. Registre con DLM, mediante el mandato "dlfmfsmd /fs". Eliminación del soporte de Data Links y HSM de un sistema de archivos Data Links-HSM 1. Elimine el soporte de HSM mediante el mandato "dsmmigfs remove /fs". 2. Elimine el soporte de Data Links, mediante el mandato "dlfmfsmd -j/fs". 4.24.1 Restricciones y limitaciones Esta función actualmente sólo recibe soporte en AIX. La migración selectiva (dsmmigrate) y rellamada de un archivo enlazado FC (BD con permiso de lectura) sólo puede realizarla un usuario root. La migración selectiva sólo la puede realizar el propietario del archivo, que en el caso de archivos de base de datos con permiso de lectora es el Administrador de DataLink Manager (dlfm). Para acceder a estos archivos se necesita una señal del lado de la base de datos del sistema principal. El único usuario que no necesita señal es el usuario "root". Es más fácil para un usuario "root" realizar la migración selectiva y volver a llamar a archivos de base de datos con permiso de lectura. El usuario dlfm puede migrar un archivo FC mediante una señal válida únicamente la primera vez. La segunda vez que se intente la migración (después de la rellamada), la operación fallará con el mensaje de error "ANS1028S Error interno del programa. Póngase en contacto con el representante de servicio." Si un usuario que no sea root intenta ejecutar dsmmigrate en un archivo FC, obtendrá un error. Esta limitación es menor puesto que normalmente son los administradores los que acceden a los archivos del servidor de archivos. Las llamadas del sistema stat y statfs mostrarán Vfs-type como fsm en lugar de dlfs, aunque dlfs esté montado sobre fsm. El comportamiento anterior es para la función normal de deamons dsmrecalld, que realizan operaciones statfs en el sistema de archivos para comprobar si su Vfs-type es fsm o no. El mandato "dsmls" no muestra ninguna salida si un archivo que tiene el número de inode mínimo está enlazado a FC (BD con permiso de lectura) El mandato dsmls es parecido al mandato ls y lista los archivos que administra TSM. No es necesaria ninguna acción por parte del usuario. ------------------------------------------------------------------------ 4.25 Capítulo 4. Instalación y configuración de DB2 Data Links Manager para AIX 4.25.1 Consideraciones para la instalación 4.25.1.1 Migración de DB2 File Manager Versión 5.2 a DB2 Data Links Manager Versión 7 La información que se encuentra en el paso 3 es incorrecta. El Paso 3 debería decir lo siguiente: "3. Como administrador de DLFM, ejecute el mandato /usr/lpp/db2_07_01/adm/db2dlmmg. ------------------------------------------------------------------------ Suplemento de instalación y configuración ------------------------------------------------------------------------ 5.1 Capítulo 5. Instalación de clientes DB2 en sistemas operativos UNIX 5.1.1 Parámetros de configuración del kernel HP-UX La recomendación para configurar parámetros del kernel HP-UX indica incorrectamente que msgmbn y msgmax se deben establecer en 65535 o superior. Ambos parámetros deben tener exactamente el valor 65535. ------------------------------------------------------------------------ 5.2 Capítulo 12. Ejecución de sus propias aplicaciones 5.2.1 Vinculación de programas de utilidad para bases de datos utilizando el Cliente de tiempo de ejecución El Cliente de tiempo de ejecución no se puede utilizar para vincular los programas de utilidad de base de datos (import, export, reorg, el procesador de línea de mandatos) ni los archivos de vinculación de CLI de DB2 para cada base de datos antes de utilizarlos con la base de datos. En su lugar se debe utilizar el DB2 Administration Client o el DB2 Application Development Client. Debe vincular estos programas de utilidad de base de datos y los archivos de vinculación de CLI de DB2 con cada base de datos para poderlos utilizar con la base de datos. En un entorno de red, si utilizan varios clientes que se ejecutan en sistemas operativos distintos, o que corresponden a versiones o niveles de servicio de DB2 distintos, debe vincular los programas de utilidad una vez para cada combinación de sistema operativo y versión de DB2. 5.2.2 Acceso de clientes UNIX a DB2 utilizando ODBC En el Capítulo 12 ("Ejecución de las aplicaciones propias del usuario") se establece que es necesario actualizar odbcinst.ini si se instala un ODBC Driver Manager con la aplicación de cliente ODBC u ODBC SDK. Esto es parcialmente incorrecto. No es necesario actualizar odbcinst.ini si se instala un producto Merant ODBC Driver Manager. ------------------------------------------------------------------------ 5.3 Capítulo 24. Configuración de un sistema federado para que acceder a varias fuentes de datos 5.3.1 Sistemas federados Un sistema federado DB2 es un tipo especial de sistema de gestión de bases de datos distribuidas (DBMS). Un sistema federado le permite consultar y recuperar datos ubicados en otros DBMS, como Oracle, Sybase y Microsoft SQL Server. Las sentencias SQL pueden hacer referencia a varios DBMS o a bases de datos individuales en una sola sentencia. Por ejemplo, puede unir datos ubicados en una tabla DB2 Universal Database, una tabla Oracle y una vista Sybase. Los DBMS soportados incluyen Oracle, Sybase, Microsoft SQL Server (para AIX y Windows NT) y miembros de la familia DB2 Universal Database (como DB2 para OS/390, DB2 para AS/400 y DB2 para Windows). Un sistema federado DB2 consta de un servidor con una instancia de DB2 (una base de datos que servirá como base de datos federada) y una o más fuentes de datos. La base de datos federada contiene entradas de catálogo que identifican fuentes de datos y sus características. Una fuente de datos consta de un DBMS y datos. DB2 Universal Database tiene protocolos, denominados acomodadores, que puede utilizar para acceder a estas fuentes de datos. Los acomodadores son mecanismos que utilizan los servidores federados para comunicarse con fuentes de datos y recuperar datos de las mismas. Los apodos se utilizan para hacer referencia a tablas y vistas situadas en las fuentes de datos. Las aplicaciones se conectan con la base de datos federadas igual que lo hacen con cualquier otra base de datos DB2. El acomodador que utilice depende de la plataforma en que se esté ejecutando DB2 Universal Database. Después de configurar un sistema federado, se puede acceder la información de las fuentes de datos como si estuviera en una base de datos grande. Los usuarios y las aplicaciones envían consultas a una base de datos federada, la cual recupera datos de las fuentes de datos. Un sistema federado DB2 funciona bajo algunas restricciones. Las peticiones distribuidas se limitan a operaciones de sólo lectura en DB2 Versión 7. Además, no puede ejecutar operaciones de programas de utilidad (LOAD, REORG, REORGCHK, IMPORT, RUNSTATS, etc.) sobre apodos. Sin embargo, puede utilizar un recurso de paso a través para someter sentencias DDL y DML directamente a los DBMS utilizando el dialecto de SQL asociado a la fuente de datos. 5.3.1.1 Restricción Los nuevos acomodadores de la Versión 7.2 (como Oracle en Linux y Solaris, Sybase en AIX y Solaris y Microsoft SQL Server en NT y AIX) no están disponibles en el FixPak 3; debe adquirir DB2 Relational Connect Versión 7.2. 5.3.2 Instalación de DB2 Relational Connect Esta sección contiene instrucciones para instalar DB2 Relational Connect en el servidor que utilizará como servidor del sistema federado. 5.3.2.1 Instalación de DB2 Relational Connect en servidores Windows NT Antes de instalar DB2 Relational Connect en el servidor federado Windows NT: * Asegúrese de tener DB2 Universal Database Enterprise Edition o DB2 Universal Database Enterprise -- Extended Edition instalado en el servidor federado. Si tiene intención de incluir bases de datos de la familia DB2 en las peticiones distribuidas, debe haber seleccionado la opción de fuentes de datos Unión distribuida para DB2 al instalar DB2 Universal Database. Para comprobar que esta opción se ha implementado, compruebe que el parámetro FEDERATED tiene el valor YES. Puede comprobar este valor emitiendo el mandato GET DATABASE MANAGER CONFIGURATION, que muestra todos los parámetros y sus valores actuales. * Asegúrese de haber instalado el software cliente correspondiente a la fuente de datos (como Sybase Open Client) en el servidor federado. 1. Inicie una sesión en el sistema con la cuenta de usuario creada para realizar la instalación. 2. Concluya cualquier programa que se esté ejecutando para que el programa de instalación pueda actualizar los archivos necesarios. 3. Invoque el programa de instalación (setup). Puede invocar el programa de instalación de forma automática o manual. Si el programa de instalación no se inicia automáticamente, o si desea ejecutar el programa de instalación en otro idioma, invóquelo de forma manual. o Para invocar automáticamente el programa de instalación, inserte el CD de DB2 Relational Connect en la unidad. La característica de ejecución automática inicia automáticamente el programa de instalación. El idioma del sistema está determinado y se ejecuta el programa de instalación correspondiente a dicho idioma. o Para invocar el programa de instalación de forma manual: a. Pulse Inicio y seleccione la opción Ejecutar. b. En el campo Abrir, escriba el siguiente mandato: x:\setup /i idioma donde: x: Representa la unidad de CD-ROM. idioma Representa el código de país correspondiente a su idioma (por ejemplo, EN para inglés). c. Pulse Aceptar. Se abre el programa de instalación. 4. Pulse Instalar para comenzar el proceso de instalación. 5. Siga las solicitudes del programa de instalación. Cuando el programa finalice, DB2 Relational Connect estará instalado en el directorio de instalación con los otros productos DB2. 5.3.2.2 Instalación de DB2 Relational Connect en servidores AIX, Linux y del entorno operativo Solaris Antes de instalar DB2 Relational Connect en sus servidores federados AIX, Linux y del entorno operativo Solaris: * Asegúrese de tener DB2 Universal Database Enterprise Edition o DB2 Universal Database -- Extended Edition instalado en el servidor federado. Si tiene intención de incluir bases de datos de la familia DB2 en las peticiones distribuidas, debe haber seleccionado la opción de fuentes de datos Unión distribuida para DB2 al instalar DB2 Universal Database. Para comprobar que esta opción se ha implementado, compruebe que el parámetro FEDERATED tiene el valor YES. Puede comprobar este valor emitiendo el mandato GET DATABASE MANAGER CONFIGURATION, que muestra todos los parámetros y sus valores actuales. * Asegúrese de haber instalado el software cliente correspondiente a la fuente de datos (como Sybase Open Client) en el servidor federado. Para instalar DB2 Relational Connect en servidores AIX, Linux y del entorno operativo Solaris, utilice el programa de utilidad db2setup: 1. Inicie una sesión como usuario con autorización root. 2. Inserte y monte el CD-ROM del producto DB2. Para obtener información sobre cómo montar un CD-ROM, consulte el manual Quick Beginnings for AIX. 3. Cambie al directorio en el que está montado el CD-ROM entrando el mandato cd /cdrom, donde cdrom es el punto de montaje del CD-ROM del producto. 4. Escriba el mandato ./db2setup. Tras unos segundos, se abrirá la ventana Programa de utilidad de instalación de DB2. 5. Seleccione Instalar. Se abrirá la ventana Instalar DB2 V7. 6. Navegue al producto DB2 Relational Connect correspondiente a su cliente, por ejemplo Relational Connect para Sybase, y pulse la barra espaciadora para seleccionarlo. Aparecerá un asterisco junto a la opción cuando esté seleccionada. 7. Seleccione OK. Se abrirá la ventana Crear servicios de DB2. 8. Puede elegir crear una instancia de DB2. Seleccione OK. Se abrirá la ventana Instalación de informe resumen. Dos elementos se instalan automáticamente: la unión distribuida para Oracle y la Signatura del producto para DB2 Relational Connect. Necesita la Signatura del producto para poderse conectar a fuentes de datos Sybase. 9. Seleccione Continuar. Aparecerá una ventana que indica que esta es su última oportunidad para detener la instalación de Relational Connect. Seleccione OK para continuar con la instalación. La instalación puede tardar unos minutos. 10. Cuando aparezca un aviso que indica que la instalación ha finalizado satisfactoriamente, seleccione OK. Se abre la ventana Informe resumen, que indica si cada opción instalada se ha realizado correctamente o ha habido errores; vuelva a seleccionar OK. Cuando finalice la instalación, DB2 Relational Connect estará instalado en el directorio con los demás productos DB2. En AIX, este es el directorio /usr/lpp/db2_07_01. En Solaris, es el directorio /opt/IBMdb2/V7.1. En Linux, es el directorio /usr/IBMdb2/V7.1. ------------------------------------------------------------------------ 5.4 Capítulo 26. Acceso a fuentes de datos Oracle Además de dar soporte a acomodadores en AIX y Windows NT, DB2 Universal Database ahora da soporte al acomodador de Oracle en Linux y en el entorno operativo Solaris. Este soporte está limitado a Oracle Versión 8. Para acceder a los acomodadores correspondientes a estas plataformas, tiene que insertar el CD de la V7.2 de DB2 Relational Connect y seleccionar DB2 Relational Connect para fuentes de datos Oracle. Una vez instalado DB2 Relational Connect, puede añadir una fuente de datos Oracle a un servidor federado: 1. Instale y configure el software cliente de Oracle en el servidor federado de DB2. 2. Establezca las variables de entorno de fuentes de datos modificando el archivo db2dj.ini y emitiendo un mandato db2set. 3. Para servidores federados de DB2 que se ejecuten en plataformas UNIX, ejecute el script djxlink para editar con enlace las bibliotecas Oracle SQL*Net o Net8 al servidor federado de DB2. 4. Asegúrese de que el archivo tnsnames.ora de SQL*Net o Net8 se actualiza. 5. Recicle la instancia de DB2. 6. Cree el acomodador. 7. Opcional: Establezca la variable de entorno DB2_DJ_COMM. 8. Cree un servidor. 9. Cree una correlación de usuario. 10. Cree apodos para tablas y vistas. Encontrará instrucciones detalladas para estos pasos, incluido el establecimiento de variables de entorno, en el Capítulo 26. Configuración de un sistema federado para acceder a fuentes de datos de Oracle de la publicación Suplemento de instalación y configuración de DB2. 5.4.1 Errores de la documentación El apartado, "Cómo añadir fuentes de datos de Oracle a un sistema federado" tiene los errores siguientes: * Falta un paso en el procedimiento. Los pasos correctos son: 1. Instale y configure el software de cliente de Oracle en el servidor federado de DB2 utilizando la documentación facilitada por Oracle. 2. Establezca las variables de entorno de la fuente de datos modificando el archivo db2dj.ini y emitiendo el mandato db2set. El mandato db2set actualiza el registro del perfil de DB2 con sus valores. En el Capítulo 26 se pueden encontrar instrucciones detalladas para establecer las variables de entorno. Configuración de un sistema federado para acceder a fuentes de datos de Oracle de la publicación Suplemento de instalación y configuración de DB2. 3. Para servidores federados de DB2 que se ejecutan en plataformas UNIX, ejecute el script djxlink para montar con enlace las bibliotecas SQL*Net o Net8 de Oracle en el servidor federado de DB2. En función de la plataforma, el script djxlink se encuentra en: /usr/lpp/db2_07_01/bin en AIX /opt/IBMdb2/V7.1/bin en Solaris /usr/IBMdb2/V7.1/bin en Linux Sólo debe ejecutar el script djxlink después de instalar el software cliente de Oracle en el servidor federado de DB2. * La documentación indica que ha de establecerse: DB2_DJ_INI = sqllib/cfg/db2dj.ini Esto es incorrecto, debería establecerse en lo siguiente: DB2_DJ_INI = $INSTHOME/sqllib/cfg/db2dj.ini ------------------------------------------------------------------------ 5.5 Acceso a fuentes de datos Sybase (capítulo nuevo) Antes de añadir fuentes de datos Sybase a un servidor federado, tiene que instalar y configurar el software Sybase Open Client en el servidor federado de DB2. Consulte los procedimientos de instalación de la documentación que viene con el software de bases de datos Sybase para ver detalles específicos sobre cómo instalar el software Open Client. Como parte de la instalación, asegúrese de incluir los procedimientos almacenados de catálogos y las bibliotecas de Sybase Open Client. Para configurar el servidor federado para que acceda a datos almacenados en fuentes de datos Sybase, tiene que: 1. Instalar DB2 Relational Connect Versión 7.2. Consulte 5.3.2, Instalación de DB2 Relational Connect. 2. Añadir fuentes de datos Sybase al servidor federado. 3. Especificar las páginas de códigos de Sybase. Este capítulo trata los pasos 2 y 3. Las instrucciones de este capítulo se aplican a Windows NT, AIX y al entorno operativo Solaris. Si hay diferencias específicas para cada plataforma, se indican. 5.5.1 Adición de fuentes de datos Sybase a un servidor federado Para añadir una fuente de datos Sybase a un servidor federado, tiene que: 1. Establecer las variables de entorno y actualizar el registro de perfiles. 2. Enlazar DB2 al software cliente de Sybase (sólo AIX y Solaris) 3. Reciclar la instancia de DB2. 4. Crear y configurar un archivo de interfaces. 5. Crear el acomodador. 6. Opcional: Establecer la variable de entorno DB2_DJ_COMM. 7. Crear un servidor. 8. Opcional: establecer la opción del servidor CONNECTSTRING 9. Crear una correlación de usuario. 10. Crear apodos para tablas y vistas. Estos pasos se explican en detalle en esta sección. 5.5.1.1 Paso 1: Establecer las variables de entorno y actualizar el registro de perfiles Establezca las variables de entorno de la fuente de datos modificando el archivo db2dj.ini y emitiendo el mandato db2set. El archivo db2dj.ini contiene información de configuración sobre el software del cliente Sybase instalado en el servidor federado. El mandato db2set actualiza el registro del perfil de DB2 con sus valores. En un sistema de bases de datos particionado, puede utilizar un solo archivo db2dj.ini para todos los nodos de una determinada instancia o puede utilizar un archivo db2dj.ini exclusivo para uno o más nodos de una instancia determinada. Un sistema de bases de datos no particionado sólo puede tener un archivo db2dj.ini por instancia. Para establecer las variables de entorno: 1. Edite el archivo db2dj.ini situado en sqllib/cfg y establezca la siguiente variable de entorno: SYBASE="" donde es el directorio en el que está instalado el cliente Sybase. 2. Actualice el archivo .profile de la instancia DB2 con la variable de entorno de Sybase. Puede hacerlo emitiendo el siguiente mandato: export PATH="$SYBASE/bin:$PATH" export SYBASE="" donde es el directorio en el que está instalado el cliente Sybase. 3. Ejecute la instancia de DB2 .profile entrando: . .profile 4. Emita el mandato db2set para actualizar el registro de perfiles de DB2 con los cambios. La sintaxis de este mandato, db2set, depende de la estructura del sistema de bases de datos. Este paso sólo es necesario si utiliza el archivo db2dj.ini en cualquiera de las siguientes estructuras de sistemas de bases de datos: Si utiliza el archivo db2dj.ini en un sistema de bases de datos no particionado o si desea que el archivo db2dj.ini se aplique sólo al nodo actual, emita: db2set DB2_DJ_INI = sqllib/cfg/db2dj.ini Si utiliza el archivo db2dj.ini en un sistema de bases de datos particionado y desea que los valores del archivo db2dj.ini se apliquen a todos los nodos de esta instancia, emita: db2set -g DB2_DJ_INI = sqllib/cfg/db2dj.ini Si utiliza el archivo db2dj.ini en un sistema de bases de datos particionado y desea que los valores del archivo db2dj.ini se apliquen a un nodo específico, emita: db2set -i INSTANCEX 3 DB2_DJ_INI = sqllib/cfg/node3.ini donde: INSTANCEX Es el nombre de la instancia. 3 Es el número de nodo listado en el archivo db2nodes.cfg. node3.ini Es la versión modificada y con el nombre cambiado del archivo db2dj.ini. 5.5.1.2 Paso 2: Enlazar DB2 al software cliente de Sybase (sólo AIX y Solaris) Para habilitar el acceso a fuentes de datos Sybase, el servidor federado de DB2 debe estar editado con enlace a las bibliotecas del cliente. El proceso de editar con enlace crea un acomodador para cada fuente de datos con la que se va a comunicar el servidor federado. Cuando ejecuta el script djxlink, crea la biblioteca del acomodador. Para emitir el tipo de script djxlink: djxlink 5.5.1.3 Paso 3: Reciclar la instancia de DB2 Para asegurarse de que las variables de entorno están definidas en el programa, recicle la instancia de DB2. Cuando recicla la instancia, renueva la instancia de DB2 para que acepte los cambios realizados. Emita los siguientes mandatos para reciclar la instancia de DB2: En servidores DB2 para Windows NT: NET STOP nombre_instancia NET START nombre_instancia En servidores DB2 para AIX y Solaris: db2stop db2start 5.5.1.4 Paso 4: Crear y configurar un archivo de interfaces Para crear y configurar un archivo de interfaces, debe crear el archivo y dejarlo accesible. 1. Utilice el programa de utilidad suministrado por Sybase para crear un archivo de interfaces que incluya los datos para todos los Sybase Open Servers a los que desea acceder. Consulte la documentación de instalación de Sybase para obtener más información sobre cómo utilizar este programa de utilidad. Windows NT suele llamar a este archivo sql.ini. Cambie el nombre del archivo que acaba de crear, sql.ini, por interfaces para que el archivo tenga el mismo nombre en todas las plataformas. Si elige no cambiar el nombre de sql.ini por interfaces, debe utilizar el parámetro IFILE o la opción CONNECTSTRING que se explica en el paso 8. En sistemas AIX y Solaris, este archivo se llama /sqllib/interfaces. 2. Permita que DB2 pueda acceder al archivo de interfaces. En servidores DB2 para Windows NT: Coloque el archivo en el directorio %DB2PATH% de la instancia de DB2. En servidores DB2 para AIX y Solaris: Coloque el archivo en el directorio $HOME/sqllib de la instancia de DB2. Utilice el mandato ln para enlazar con el archivo desde el directorio $HOME/sqllib de la instancia de DB2. Por ejemplo: ln -s -f /home/sybase/interfaces /home/db2djinst1/sqllib 5.5.1.5 Paso 5: Crear el acomodador Utilice la sentencia CREATE WRAPPER para especificar el acomodador que se utilizará para acceder a fuentes de datos Sybase. Los acomodadores son mecanismos que utilizan los servidores federados para comunicarse con fuentes de datos y recuperar datos de las mismas. DB2 incluye dos acomodadores para Sybase, CTLIB y DBLIB. El siguiente ejemplo muestra una sentencia CREATE WRAPPER: CREATE WRAPPER CTLIB donde CTLIB es el nombre de acomodador por omisión que se utiliza con el software Sybase Open Client. El acomodador CTLIB se puede utilizar en servidores Windows NT, AIX y Solaris. Puede sustituir el nombre de acomodador por omisión por el nombre que elija. Sin embargo, si lo hace, debe también incluir el parámetro LIBRARY y el nombre de la biblioteca del acomodador correspondiente al servidor federado en la sentencia CREATE WRAPPER. Consulte la sentencia CREATE WRAPPER del manual DB2 SQL Reference para obtener más información sobre nombres de bibliotecas de acomodadores. 5.5.1.6 Paso 6: Opcional: Establecer la variable de entorno DB2_DJ_COMM Para mejorar el rendimiento cuando se accede a la fuente de datos Sybase, establezca la variable de entorno DB2_DJ_COMM. Esta variable determina si el acomodador se carga cuando se inicializa el servidor federado. Establezca la variable de entorno DB2_DJ_COMM de modo que incluya la biblioteca del acomodador que corresponde al acomodador que ha especificado en el paso anterior; por ejemplo: En servidores DB2 para Windows NT: db2set DB2_DJ_COMM='ctlib.dll' En servidores DB2 para AIX: db2set DB2_DJ_COMM='libctlib.a' En servidores DB2 para Solaris: db2set DB2_DJ_COMM='libctlib.so' Asegúrese de que no hay espacios junto al signo igual (=). Consulte el manual DB2 SQL Reference para obtener más información sobre nombres de bibliotecas de acomodadores. Consulte el manual Administration Guide para obtener más información sobre la variable de entorno DB2_DJ_COMM. 5.5.1.7 Paso 7: Crear el servidor Utilice la sentencia CREATE SERVER para definir cada servidor Sybase a cuyas fuentes de datos desea acceder; por ejemplo: CREATE SERVER SYBSERVER TYPE SYBASE VERSION 12.0 WRAPPER CTLIB OPTIONS (NODE 'sybnode', DBNAME'sybdb') donde: SYBSERVER Es un nombre que el usuario asigna al servidor Sybase. Este nombre debe ser exclusivo. SYBASE Es el tipo de fuente de datos cuyo acceso está configurando. Sybase es la única fuente de datos que recibe soporte. 12.0 Es la versión de Sybase a la que está accediendo. Las versiones soportadas son 10.0, 11.0, 11.1, 11.5, 11.9 y 12.0. CTLIB Es el nombre del acomodador que ha especificado en la sentencia CREATE WRAPPER. 'sybnode' Es el nombre del nodo en el que reside SYBSERVER. Obtenga el valor del nodo del archivo de interfaces. Este valor es sensible a mayúsculas y minúsculas. Aunque el nombre del nodo se especifica como una opción, es necesario para fuentes de datos Sybase. Consulte el manual DB2 SQL Reference para obtener información sobre opciones adicionales. 'sybdb' Es el nombre de la base de datos de Sybase a la que desea acceder. 5.5.1.8 Opcional: Paso 8: Establecer la opción del servidor CONNECTSTRING Especifique los umbrales de tiempo de espera excedido, la vía de acceso y el nombre del archivo de interfaces y el tamaño de paquete del archivo de interfaces. Sybase Open Client utiliza los umbrales de tiempo de espera excedido para interrumpir consultas y respuestas que se ejecutan durante demasiado tiempo. Puede establecer estos umbrales en DB2 mediante la opción CONNECTSTRING de la sentencia CREATE SERVER OPTION DDL. Utilice la opción CONNECTSTRING para especificar: * Duración de tiempo de espera para consultas SQL. * Duración de tiempo de espera para respuesta de inicio de sesión. * Vía de acceso y nombre del archivo de interfaces. * Tamaño de paquete. .-;-----------------------------------. V | >>----+-------------------------------+--+--------------------->< +-TIMEOUT-- = --segundos--------+ +-LOGIN_TIMEOUT-- = --segundos--+ +-IFILE-- = --"serie"-----------+ +-PACKET_SIZE-- = --bytes-------+ '-;-----------------------------' TIMEOUT Especifica el número de segundos que debe esperar DB2 Universal Database una respuesta de Sybase Open Client para cualquier sentencia SQL. El valor de segundos es un número entero positivo en el rango de enteros de DB2 Universal Database. El valor de tiempo de espera excedido que especifique depende de qué acomodador utilice. Los servidores Windows NT, AIX y Solaris pueden utilizar el acomodador DBLIB. El valor por omisión del acomodador DBLIB es 0. En servidores Windows NT, AIX y Solaris, el valor por omisión correspondiente a DBLIB hace que DB2 Universal Database espere indefinidamente una respuesta. LOGIN_TIMEOUT Especifica el número de segundos que debe esperar DB2 Universal Database una respuesta de Sybase Open Client a una petición de inicio de sesión. Los valores por omisión son los mismos que para TIMEOUT. IFILE Especifica la vía de acceso y nombre del archivo de interfaces de Sybase Open Client. La vía de acceso identificada en serie debe estar entre dobles comillas ("). En servidores Windows, el valor por omisión es %DB2PATH%. En servidores AIX y Solaris, el valor por omisión es sqllib/interfaces del directorio inicial de la instancia de DB2 Universal Database. PACKET_SIZE Especifica el tamaño de paquete del archivo de interfaces en bytes. Si la fuente de datos no da soporte al tamaño de paquete especificado, la conexión fallará. Al aumentar el tamaño de paquete cuando cada registro es muy grande (por ejemplo, cuando se insertan filas en tablas grandes), se aumenta significativamente el rendimiento. El tamaño en bytes es un valor numérico. Obtendrá más información en los manuales de consulta de Sybase. Ejemplos: En servidores Windows NT, para establecer el valor de tiempo de espera en 60 segundos y el archivo de interfaces en C:\etc\interfaces utilice el siguiente mandato: CREATE SERVER OPTION connectstring FOR SERVER sybase1 SETTING 'TIMEOUT=60;LOGIN_TIMEOUT=5;IFILE="C:\etc\interfaces";' En servidores AIX y Solaris, para establecer el valor de tiempo de espera en 60 segundos y el archivo de interfaces en /etc/interfaces utilice el siguiente mandato: CREATE SERVER OPTION connectstring FOR SERVER sybase1 SETTING 'TIMEOUT=60;PACKET_SIZE=4096;IFILE="/etc/interfaces";' 5.5.1.9 Paso 9: Crear una correlación de usuario Si un ID de usuario o contraseña del servidor federado no coinciden con el ID de usuario o contraseña de una fuente de datos Sybase, utilice la sentencia CREATE USER MAPPING para correlacionar el ID de usuario local con el ID de usuario y contraseña definidos en la fuente de datos Sybase; por ejemplo: CREATE USER MAPPING FOR DB2USER SERVER SYBSERVER OPTIONS ( REMOTE_AUTHID 'sybuser', REMOTE_PASSWORD 'dayl1te') donde: DB2USER Es el ID de usuario local que está correlacionando con un ID de usuario definido en la fuente de datos Sybase. SYBSERVER Es el nombre de la fuente de datos Sybase definida en la sentencia CREATE SERVER. 'sybuser' Es el ID de usuario de la fuente de datos Sybase con la que está correlacionando DB2USER. Este valor es sensible a mayúsculas y minúsculas. 'dayl1te' Es la contraseña asociada con 'sybuser'. Este valor es sensible a mayúsculas y minúsculas. Consulte el manual DB2 SQL Reference para obtener más información sobre opciones adicionales. 5.5.1.10 Paso 10: Crear apodos para tablas y vistas Asigne un apodo a cada vista o tabla ubicada en la fuente de datos Sybase. Utilizará estos apodos cuando consulte la fuente de datos Sybase. Los apodos de Sybase son sensibles a mayúsculas y minúsculas. Especifique los nombres de esquema y de tabla entre dobles comillas ("). El siguiente ejemplo muestra una sentencia CREATE NICKNAME: CREATE NICKNAME SYBSALES FOR SYBSERVER."salesdata"."europe" donde: SYBSALES Es un apodo exclusivo para la tabla o vista de Sybase. SYBSERVER."salesdata"."europe" Es un identificador de tres partes que sigue este formato: nombre_fuente_datos."nombre_esquema_remoto"."nombre_tabla_remota" Repita este paso para cada tabla o vista para la que desee crear apodos. Cuando cree el apodo, DB2 utilizará la conexión para consultar el catálogo de fuentes de datos. Esta consulta prueba la conexión con la fuente de datos. Si la conexión no funciona, recibirá un mensaje de error. Consulte el manual DB2 SQL Reference para obtener más información sobre la sentencia CREATE NICKNAME. Para obtener más información sobre apodos en general y para verificar correlaciones de tipos de datos, consulte el manual DB2 Administration Guide. 5.5.2 Especificación de páginas de códigos de Sybase Este paso sólo es necesario cuando el servidor federado DB2 y el servidor Sybase ejecutan distintas páginas de códigos. Las fuentes de datos que utilizan el mismo juego de códigos que DB2 no se tienen que convertir. La tabla siguiente ofrece opciones de Sybase equivalentes para páginas de códigos del Soporte de idiomas nacionales (NLS). Las fuentes de datos de Sybase se tienen que configurar para que correspondan con estos equivalentes o bien el código del cliente debe ser capaz de detectar la discrepancia y marcarla como un error o correlacionar los datos utilizando su propia semántica. Si no se encuentra ninguna tabla de conversión entre la página de códigos fuente y la página de códigos de destino, DB2 emite un mensaje de error. Consulte la documentación de Sybase para obtener más información. Tabla 1. Opciones de páginas de códigos de Sybase Página de Opción de Sybase equivalente códigos 850 cp850 897 sjis 819 iso_1 912 iso_2 1089 iso_6 813 iso_7 916 iso_8 920 iso_9 ------------------------------------------------------------------------ 5.6 Acceso a fuentes de datos de Microsoft SQL Server mediante ODBC (capítulo nuevo) Antes de añadir fuentes de datos de Microsoft SQL Server a un servidor federado DB2, tiene que instalar y configurar el controlador ODBC en el servidor federado. Consulte los procedimientos de instalación de la documentación que viene con el controlador ODBC para obtener detalles específicos sobre cómo instalar el controlador ODBC. Para configurar el servidor federado para que acceda a datos almacenados en fuentes de datos de Microsoft SQL Server, tiene que: 1. Instalar y configurar el controlador ODBC en el servidor federado. Consulte los procedimientos de instalación de la documentación que viene con el controlador ODBC para obtener más detalles sobre cómo instalar el controlador ODBC. En servidores DB2 para Windows NT: Configure un DSN del sistema utilizando el gestor de dispositivos ODBC. En servidores DB2 para AIX: Instale la versión con hebras de las bibliotecas que suministra MERANT, especifique el directorio de la biblioteca MERANT como primera entrada de LIBPATH y configure el archivo .odbc.ini. Cree el archivo .odbc.ini en el directorio inicial. 2. Instalar DB2 Relational Connect Versión 7.2. Consulte 5.3.2, Instalación de DB2 Relational Connect. 3. Añadir fuentes de datos de Microsoft SQL Server al servidor federado. 4. Especificar las páginas de códigos de Microsoft SQL Server. Este capítulo trata los pasos 3 y 4. Las instrucciones de este capítulo se aplican a plataformas Windows NT y AIX. Si hay diferencias específicas para cada plataforma, se indican. 5.6.1 Adición de fuentes de datos de Microsoft SQL Server a un servidor federado Después de instalar el controlador ODBC y DB2 Relational Connect, añada fuentes de datos de Microsoft SQL Server al servidor federado siguiendo los pasos siguientes: 1. Establezca las variables de entorno (sólo en AIX). 2. Ejecute el script shell (sólo en AIX). 3. Opcional: Establezca la variable de entorno DB2_DJ_COMM. 4. Recicle la instancia de DB2 (sólo en AIX). 5. Cree el acomodador. 6. Cree el servidor. 7. Cree una correlación de usuario. 8. Cree apodos para las tablas y vistas. 9. Opcional: Obtenga rastreos de ODBC. Estos pasos se explican en detalle en las siguientes secciones. 5.6.1.1 Paso 1: Establecer las variables de entorno (sólo en AIX) Establezca las variables de entorno de la fuente de datos modificando el archivo db2dj.ini y emitiendo el mandato db2set. El archivo db2dj.ini contiene información de configuración para conectar con fuentes de datos de Microsoft SQL Server. El mandato db2set actualiza el registro del perfil de DB2 con sus valores. En un sistema de bases de datos particionado, puede utilizar un solo archivo db2dj.ini para todos los nodos de una determinada instancia o puede utilizar un archivo db2dj.ini exclusivo para uno o más nodos de una instancia determinada. Un sistema de bases de datos no particionado sólo puede tener un archivo db2dj.ini por instancia. Para establecer las variables de entorno: 1. Edite el archivo db2dj.ini situado en $HOME/sqllib/cfg/ y establezca las siguientes variables de entorno: ODBCINI=$HOME/.odbc.ini DJX_ODBC_LIBRARY_PATH=/lib LIBPATH=/lib DB2ENVLIST=LIBPATH Emita el mandato db2set para actualizar el registro de perfiles de DB2 con los cambios. La sintaxis de db2set depende de la estructura del sistema de bases de datos. * Si utiliza el archivo db2dj.ini en un sistema de bases de datos no particionado o si utiliza el archivo db2dj.ini en un sistema de bases de datos particionado y desea que los valores del archivo db2dj.ini se apliquen sólo al nodo actual, emita este mandato: db2set DB2_DJ_INI=/db2dj.ini * Si utiliza el archivo db2dj.ini en un sistema de bases de datos particionado y desea que los valores del archivo db2dj.ini se apliquen a todos los nodos de esta instancia, emita este mandato: db2set -g DB2_DJ_INI=/db2dj.ini * Si utiliza el archivo db2dj.ini en un sistema de bases de datos particionado y desea que los valores del archivo db2dj.ini se apliquen a un nodo específico, emita este mandato: db2set -i INSTANCEX 3 DB2_DJ_INI=$HOME/sqllib/cfg/node3.ini donde: INSTANCEX Es el nombre de la instancia. 3 Es el número de nodo listado en el archivo db2nodes.cfg. node3.ini Es la versión modificada y con el nombre cambiado del archivo db2dj.ini. 5.6.1.2 Paso 2: Ejecutar el script shell (sólo en AIX) El script shell djxlink.sh enlaza las bibliotecas del cliente con las bibliotecas del acomodador. Para ejecutar el script shell: djxlink 5.6.1.3 Paso 3: Opcional: Establecer la variable de entorno DB2_DJ_COMM Si cree que se tarda demasiado en acceder a la fuente de datos de Microsoft SQL Server, puede mejorar el rendimiento estableciendo la variable de entorno DB2_DJ_COMM para que cargue el acomodador cuando se inicialice el servidor federado en lugar de cuando intente acceder a la fuente de datos. Establezca la variable de entorno DB2_DJ_COMM de modo que incluya la biblioteca del acomodador correspondiente al acomodador especificado en el Paso 5. Por ejemplo: En servidores DB2 para Windows NT: db2set DB2_DJ_COMM=djxmssql3.dll En servidores DB2 para AIX: db2set DB2_DJ_COMM=libmssql3.a Asegúrese de que no hay espacios junto al signo igual (=). Consulte el manual DB2 SQL Reference para obtener más información sobre nombres de bibliotecas de acomodadores. 5.6.1.4 Paso 4: Reciclar la instancia de DB2 (sólo en AIX) Para asegurarse de que las variables de entorno están definidas en el programa, recicle la instancia de DB2. Cuando recicla la instancia, renueva la instancia de DB2 para que acepte los cambios realizados. Recicle la instancia de DB2 emitiendo los siguientes mandatos: db2stop db2start 5.6.1.5 Paso 5: Crear el acomodador DB2 Universal Database tiene dos protocolos diferentes, denominados acomodadores, que puede utilizar para acceder a fuentes de datos de Microsoft SQL Server. Los acomodadores son mecanismos que utilizan los servidores federados para comunicarse con fuentes de datos y recuperar datos de las mismas. El acomodador que utilice depende de la plataforma en que se esté ejecutando DB2 Universal Database. Utilice la Tabla 2 como guía para seleccionar el acomodador adecuado. Tabla 2. Controladores ODBC Controlador ODBC Plataforma Nombre del acomodador Controlador ODBC 3.0 (o superior) Windows NT DJXMSSQL3 Controlador MERANT DataDirect AIX MSSQLODBC3 Connect ODBC 3.6 Utilice la sentencia CREATE WRAPPER para especificar el acomodador que se utilizará para acceder a fuentes de datos de Microsoft SQL Server. El siguiente ejemplo muestra una sentencia CREATE WRAPPER: CREATE WRAPPER DJXMSSQL3 donde DJXMSSQL3 es el nombre del acomodador por omisión utilizado en un servidor DB2 para Windows NT (utilizando el controlador ODBC 3.0). Si tiene un servidor DB2 para AIX, especificaría el nombre de acomodador MSSQLODBC3. Puede sustituir el nombre de acomodador por omisión por el nombre que elija. Sin embargo, si lo hace, debe incluir el parámetro LIBRARY y el nombre de la biblioteca del acomodador correspondiente a la plataforma del servidor federado en la sentencia CREATE WRAPPER. Por ejemplo: En servidores DB2 para Windows NT: CREATE WRAPPER nombre_acomodador LIBRARY 'djxmssql3.dll' donde nombre_acomodador es el nombre que desea dar al acomodador y 'djxmssql3.dll' es el nombre de la biblioteca. En servidores DB2 para AIX: CREATE WRAPPER nombre_acomodador LIBRARY 'libmssql3.a' donde nombre_acomodador es el nombre que desea dar al acomodador y 'libdjxmssql.a' es el nombre de la biblioteca. Consulte la sentencia CREATE WRAPPER del manual DB2 SQL Reference para obtener más información sobre nombres de bibliotecas de acomodadores. 5.6.1.6 Paso 6: Crear el servidor Utilice la sentencia CREATE SERVER para definir cada fuente de datos de Microsoft SQL Server a la que desea conectarse. Por ejemplo: CREATE SERVER sqlserver TYPE MSSQLSERVER VERSION 7.0 WRAPPER djxmssql3 OPTIONS (NODE 'sqlnode', DBNAME 'nombre_basedatos') donde: sqlserver Es un nombre que asigna al servidor de Microsoft SQL Server. Este nombre debe ser exclusivo. MSSQLSERVER Es el tipo de fuente de datos cuyo acceso está configurando. 7.0 Es la versión de Microsoft SQL Server a la que está accediendo. DB2 Universal Database da soporte a las versiones 6.5 y 7.0 de Microsoft SQL Server. DJXMSSQL3 Es el nombre del acomodador que ha definido en la sentencia CREATE WRAPPER. 'sqlnode' Es el nombre del DSN del sistema que hace referencia a Microsoft SQL Server. Este valor es sensible a mayúsculas y minúsculas. DB2 Universal Database da soporte a las versiones 6.5 y 7.0 de Microsoft SQL Server. Aunque el nombre del nodo (nombre del DSN del sistema) se especifica como opción en la sentencia CREATE SERVER, es necesario para fuentes de datos de Microsoft SQL Server. Consulte el manual DB2 SQL Reference para ver opciones adicionales que puede utilizar con la sentencia CREATE WRAPPER. 'nombre_basedatos' Es el nombre de la base de datos a la que se está conectando. Aunque el nombre de la base de datos se especifica como opción en la sentencia CREATE SERVER, es necesario para fuentes de datos de Microsoft SQL Server. 5.6.1.7 Paso 7: Crear una correlación de usuario Si un ID de usuario o contraseña del servidor federado no coinciden con el ID de usuario o contraseña de una fuente de datos de Microsoft SQL Server, utilice la sentencia CREATE USER MAPPING para correlacionar el ID de usuario local con el ID de usuario y contraseña definidos en la fuente de datos de Microsoft SQL Server; por ejemplo: CREATE USER MAPPING FOR db2user SERVER nombre_servidor OPTIONS (REMOTE_AUTHID 'mssqluser', REMOTE_PASSWORD 'dayl1te') donde: db2user Es el ID de usuario local que está correlacionando con un ID de usuario definido en la fuente de datos de Microsoft SQL Server. nombre_servidor Es el nombre del servidor que ha definido en la sentencia CREATE SERVER. 'mssqluser' Es el ID de usuario de la fuente de datos de Microsoft SQL Server con la que está correlacionando db2user. Este valor es sensible a mayúsculas y minúsculas. 'dayl1ite' Es la contraseña asociada con 'mssqluser'. Este valor es sensible a mayúsculas y minúsculas. Consulte el manual DB2 SQL Reference para ver opciones adicionales que puede utilizar con la sentencia CREATE USER MAPPING. 5.6.1.8 Paso 8: Crear apodos para tablas y vistas Asigne un apodo para cada vista o tabla situada en la fuente de datos de Microsoft SQL Server a la que desea acceder. Utilizará estos apodos cuando consulte la fuente de datos de Microsoft SQL Server. Utilice la sentencia CREATE NICKNAME para asignar un apodo. Los apodos son sensibles a mayúsculas y minúsculas. El siguiente ejemplo muestra una sentencia CREATE NICKNAME: CREATE NICKNAME mssqlsales FOR nombre_servidor.salesdata.europe donde: mssqlsales Es un apodo exclusivo para la tabla o vista de Microsoft SQL Server. nombre_servidor.salesdata.europe Es un identificador de tres partes que sigue este formato: nombre_servidor_fuente_datos.nombre_esquema_remoto.nombre_tabla_remota Se recomienda utilizar comillas dobles para las partes nombre_esquema_remoto y nombre_tabla_remota del apodo. Cuando crea un apodo, DB2 intenta acceder a las tablas de catálogo de fuentes de datos (Microsoft SQL Server las denomina tablas del sistema). Esto prueba la conexión con la fuente de datos. Si la conexión falla, el usuario recibe un mensaje de error. Repita este paso para todas las tablas y vistas de bases de datos para las que desea crear apodos. Para obtener más información sobre la sentencia CREATE NICKNAME, consulte el manual DB2 SQL Reference. Para obtener más información sobre apodos en general y para verificar las correlaciones de tipos de datos, consulte el manual DB2 Administration Guide. 5.6.1.9 Paso 9: Opcional: Obtener rastreos de ODBC Si tiene problemas al acceder a la fuente de datos, puede obtener información de rastreo de ODBC para analizar y resolver estos problemas. Para asegurarse de que el rastreo ODBC funciona correctamente, utilice la herramienta de rastreo que suministra ODBC Data Source Administrator. El hecho de activar el rastreo afecta al rendimiento del sistema, por lo tanto debe desactivar el rastreo una vez resueltos los problemas. 5.6.2 Revisión de páginas de códigos de Microsoft SQL Server Microsoft SQL Server da soporte a muchas de las opciones comunes de páginas de códigos del Soporte de idiomas nacionales (NLS) soportadas por DB2 UDB. Las fuentes de datos que utilizan el mismo juego de códigos que DB2 no se tienen que convertir. La Tabla 3 lista las páginas de códigos que reciben soporte de DB2 Universal Database y de Microsoft SQL Server. Tabla 3. Opciones de páginas de códigos de DB2 UDB y de Microsoft SQL Server Página de Idioma soportado códigos 1252 Juego de caracteres ISO 850 Multilingüe 437 Inglés de EE.UU. 874 Tailandés 932 Japonés 936 Chino (simplificado) 949 Coreano 950 Chino (tradicional) 1250 Europa Central 1251 Cirílico 1253 Griego 1254 Turco 1255 Hebreo 1256 Árabe Cuando el servidor federado DB2 y Microsoft SQL Server ejecutan distintas páginas de códigos del Soporte de idiomas nacionales (NLS), se deben configurar las fuentes de datos de Microsoft SQL Server para que correspondan con estos equivalentes o bien el código del cliente debe ser capaz de detectar la discrepancia y marcarla como un error o correlacionar los datos utilizando su propia semántica. Si no se encuentra ninguna tabla de conversión entre la página de códigos fuente y la página de códigos de destino, DB2 emite un mensaje de error. Consulte la documentación de Microsoft SQL Server para obtener más información. ------------------------------------------------------------------------ Administración Tabla de contenido parcial * Guía de administración: Planificación o 6.1 Capítulo 8. Diseño físico de bases de datos + 6.1.1 Claves de particionamiento o 6.2 Diseño de grupos de nodos o 6.3 Capítulo 9. Diseño de bases de datos distribuidas + 6.3.1 Actualización de varias bases de datos o 6.4 Capítulo 13. Alta disponibilidad en el entorno de Windows NT + 6.4.1 Necesidad de rearrancar la máquina antes de ejecutar el programa de utilidad DB2MSCS o 6.5 Capítulo 14. DB2 y alta disponibilidad en Sun Cluster 2.2 o 6.6 Soporte de Veritas en Solaris o 6.7 Apéndice B. Normas de denominación + 6.7.1 Notas sobre nombres de esquema e ID de usuario de más de 8 caracteres + 6.7.2 ID de usuario y contraseñas o 6.8 Apéndice D. Incompatibilidades entre releases + 6.8.1 Incompatibilidad de DLFS de Windows NT con Norton Utilities + 6.8.2 SET CONSTRAINTS sustituida por SET INTEGRITY o 6.9 Apéndice E. Soporte de idioma nacional + 6.9.1 Versiones de idioma nacional de DB2 Versión 7 + 6.9.1.1 Catálogos de archivos del Centro de control y de documentación + 6.9.2 Valor de entorno nacional para el DB2 Administration Server + 6.9.3 DB2 UDB da soporte a la página de códigos de los Estados Bálticos (MS-1257) en plataformas Windows + 6.9.4 Derivación de valores de página de códigos + 6.9.5 Soporte a páginas de códigos y códigos de país + 6.9.6 Juegos de caracteres * Guía de administración: Implementación o 7.1 Cómo añadir o ampliar contenedores DMS (Proceso nuevo) o 7.2 Capítulo 1. Administración de DB2 utilizando las herramientas de la GUI o 7.3 Capítulo 3. Creación de una base de datos + 7.3.1 Creación de un espacio de tabla + 7.3.1.1 Utilización de E/S bruta en Linux + 7.3.2 Creación de una secuencia + 7.3.3 Comparación de secuencias y columnas IDENTITY + 7.3.4 Creación de un Índice, Extensión de índice o Especificación de índice o 7.4 Capítulo 4. Modificación de una base de datos + 7.4.1 Adición de un contenedor a un espacio de tabla SMS en una partición + 7.4.2 Alteración de una columna de identidad + 7.4.3 Alteración de una secuencia + 7.4.4 Descarte de una secuencia + 7.4.5 Conmutación del estado de un espacio de tabla + 7.4.6 Modificación de contenedores en un espacio de tabla DMS o 7.5 Capítulo 5. Control de acceso a bases de datos + 7.5.1 Privilegios de secuencia + 7.5.2 Cifrado de datos o 7.6 Capítulo 8. Recuperación de una base de datos + 7.6.1 Cómo utilizar la E/S suspendida + 7.6.2 Copia de seguridad y recuperación incremental + 7.6.2.1 Restauración a partir de imágenes de copia de seguridad incremental + 7.6.3 Recuperación paralela + 7.6.4 Copia de seguridad en conexiones con nombre + 7.6.5 Copia de seguridad de imagen dividida + 7.6.6 Archivador de anotaciones cronológicas a petición + 7.6.7 Reflexión de anotaciones cronológicas + 7.6.8 Soporte de copia de seguridad y restauración a través de plataformas en Sun Solaris y HP + 7.6.9 Consideraciones sobre DB2 Data Links Manager/Consideraciones sobre el programa de utilidad de copia de seguridad + 7.6.10 Consideraciones sobre DB2 Data Links Manager/Consideraciones sobre el programa de utilidad de restauración y recuperación de avance + 7.6.11 Restauración de bases de datos a partir de una copia de seguridad fuera de línea sin recuperación de avance + 7.6.12 Restauración de bases de datos y espacios de tabla, y recuperación de avance hasta el final de las anotaciones cronológicas + 7.6.13 Interacciones de DB2 Data Links Manager y recuperación + 7.6.14 Detección de situaciones que requieren reconciliación o 7.7 Apéndice C. Salida de usuario para recuperación de base de datos o 7.8 Apéndice D. Emisión de mandatos a varios servidores de particiones de bases de datos o 7.9 Apéndice I. Comunicaciones de alta velocidad entre nodos + 7.9.1 Habilitación de DB2 para ejecutarlo utilizando VI * Guía de administración: Rendimiento o 8.1 Capítulo 3. Consideraciones sobre aplicaciones + 8.1.1 Especificación del nivel de aislamiento + 8.1.2 Ajuste de la clase de optimización + 8.1.3 Sentencias compuestas dinámicas o 8.2 Capítulo 4. Consideraciones sobre el entorno + 8.2.1 Utilización de claves de índice mayores o 8.3 Capítulo 5. Estadísticas del catálogo del sistema + 8.3.1 Obtención y utilización de estadísticas de distribución + 8.3.2 Normas para la actualización de estadísticas de catálogo + 8.3.3 Estadísticas de los subelementos o 8.4 Capítulo 6. Comprensión del compilador SQL + 8.4.1 Tablas de resumen duplicadas + 8.4.2 Conceptos de acceso a datos y optimización o 8.5 Capítulo 8. Rendimiento operativo + 8.5.1 Gestión de la agrupación de almacenamiento intermedio de la base de datos + 8.5.2 Gestión de varias agrupaciones de almacenamiento intermedio de base de datos o 8.6 Capítulo 9. Utilización del gobierno o 8.7 Capítulo 13. Configuración de DB2 + 8.7.1 Tamaño de almacenamiento dinámico de clasificación (sortheap) + 8.7.2 Umbral de pila de clasificación (sheapthres) + 8.7.3 Porcentaje máximo de la lista de bloqueos antes del descenso escalonado de bloqueos (maxlocks) + 8.7.4 Configuración de DB2/DB2 Data Links Manager/Data Links Access Token Expiry Interval (dl_expint) + 8.7.5 Parámetro de configuración de la base de datos MIN_DEC_DIV_3 + 8.7.6 Tamaño de almacenamiento dinámico de control de aplicaciones (app_ctl_heap_sz) + 8.7.7 Tamaño del almacenamiento dinámico del supervisor del sistema de bases de datos (mon_heap_sz) + 8.7.8 Número máximo de aplicaciones activas (maxappls) + 8.7.9 Rango de recuperación e intervalo de punto de control variable (softmax) + 8.7.10 Habilitación del seguimiento de páginas modificadas (trackmod) + 8.7.11 Cambio de la vía de acceso de anotación cronológica de la base de datos (newlogpath) + 8.7.12 Ubicación de los archivos de anotación cronológica (logpath) + 8.7.13 Almacenamiento máximo para la lista de bloqueo (locklist) o 8.8 Apéndice A. Variables de registro y de entorno de DB2 + 8.8.1 Tabla de variables de registro nuevas y modificadas o 8.9 Apéndice C. Herramientas de SQL Explain * Administering Satellites Guide and Reference o 9.1 Configuración de la Versión 7.2 de DB2 Personal Edition y DB2 Workgroup Edition como satélites + 9.1.1 Requisitos previos + 9.1.1.1 Consideraciones sobre la instalación + 9.1.2 Configuración del sistema Versión 7.2 para la sincronización + 9.1.3 Instalación del FixPak 2 o superior en un sistema Versión 6 Enterprise Edition + 9.1.3.1 Actualización de la Versión 6 de DB2 Enterprise Edition para utilizarlo como servidor de control de DB2 + 9.1.4 Actualización de una Versión 6 del Centro de control y del Centro de administración de satélites * Consulta de mandatos o 10.1 db2batch - Herramienta Benchmark o 10.2 db2cap (nuevo mandato) + db2cap - Herramienta de vinculación de paquetes estáticos CLI/ODBC o 10.3 db2ckrst (nuevo mandato) + db2ckrst - Comprobar secuencia de imágenes de restauración incremental o 10.4 db2gncol (nuevo mandato) + db2gncol - Actualizar valores de columnas generadas o 10.5 db2inidb - Inicializar una base de datos reflejada o 10.6 db2look - Herramienta de extracción de estadísticas de DB2 o 10.7 db2updv7 - Actualizar la base de datos al nivel de arreglo actual de la versión 7 o 10.8 Nueva opción del procesador de línea de mandatos (-x, Suprimir impresión de cabeceras de columna) o 10.9 Requisito de font True Type para DB2 CLP o 10.10 ADD DATALINKS MANAGER o 10.11 ARCHIVE LOG (nuevo mandato) + Archive Log o 10.12 BACKUP DATABASE + 10.12.1 Diagrama de sintaxis + 10.12.2 Consideraciones sobre DB2 Data Links Manager o 10.13 BIND o 10.14 CALL o 10.15 DROP DATALINKS MANAGER (nuevo mandato) + DROP DATALINKS MANAGER o 10.16 EXPORT o 10.17 GET DATABASE CONFIGURATION o 10.18 GET ROUTINE (nuevo mandato) + GET ROUTINE o 10.19 GET SNAPSHOT o 10.20 IMPORT o 10.21 LIST HISTORY o 10.22 LOAD o 10.23 PING (nuevo mandato) + PING o 10.24 PUT ROUTINE (nuevo mandato) + PUT ROUTINE o 10.25 RECONCILE o 10.26 REORGANIZE TABLE o 10.27 RESTORE DATABASE + 10.27.1 Sintaxis + 10.27.2 Consideraciones sobre DB2 Data Links Manager o 10.28 ROLLFORWARD DATABASE o 10.29 Error de la documentación sobre los códigos de retorno CLP * Data Movement Utilities Guide and Reference o 11.1 Capítulo 2. Importación + 11.1.1 Utilización de la importación con inserciones en almacenamiento intermedio o 11.2 Capítulo 3. Carga + 11.2.1 Estados de pendiente después de una operación de carga + 11.2.2 Limitaciones y restricciones de carga + 11.2.3 Modificador de tipo de archivo totalfreespace o 11.3 Capítulo 4. AutoLoader + 11.3.1 rexecd necesario para ejecutar AutoLoader cuando la autentificación se establece en YES * Replication Guide and Reference o 12.1 Duplicación y servidores que no son IBM o 12.2 Duplicación en Windows 2000 o 12.3 Error conocido al guardar archivos de SQL o 12.4 Mantenimiento de DB2 o 12.5 Programa de utilidad de diferencia de datos en la Web o 12.6 Capítulo 3. Escenario de duplicación de datos + 12.6.1 Escenarios de duplicación o 12.7 Capítulo 5. Planificación de la duplicación + 12.7.1 Nombres de tabla y de columna + 12.7.2 Duplicación de DATALINK + 12.7.3 Restricciones de LOB + 12.7.4 Planificación de la duplicación o 12.8 Capítulo 6. Configuración del entorno de duplicación + 12.8.1 Requisito previo a una actualización en cualquier parte (update-anywhere) + 12.8.2 Configuración del entorno de duplicación o 12.9 Capítulo 8. Determinación de problemas o 12.10 Capítulo 9. Capture y Apply para AS/400 o 12.11 Capítulo 10. Capture y Apply para OS/390 + 12.11.1 Requisitos previos para DB2 DataPropagator para OS/390 + 12.11.2 Esquemas de codificación UNICODE y ASCII en OS/390 + 12.11.2.1 Elección de un esquema de codificación + 12.11.2.2 Establecimiento de esquemas de codificación o 12.12 Capítulo 11. Capture y Apply para plataformas UNIX + 12.12.1 Establecimiento de variables de entorno para Capture y Apply en UNIX y Windows o 12.13 Capítulo 14. Estructuras de tabla o 12.14 Capítulo 15. Mensajes de Capture y Apply o 12.15 Apéndice A. Inicio de los programas Capture y Apply desde dentro de una aplicación * System Monitor Guide and Reference o 13.1 db2ConvMonStream * Troubleshooting Guide o 14.1 Inicio de DB2 en Windows 95, Windows 98 y Windows ME cuando el usuario no tiene iniciada una sesión o 14.2 Capítulo 2. Resolución de problemas de DB2 Universal Database Server * Utilización de DB2 Universal Database en plataformas de 64 bits o 15.1 Capítulo 5. Configuración + 15.1.1 LOCKLIST + 15.1.2 shmsys:shminfo_shmmax o 15.2 Capítulo 6. Restricciones * Administración y programación del expansor de XML * MQSeries o 17.1 Instalación y configuración de DB2 MQSeries Functions + 17.1.1 Instalación de MQSeries + 17.1.2 Instalación de AMI de MQSeries + 17.1.3 Habilitación de DB2 MQSeries Functions o 17.2 Estilos de gestión de mensajes de MQSeries o 17.3 Estructura de mensajes o 17.4 Visión general funcional de MQSeries + 17.4.1 Limitaciones + 17.4.2 Códigos de error o 17.5 Escenarios de aplicación + 17.5.1 Gestión básica de mensajes + 17.5.2 Envío de mensajes + 17.5.3 Recuperación de mensajes + 17.5.4 Conectividad de aplicación a aplicación + 17.5.4.1 Comunicaciones tipo petición y respuesta + 17.5.4.2 Publicación y suscripción o 17.6 enable_MQFunctions + enable_MQFunctions o 17.7 disable_MQFunctions + disable_MQFunctions ------------------------------------------------------------------------ Guía de administración: Planificación ------------------------------------------------------------------------ 6.1 Capítulo 8. Diseño físico de bases de datos 6.1.1 Claves de particionamiento En el subapartado "Consideraciones acerca del diseño de grupos de nodos" del apartado "Diseño de grupos de nodos", el texto siguiente del subapartado "Claves de particionamiento" que indica los puntos a tener en cuenta al definir claves de particionamiento debería suprimirse sólo si DB2_UPDATE_PART_KEY=ON: Nota: Si DB2_UPDATE_PART_KEY=OFF, se siguen aplicando las restricciones. Nota: En el FixPak 3 y posteriores, el valor por omisión será ON. * No puede actualizar el valor de columna de clave de particionamiento para una fila de la tabla. * Sólo puede suprimir o insertar valores de columna de clave de particionamiento. ------------------------------------------------------------------------ 6.2 Diseño de grupos de nodos Dentro de la sección titulada "Diseño de grupos de nodos," la subsección titulada "Consideraciones sobre el diseño de grupos de nodos" y la subsección titulada "Tablas de resumen duplicadas", no haga caso de la última frase del segundo párrafo: Sólo se puede especificar la palabra clave REPLICATED para una tabla de resumen que se defina con la opción REFRESH DEFERRED. ------------------------------------------------------------------------ 6.3 Capítulo 9. Diseño de bases de datos distribuidas 6.3.1 Actualización de varias bases de datos En el apartado "Actualización de varias bases de datos", la lista de pasos de configuración presenta un error. El paso 4, que ahora dice lo siguiente: Precompile el programa de aplicación para que especifique una conexión de tipo 2 (es decir, especifique CONNECT 2 en el mandato PRECOMPILE PROGRAM) y una confirmación de una fase (es decir, especifique SYNCPOINT ONEPHASE en el mandato PRECOMPILE PROGRAM), tal como se describe en el manual Application Development Guide. debería cambiarse por: Precompile el programa de aplicación para que especifique una conexión de tipo 2 (es decir, especifique CONNECT 2 en el mandato PRECOMPILE PROGRAM) y una confirmación de dos fases (es decir, especifique SYNCPOINT TWOPHASE en el mandato PRECOMPILE PROGRAM), tal como se describe en el manual Application Development Guide. ------------------------------------------------------------------------ 6.4 Capítulo 13. Alta disponibilidad en el entorno de Windows NT 6.4.1 Necesidad de rearrancar la máquina antes de ejecutar el programa de utilidad DB2MSCS El programa de utilidad DB2MSCS se utiliza para realizar la configuración necesaria para habilitar DB2 para el soporte de gestión de anomalías en el entorno de Microsoft Cluster Service. Para que el programa de utilidad DB2MSCS se ejecute de modo satisfactorio, el Cluster Service debe poder localizar el recurso DLL, db2wolf.dll, que reside en el directorio %Archivos de programa%\SQLLIB\bin. El Programa de instalación DB2 UDB Versión 7 establece la variable de entorno del sistema PATH para que apunte al directorio %Archivos de programa%\SQLLIB\bin. Sin embargo, no es necesario rearrancar el sistema después de la instalación en el caso de que se esté ejecutando el sistema operativo Windows 2000. Si desea ejecutar el programa de utilidad DB2MSCS, debe rearrancar la máquina para que la variable de entorno PATH se actualice para el Cluster Service. ------------------------------------------------------------------------ 6.5 Capítulo 14. DB2 y alta disponibilidad en Sun Cluster 2.2 DB2 Connect está soportado en Sun Cluster 2.2 si: * El protocolo para el sistema principal es TCP/IP (no SNA) * No se utiliza confirmación en dos fases. Esta limitación desaparece si el usuario configura las anotaciones cronológicas SPM para que esté en un disco compartido (esto sólo se puede hacer mediante el parámetro de configuración del gestor de bases de datos spm_log_path) y la máquina de gestión de anomalías tiene una configuración TCP/IP idéntica (el mismo nombre de sistema principal, dirección IP, etc.). ------------------------------------------------------------------------ 6.6 Soporte de Veritas en Solaris DB2 ahora da soporte a Veritas, que proporciona soporte de cluster para DB2 High Availability en Solaris. Descripción Pone en línea y fuera de línea, y supervisa una instancia de DB2 UDB. Puntos de entrada Online Utilice db2start para activar la instancia. Offline Utilice db2stop para desactivar la instancia. Monitor Determina si la instancia de DB2 especificada está activada. Utiliza la supervisión de procesos apropiada (opcional) y la supervisión de bases de datos. Clean Elimina recursos de instancia de DB2. Atributo Tipo Definición probeDatabase serie Base de datos que se supervisará instanceOwner serie Nombre del propietario de la instancia instanceHome serie Directorio inicial del propietario de la instancia probeTable serie Tabla en probeDatabase que se supervisará monitorLevel entero 1 implica supervisión del proceso, 2 implica supervisión de base de datos nodeNumber entero Número de nodo de la instancia a iniciar (unset es EE) Definición de tipo tipo DB2UDB ( static int CleanTimeout = 240 static int MonitorTimeout = 30 static int OfflineTimeout = 240 static int OnlineRetryLimit = 2 static int OnlineTimeout = 120 static int OnlineWaitLimit = 1 static int RestartLimit = 3 static int ToleranceLimit = 1 static str ArgList[] = { probeDatabase, instanceOwner, instanceHome, probeTable, monitorLevel, nodeNumber } NameRule = resource.db2udb str probeDatabase str instanceOwner str instanceHome str probeTable int monitorLevel int nodeNumber ) Configuración de ejemplo DB2UDB db2_resource_n0 ( probeDatabase = sample probeTable = vcstable instanceOwner = stevera instanceHome = "/export/home/stevera" monitorLevel = 2 ) Instalación o Cree el directorio /opt/VRTSvcs/bin/DB2UDB. o Copie los archivos online, offline, monitor, clean y DB2UDBAgent en /opt/VRTSvcs/bin/DB2UDB y asegúrese de que estén marcados como ejecutables. o Copie el archivo db2udb.type.cf en /etc/VRTSvcs/conf/config. o Detenga el cluster (por ejemplo, hastop -all). o Añada la línea include db2udb.type.cf al archivo main.cf después de la línea include types.cf o Verifique que la configuración del cluster sea válida con /opt/VRTSvcs/bin/hacf -verify /etc/VRTSvcs/conf/config Ahora está preparado para crear los recursos de DB2 necesarios para controlar instancias de DB2. ------------------------------------------------------------------------ 6.7 Apéndice B. Normas de denominación 6.7.1 Notas sobre nombres de esquema e ID de usuario de más de 8 caracteres * Los productos DB2 Versión 7 en plataformas de 32 bits de Windows dan soporte a ID de usuario con una longitud de más de 30 caracteres. Sin embargo, dado que el soporte nativo de Windows NT y Windows 2000, el límite práctico para el ID de usuario es de 20 caracteres. * DB2 Versión 7 da soporte a clientes de 32 bits que no son de Windows que se conectan a Windows NT y Windows 2000 con ID de usuario con más de 8 caracteres de longitud cuando el Id de usuario y la contraseña se especifican explícitamente. Esto excluye las conexiones en las que se utiliza la autentificación de Cliente de DCE. * La autentificación de DCE en todas las plataformas continúa teniendo el límite de ID de usuario de 8 caracteres. * El ID de autorización que devuelve SQLCA desde una CONNECT o ATTACH satisfactoria se trunca a 8 caracteres. Los campos SQLWARN contienen avisos cuando se produce un truncamiento. Para obtener más información, consulte la descripción de la sentencia CONNECT en la publicación Consulta de SQL. * El ID de autorización que devuelve el procesador de la línea de mandatos (CLP) desde un CONNECT o ATTACH satisfactoria se trunca a 8 caracteres. Se añaden puntos suspensivos (...) al ID de autorización para indicar el truncamiento. * DB2 Versión 7 da soporte a nombres de esquema con una longitud máxima de 30 bytes, con las excepciones siguientes: o Las tablas con nombres de esquema de más de 18 bytes no se pueden duplicar. o Los tipos definidos por el usuario (UDT) no pueden tener nombres de esquema de más de 8 bytes. 6.7.2 ID de usuario y contraseñas Dentro de la sección titulada "ID de usuario y contraseñas", cambie la referencia a "De la A a la Z": Letras mayúsculas y minúsculas de un solo byte latinas (A...Z, a...z). El soporte para otras letras y caracteres depende de la página de códigos que se utiliza. Consulte el apéndice titulado "Soporte a idiomas (NLS)" si desea obtener más información sobre el soporte a páginas de códigos. ------------------------------------------------------------------------ 6.8 Apéndice D. Incompatibilidades entre releases 6.8.1 Incompatibilidad de DLFS de Windows NT con Norton Utilities El Data Links File System de Windows NT es incompatible con Norton Utilities. Cuando se suprime un archivo de una unidad controlada por DLFS, ello da como resultado una excepción de kernel: error 0x1E (No se maneja la excepción de modalidad de Kernel). La excepción es 0xC00000005 (Violación de acceso). Esta violación de acceso se produce debido a que el controlador de Norton Utilities se carga después de que se cargue el controlador de filtro de DLFS. Una solución temporal es la de cargar el controlador de DLFSD, una vez se haya cargado el controlador de Norton Utilities. Esta solución temporal puede efectuarse cambiando el arranque del controlador de DLFSD a manual. Pulse en Inicio y seleccione Configuración--> Panel de control-->Dispositivos-->DLFSD y configúrelo a manual. Puede crearse un archivo por lotes (que puede añadirse a la carpeta de arranque) el cual carga el controlador de DLFSD y el DLFM Service al arrancar el sistema. El contenido del archivo por lotes es como sigue: net start dlfsd net start "dlfm service" Dé nombre a este archivo por lotes start_dlfs.bat y cópielo en el directorio C:\WINNT\Profiles\Administrator\Start Menu\Programs\Startup. Sólo el administrador tiene el privilegio de cargar el controlador de filtro de DLFS y el servicio DLFM. 6.8.2 SET CONSTRAINTS sustituida por SET INTEGRITY La sentencia SET CONSTRAINTS ha sido sustituida por la sentencia SET INTEGRITY. Para la compatibilidad con versiones anteriores, ambas sentencias se aceptan en DB2 UDB V7. ------------------------------------------------------------------------ 6.9 Apéndice E. Soporte de idioma nacional 6.9.1 Versiones de idioma nacional de DB2 Versión 7 DB2 Versión 7 está disponible en inglés, francés, alemán, italiano, español, portugués del Brasil, japonés, coreano, chino simplificado, chino tradicional, danés, finés, noruego, sueco, checo, holandés, húngaro, polaco, turco, ruso, búlgaro y eslovaco. En plataformas basadas en UNIX, los mensajes y la biblioteca del producto DB2 se pueden instalar en distintos idiomas. El programa de utilidad de instalación de DB2 situará los catálogos de archivos de mensajes en el directorio de entorno nacional utilizado con más frecuencia para una plataforma determinada tal como se muestra en las tablas siguientes. La Tabla 4 proporciona información para AIX, HP-UX y Solaris. La Tabla 5 proporciona información para Linux, Linux/390, SGI y Dynix. Tabla 4. AIX, HP-UX, Solaris Sistema AIX HP-UX Solaris operativo Idioma Ent. nac.Pág. Ent. nac. Pág. Ent. nac. Pág. cód. cód. cód. Francés fr_FR 819 fr_FR.iso88591 819 fr 819 Fr_FR 850 fr_FR.roman8 1051 Alemán de_DE 819 de_DE.iso88591 819 de 819 De_DE 850 de_DE.roman8 1051 Italiano it_IT 819 it_IT.iso88591 819 it 819 It_IT 850 it_IT.roman8 1051 Español es_ES 819 es_ES.iso88591 819 es 819 Es_ES 850 es_ES.roman8 1051 Portugués pt_BR 819 pt_BR 819 (Brasil) Japonés ja_JP 954 ja_JP.eucJP 954 ja 954 Ja_JP 932 Coreano ko_KR 970 ko_KR.eucKR 970 ko 970 Chino simplif. zh_CN 1383 zh_CN.hp15CN 1383 zh 1383 Zh_ 1386 CN.GBK Chino tradic. zh_TW 964 zh_TW.eucTW 964 zh_TW 964 Zh_TW 950 zh_TW.big5 950 zh_TW.BIG5 950 Danés da_DK 819 da_DK.iso88591 819 da 819 Da_DK 850 da_DK.roman8 1051 Finés fi_FI 819 fi_FI.iso88591 819 fi 819 Fi_FI 850 fi_FI.roman8 1051 Noruego no_NO 819 no_NO.iso88591 819 no 819 No_NO 850 no_NO.roman8 1051 Sueco sv_SE 819 sv_SE.iso88591 819 sv 819 Sv_SE 850 sv_SE.roman8 1051 Checo cs_CZ 912 Húngaro hu_HU 912 Polaco pl_PL 912 Holandés nl_NL 819 Nl_NL 850 Turco tr_TR 920 Ruso ru_RU 915 Búlgaro bg_BG 915 bg_BG.iso88595 915 Eslovaco sl_SI 912 sl_SI.iso88592 912 sl_SI 912 Tabla 5. Linux, Linux/390, SGI, Dynix Sistema Linux Linux/390 SGI Dynix operativo Idioma Ent. nac. Pág. Ent. nac. Pág. Ent. nac. Pág. Ent. nac. Pág. cód. cód. cód. cód. Francés fr 819 fr 819 fr 819 Alemán de 819 de 819 de 819 Italiano es 819 Español Portugués (Brasil) Japonés ja_JP.ujis 954 ja_JP.ujis 954 ja_JP.EUC 954 Coreano ko 970 ko 970 ko_KO.euc 970 Chino zh 1386 zh 1386 simplif. zh_CN.GBK zh_CN.GBK Chino zh_TW.Big5 950 zh_TW.Big5 950 tradic. Danés Finés Noruego Sueco Checo Húngaro Polaco Holandés nl 819 Turco Ruso Búlgaro Eslovaco Si el sistema utiliza las mismas páginas de códigos pero nombres de entorno nacional diferentes de los anteriores, puede ver los mensajes traducidos mediante la creación de un enlace con el directorio de mensajes apropiado. Por ejemplo, si el entorno nacional por omisión de la máquina AIX es ja_JP.IBM-eucJP y la página de códigos de ja_JP.IBM-eucJP es 954, puede crear un enlace desde /usr/lpp/db2_07_01/msg/ja_JP.IBM-eucJP a /usr/lpp/db2_07_01/msg/ja_JP emitiendo el mandato siguiente: ln -s /usr/lpp/db2_07_01/msg/ja_JP /usr/lpp/db2_07_01/msg/ja_JP.IBM-eucJP Una vez ejecutado este mandato, todos los mensajes de DB2 aparecen en japonés. 6.9.1.1 Catálogos de archivos del Centro de control y de documentación Los catálogos de archivos del Centro de control, de Ayuda del Centro de control y de documentación se sitúan en los directorios siguientes de la estación de trabajo de destino: * DB2 para AIX: o /usr/lpp/db2_07_01/cc/%L o /usr/lpp/db2_07_01/java/%L o /usr/lpp/db2_07_01/doc/%L o /usr/lpp/db2_07_01/qp/$L o /usr/lpp/db2_07_01/spb/%L * DB2 para HP-UX: o /opt/IBMdb2/V7.1/cc/%L o /opt/IBMdb2/V7.1/java/%L o /opt/IBMdb2/V7.1/doc/%L * DB2 para Linux: o /usr/IBMdb2/V7.1/cc/%L o /usr/IBMdb2/V7.1/java/%L o /usr/IBMdb2/V7.1/doc/%L * DB2 para Solaris: o /opt/IBMdb2/V7.1/cc/%L o /usr/IBMdb2/V7.1/java/%L o /opt/IBMdb2/V7.1/doc/%L Los catálogos de archivos del Centro de control se encuentran en la página de códigos Unicode. Los catálogos de archivos de ayuda de Documentación y del Centro de control están en un juego de códigos reconocido por el navegador. Si el sistema utiliza un nombre de entorno nacional diferente del que se proporciona, puede seguir ejecutando la versión traducida del Centro de control y ver la versión traducida de la ayuda creando enlaces con los directorios de idiomas apropiados. Por ejemplo, si el entorno nacional por omisión de la máquina AIX esja_JP.IBM-eucJP, puede crear enlaces desde /usr/lpp/db2_07_01/cc/ja_JP.IBM-eucJP con /usr/lpp/db2_07_01/cc/ja_JP y desde /usr/lpp/db2_07_01/doc/ja_JP.IBM-eucJP con /usr/lpp/db2_07_01/doc/ja_JP emitiendo los mandatos siguientes: * ln -s /usr/lpp/db2_07_01/cc/ja_JP /usr/lpp/db2_07_01/cc/ja_JP.IBM-eucJP * ln -s /usr/lpp/db2_07_01/doc/ja_JP /usr/lpp/db2_07_01/doc/ja_JP.IBM-eucJP Una vez ejecutados estos mandatos, el texto del Centro de control y de la ayuda está en japonés. Nota: El Centro de control de la Web no está soportado cuando se ejecuta de forma nativa en Linux/390 o NUMA-Q. Se puede utilizar desde una estación de trabajo cliente para gestionar bases de datos en estas plataformas. 6.9.2 Valor de entorno nacional para el DB2 Administration Server Asegúrese de que el entorno nacional de la instancia del DB2 Administration Server sea compatible con el entorno nacional de la instancia de DB2. De no ser así, la instancia de DB2 no puede comunicar con el DB2 Administration Server. Si la variable de entorno LANG no está establecida en el perfil de usuario del DB2 Administration Server, este Servidor se iniciará con el entorno nacional por omisión del sistema. Si el entorno nacional por omisión del sistema no está definido, el DB2 Administration Server se iniciará con la página de códigos 819. Si la instancia de DB2 utiliza uno de los entornos nacionales DBCS, y si el DB2 Administration Server se inicia con la página de códigos 819, la instancia no podrá comunicar con el DB2 Administration Server. El entorno nacional del DB2 Administration Server y el entorno nacional de la instancia de DB2 deben ser compatibles. Por ejemplo, en un sistema Linux en chino simplificado, se debe establecer "LANG=zh_CN" en el perfil de usuario del DB2 Administration Server. 6.9.3 DB2 UDB da soporte a la página de códigos de los Estados Bálticos (MS-1257) en plataformas Windows DB2 UDB da soporte a la página de códigos de los Estados Bálticos, MS-1257, en sistemas operativos Windows de 32 bits. Esta página de códigos se utiliza para el letón, lituano y estonio. 6.9.4 Derivación de valores de página de códigos Dentro de la sección titulada "Derivación de valores de página de códigos", cambie el primer párrafo, de: Sin embargo, no es necesario establecer la variable de registro DB2CODEPAGE, puesto que DB2 determinará el valor apropiado de página de códigos del sistema operativo. a: Normalmente, no es necesario establecer la variable de registro DB2CODEPAGE, puesto que DB2 automáticamente deriva la información de página de códigos del sistema operativo. 6.9.5 Soporte a páginas de códigos y códigos de país Dentro de la sección titulada "Soporte a páginas de códigos y códigos de país", añada la información siguiente a la tabla: Cód. Juego Código Pág. Grupo Código Tr. Cód Ent. Nac. SO Nombre País ---- ----- -------- -- --- --------- ---- --------------- 943 D-1 IBM-943 JP 81 ja_JP.PCK Sun Japón 6.9.6 Juegos de caracteres Dentro de la sección titulada "Juegos de caracteres" y la subsección "Juego de caracteres para identificadores", sustituya las dos últimas frases del primer párrafo por lo siguiente: Utilice con cuidado los caracteres especiales #, @ y $ en los entornos NLS, porque no se incluyen en el juego de caracteres invariante de sistema principal NLS (EBCDIC). También se pueden utilizar los caracteres del juego de caracteres ampliado, dependiendo de la página de códigos que se utilice. Si utiliza la base de datos en un entorno de varias páginas de códigos, deberá asegurarse de que todas las páginas de códigos den soporte a los elementos del juego de caracteres ampliado que tenga previsto utilizar. ------------------------------------------------------------------------ Guía de administración: Implementación ------------------------------------------------------------------------ 7.1 Cómo añadir o ampliar contenedores DMS (Proceso nuevo) Las operaciones por las que los contenedores DMS (tanto contenedores de archivos como contenedores de dispositivos brutos) se añaden (durante la creación del espacio de tabla o después de la misma) o se amplían se efectúan en este momento en paralelo por medio de los captadores previos. Para conseguir un aumento en el paralelismo de estas operaciones de crear / redimensionar operaciones de contenedor, se puede aumentar el número de captadores previos que se ejecutan en el sistema. El único proceso que no se efectúa en paralelo es la anotación cronológica de estas acciones y, en el caso de la creación de los contenedores, el etiquetado de los mismos. Nota: El paralelismo de CREATE TABLESPACE / ALTER TABLESPACE (sobre la adición de contenedores nuevos a un espacio de tabla existente) ya no aumentará cuando el número de captadores previos iguale el número de los contenedores que se añadan. ------------------------------------------------------------------------ 7.2 Capítulo 1. Administración de DB2 utilizando las herramientas de la GUI Dentro de la sección titulada "El Centro de alertas", elimine las dos últimas frases del apartado. Dentro de la sección titulada "Supervisor de rendimiento", elimine el segundo punto de la lista "Definir variables de rendimiento" en la subsección "Supervisión de rendimiento en un punto en el tiempo." Además, más adelante en esta misma subsección, los últimos párrafos de la sección deben reescribirse del modo siguiente: Para cada uno, se pueden supervisar diversas variables de rendimiento. La Ayuda de Consulta de variables de rendimiento, disponible desde el menú Ayuda de cualquier ventana del Supervisor de instantáneas, proporciona una descripción de todas las variables de rendimiento. Estas variables se organizan en categorías. Hay las siguientes categorías: * Instancia: Agentes, Conexiones, Clasificar * Base de datos: Bloqueo y punto muerto, agrupación de almacenamiento intermedio y E/S, Conexiones, Clasificar, Actividad de sentencias SQL * Tabla: Tabla * Espacio de tabla: Agrupación de almacenamiento intermedio y E/S * Conexiones de base de datos: Agrupación de almacenamiento intermedio y E/S, Bloqueo y Punto muerto, Clasificar, Actividad de sentencias SQL Si desea obtener información detallada sobre cómo generar instantáneas, consulte la ayuda en línea. En esta misma sección, elimine la última frase de la subsección titulada "Acción necesaria cuando un objeto aparece en el Centro de alertas." ------------------------------------------------------------------------ 7.3 Capítulo 3. Creación de una base de datos 7.3.1 Creación de un espacio de tabla 7.3.1.1 Utilización de E/S bruta en Linux Linux tiene una agrupación de nodos de dispositivos brutos que se deben vincular a un dispositivo de bloque para poder realizar la E/S bruta. Hay un controlador de dispositivos brutos que actúa como el depósito central de información de vinculación de dispositivos brutos con dispositivos de bloque. La vinculación se realiza utilizando un programa de utilidad que se denomina bruto, que normalmente proporciona el distribuidor de Linux. Antes de configurar E/S bruta en Linux, es necesario lo siguiente: * una o más particiones de disco IDE o SCSI libres * Kernel Linux 2.4.0 o posterior (sin embargo, algunas distribuciones de Linux ofrecen E/S bruta en kernels 2.2.) * un controlador de dispositivos brutos llamado /dev/rawctl o /dev/raw. De lo contrario, cree un enlace simbólico: # ln -s /dev/your_raw_dev_ctrl /dev/rawctl * el programa de utilidad bruto, que normalmente se proporciona con la distribución de Linux * DB2 Versión 7.1 FixPak 3 o posterior Nota: De las distribuciones que actualmente dan soporte a E/S bruta, la denominación de los nodos de dispositivos brutos es distinta: Distribución Nodos disp. brutos Contr. disp. brutos ------------ -------------------- --------------------- RedHat 6.2 /dev/raw/raw1 to 255 /dev/rawctl SuSE 7.0 /dev/raw1 to 63 /dev/raw DB2 da soporte a cualquiera de los controladores de dispositivos brutos anteriores y a la mayoría de los otros nombres para nodos de dispositivos brutos. DB2 no da soporte a los dispositivos brutos en Linux/390. Para configurar E/S bruta en Linux: En este ejemplo, la partición bruta a utilizar es /dev/sda5. No debe contener datos valiosos. Paso 1. Calcule el número de páginas de 4 096 bytes de esta partición, redondeándolo si es necesario. Por ejemplo: # fdisk /dev/sda Command (m for help): p Disk /dev/sda: 255 heads, 63 sectors, 1106 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/sda1 1 523 4200997 83 Linux /dev/sda2 524 1106 4682947+ 5 Extended /dev/sda5 524 1106 4682947 83 Linux Command (m for help): q # El número de páginas en /dev/sda5 es num_pages = floor( ((1106-524+1)*16065*512)/4096 ) num_pages = 11170736 Paso 2. Vincule un nodo de dispositivos brutos con esta partición. Esto debe realizarse cada vez que se rearranca la máquina y requiere acceso root. Utilice raw -a para ver los nodos de dispositivos brutos que ya están en uso: # raw /dev/raw/raw1 /dev/sda5 /dev/raw/raw1: bound to major 8, minor 5 Paso 3. Establezca permisos de lectura globales en el controlador de dispositivos brutos y la partición de disco. Establezca permisos de lectura y grabación globales en el dispositivo bruto: # chmod a+r /dev/rawctl # chmod a+r /dev/sdb1 # chmod a+rw /dev/raw/raw1 Paso 4. Cree el espacio de tabla en DB2, especificando el dispositivo bruto, no la partición de disco. Por ejemplo: CREATE TABLESPACE dms1 MANAGED BY DATABASE USING (DEVICE '/dev/raw/raw1' 11170736) También se da soporte a los espacios de tabla en dispositivos bruto para todos los tamaños de página soportados por DB2. 7.3.2 Creación de una secuencia A continuación de la sección titulada "Definición de una columna de identidad en una nueva tabla," añada la sección siguiente, "Creación de una secuencia": Una secuencia es un objeto de base de datos que permite la generación automática de valores. Las secuencias se ajustan a la tarea de generar valores de clave exclusivos. Las aplicaciones pueden utilizar secuencias para evitar posibles problemas de simultaneidad y rendimiento resultantes de la generación de un contador exclusivo fuera de la base de datos. A diferencia de un atributo de columna de identidad, una secuencia no está ligada a una columna de tabla específica ni está vinculada a una columna de tabla exclusiva y sólo es accesible a través de esa columna de tabla. Una secuencia se puede crear o alterar, de modo que genere valores de una de estas formas: * Incremento o decremento monotónico sin límite * Incremento o decremento monotónico hasta un límite definido por el usuario y detención * Incremento o decremento monotónico hasta un límite definido por el usuario y vuelta al principio y empezar de nuevo A continuación se encuentra un ejemplo de creación de un objeto de secuencia: CREATE SEQUENCE order_seq START WITH 1 INCREMENT BY 1 NOMAXVALUE NOCYCLE CACHE 24 En este ejemplo, la secuencia tiene el nombre order_seq. Empezará en 1 y aumentará en 1 sin límite superior. No hay ninguna razón para volver al principio y reiniciar desde 1 porque no hay un límite superior asignado. El número asociado con el parámetro CACHE especifica el número máximo de valores de secuencia que el gestor de bases de datos preasigna y mantiene en memoria. Los números de secuencia generados tienen las propiedades siguientes: * Los valores pueden ser cualquier tipo de datos numérico exacto con una escala de cero. Dichos tipos de datos incluyen: SMALLINT, BIGINT, INTEGER y DECIMAL. * Los valores consecutivos pueden diferir en cualquier incremento de entero especificado. El valor de incremento por omisión es 1. * El valor de contador es recuperable. El valor de contador se reconstruye a partir de anotaciones cronológicas cuando es necesaria la recuperación. * Los valores pueden almacenarse en antememoria para mejorar el rendimiento. La preasignación y almacenamiento de valores en la antememoria reduce la E/S síncrona a la anotación cronológica cuando se generan valores para la secuencia. En el caso de producirse una anomalía del sistema, todos los valores en antememoria que no se han confirmado no se utilizan nunca y se consideran perdidos. El valor especificado para CACHE es el número máximo de valores de secuencia que se podrían perder. Si una base de datos que contiene una o más secuencias se recupera a un punto anterior en el tiempo, esto puede ocasionar la generación de valores duplicados para algunas secuencias. Para evitar posibles valores duplicados, no debería recuperarse una base de datos con secuencias a un punto anterior en el tiempo. Sólo se da soporte a las secuencias en una base de datos de un único nodo. Hay dos expresiones que se utilizan con una secuencia. La expresión PREVVAL devuelve el valor generado más recientemente para la secuencia especificada para una sentencia anterior dentro de la sesión actual. La expresión NEXTVAL devuelve el valor siguiente para la secuencia especificada. Se genera un nuevo número de secuencia cuando una expresión NEXTVAL especifica el nombre de la secuencia. Sin embargo, si hay varias instancias de una expresión NEXTVAL especificando el mismo nombre de secuencia dentro de una consulta, el contador para la secuencia se aumenta sólo una vez para cada fila del resultado. Puede utilizarse el mismo número de secuencia como valor de clave exclusivo en dos tablas por separado haciendo referencia al número de secuencia con una expresión NEXTVAL para la primera tabla y una expresión PREVVAL para las tablas adicionales. Por ejemplo: INSERT INTO order (orderno, custno) VALUES (NEXTVAL FOR order_seq, 123456); INSERT INTO line_item (orderno, partno, quantity) VALUES (PREVVAL FOR order_seq, 987654, 1) Las expresiones NEXTVAL o PREVVAL pueden utilizarse en las ubicaciones siguientes: * sentencia INSERT, cláusula VALUES * sentencia SELECT, lista SELECT * sentencia de asignación SET * sentencia UPDATE, cláusula SET * sentencia VALUES o VALUES INTO 7.3.3 Comparación de secuencias y columnas IDENTITY A continuación de la nueva sección titulada "Creación de una secuencia", añada la sección siguiente: Aunque hay similitudes entre secuencias y columnas IDENTITY, también hay diferencias. Las características de cada una de ellas pueden utilizarse al diseñar la base de datos y las aplicaciones. Una columna de identidad tiene las características siguientes: * Una columna de identidad puede definirse como parte de una tabla sólo cuando se crea la tabla. Una vez se ha creado la tabla, no se puede alterar para añadir una columna de identidad. (Sin embargo, pueden alterarse las características de la columna de identidad existente.) * Una columna de identidad genera automáticamente valores para una sola tabla. * Cuando se define una columna de identidad como GENERATED ALWAYS, los valores utilizados siempre son generados por el gestor de bases de datos. No se permite a las aplicaciones proporcionar sus propios valores durante la modificación del contenido de la tabla. Un objeto de secuencia tiene las características siguientes: * Un objeto de secuencia es un objeto de base de datos que no está ligado a ninguna tabla. * Un objeto de secuencia genera valores secuenciales que se pueden utilizar en cualquier sentencia de SQL. * Puesto que un objeto de secuencia puede ser utilizado por cualquier aplicación, se utilizan dos expresiones para controlar la recuperación del siguiente valor en la secuencia especificada y el valor generado anterior a la sentencia que se está ejecutando. La expresión PREVVAL devuelve el valor generado más recientemente para la secuencia especificada para una sentencia anterior dentro de la sesión actual. La expresión NEXTVAL devuelve el valor siguiente para la secuencia especificada. La utilización de estas expresiones permite la utilización del mismo valor en varias sentencias de SQL dentro de varias tablas. Aunque estas no son todas las características de estos dos elementos, estas características le ayudarán a determinar cuáles utilizar dependiendo del diseño de la base de datos y las aplicaciones que utilizan la base de datos. 7.3.4 Creación de un Índice, Extensión de índice o Especificación de índice Dentro de la sección titulada "Creación de un Índice, Extensión de índice o Especificación de índice", añada la nota siguiente en el párrafo que empieza con la frase: "Cualquier columna que forma parte de una clave de índice está limitada a 255 bytes." Nota: puede utilizarse la variable de registro DB2_INDEX_2BYTEVARLEN para permitir que columnas con una longitud mayor a 255 bytes se especifiquen como parte de una clave de índice. ------------------------------------------------------------------------ 7.4 Capítulo 4. Modificación de una base de datos Bajo la sección "Modificación de un espacio de tabla", deben añadirse las dos secciones nuevas siguientes: 7.4.1 Adición de un contenedor a un espacio de tabla SMS en una partición Puede añadir un contenedor a un espacio de tabla SMS en una partición (o nodo) que actualmente no tiene contenedores. El contenido del espacio de tabla se reequilibra mediante todos los contenedores. El acceso al espacio de tabla no está limitado durante el reequilibrio. Si necesita añadir más de un contenedor, debe añadirlos juntos al mismo tiempo. Para añadir un contenedor a un espacio de tabla SMS utilizando la línea de mandatos, entre lo siguiente: ALTER TABLESPACE ADD ('') ON NODE () La partición especificada por el número, y cada partición (o nodo) dentro del rango de particiones, debe existir en el grupo de nodos en el que está definido el espacio de tabla. Un partition_number (número de partición) sólo puede aparecer explícitamente o dentro de un rango en exactamente una cláusula on-node para la sentencia. El ejemplo siguiente muestra cómo añadir un nuevo contenedor al número de partición 3 del grupo de nodos utilizado por el espacio de tabla "plans" en un sistema operativo basado en UNIX: ALTER TABLESPACE plans ADD ('/dev/rhdisk0') ON NODE (3) A continuación de la sección titulada "Cambio de atributos de tabla," añada las secciones siguientes: 7.4.2 Alteración de una columna de identidad Modifique los atributos de una columna de identidad ya existente con la sentencia ALTER TABLE. Si desea obtener más información sobre esta sentencia, incluyendo esta sintaxis, consulte el manual Consulta de SQL. Hay varias formas de modificar una columna de identidad para que tenga algunas de las características de secuencias. Hay algunas tareas que son exclusivas para la columna de identidad y ALTER TABLE: * RESTART restablece la secuencia asociada con la columna de identidad al valor especificado implícita o explícitamente como valor de inicio cuando se ha creado originariamente la columna de identidad. * RESTART WITH restablece la secuencia asociada con la columna de identidad en el valor exacto de constante numérica. La constante numérica puede ser cualquier valor positivo o negativo sin dígitos no cero a la derecha de cualquier coma decimal que se pueda asignar a la columna de identidad. 7.4.3 Alteración de una secuencia Modifique los atributos de una secuencia ya existente con la sentencia ALTER SEQUENCE. Si desea obtener más información sobre esta sentencia, incluyendo esta sintaxis, consulte el manual Consulta de SQL. Los atributos de la secuencia que se pueden modificar incluyen: * Cambiar el incremento entre valores futuros * Establecer nuevos valores mínimos o máximos * Cambiar el número de números de secuencia guardados en antememoria * Cambiar si la secuencia volverá al principio o no * Cambiar si los números de secuencia deben generarse en orden de petición * Reiniciar la secuencia Hay dos tareas que no se encuentran como parte de la creación de la secuencia. Son las siguientes: * RESTART. Restablece la secuencia al valor especificado implícita o explícitamente como valor de inicio cuando se ha creado la secuencia. * RESTART WITH constante-numérica. Restablece la secuencia en el valor exacto de constante numérica. La constante numérica puede ser cualquier valor positivo o negativo sin dígitos no cero a la derecha de cualquier coma decimal. Después de reiniciar una secuencia o cambiar a CYCLE, es posible generar números de secuencia duplicados. Sólo los futuros números de secuencia se ven afectados por la sentencia ALTER SEQUENCE. El tipo de datos de una secuencia no se puede cambiar. En su lugar, debe descartar la secuencia actual y luego crear una nueva secuencia especificando el nuevo tipo de datos. Todos los valores de secuencia en antememoria no utilizados por DB2 se pierden cuando se alterna una secuencia. 7.4.4 Descarte de una secuencia Para suprimir una secuencia, utilice la sentencia DROP. Si desea obtener más información sobre esta sentencia, incluyendo esta sintaxis, consulte el manual Consulta de SQL. Se puede descartar una secuencia específica utilizando: DROP SEQUENCE nombre_secuencia donde nombre_secuencia es el nombre de la secuencia que se deberá descartar e incluye el nombre de esquema implícito o explícito para identificar de modo exacto una secuencia ya existente. Las secuencias creadas por el sistema para columnas IDENTITY no se pueden descartar utilizando la sentencia DROP SEQUENCE. Cuando se descarta una secuencia, también se descartan todos los privilegios sobre la secuencia. 7.4.5 Conmutación del estado de un espacio de tabla La cláusula SWITCH ONLINE de la sentencia ALTER TABLESPACE puede utilizarse para pasar espacios de tabla de un estado OFFLINE a un estado ONLINE si los contenedores asociados con dicho espacio de tabla se han convertido en accesibles. El espacio de tabla pasa a un estado ONLINE mientras que el resto de la base de datos todavía está activa y en uso. Una alternativa al uso de esta cláusula es desconectar todas las aplicaciones de la base de datos y, a continuación, conectar las aplicaciones de nuevo a la base de datos. Esto pasa el espacio de tabla de un estado OFFLINE a un estado ONLINE. Para conmutar el espacio de tabla a un estado ONLINE utilizando la línea de mandatos, entre: ALTER TABLESPACE SWITCH ONLINE 7.4.6 Modificación de contenedores en un espacio de tabla DMS Ahora los espacios de tabla DMS se crean y ajustan el tamaño en paralelo, lo que ofrece beneficios para el rendimiento. El grado de paralelismo es igual al número de captadores previos más 1. ------------------------------------------------------------------------ 7.5 Capítulo 5. Control de acceso a bases de datos A continuación de la sección titulada "Privilegios de índice", añada la sección siguiente: 7.5.1 Privilegios de secuencia El creador de una secuencia recibe automáticamente el privilegio USAGE. El privilegio USAGE es necesario para utilizar expresiones NEXTVAL y PREVVAL para la secuencia. Para permitir a otros usuarios utilizar las expresiones NEXTVAL y PREVVAL, deben garantizarse los privilegios de secuencia en PUBLIC. Esto permite a todos los usuarios utilizar las expresiones con la secuencia especificada. A continuación de la sección titulada "Supervisión de acceso a datos utilizando el recurso de auditoría", añada la sección siguiente: 7.5.2 Cifrado de datos Una parte del plan de seguridad puede implicar el cifrado de los datos. Para hacerlo, se pueden utilizar las funciones incorporadas de cifrado y descifrado: ENCRYPT, DECRYPT_BIN, DECRYPT_CHAR y GETHINT. Para más información sobre estas funciones, incluyendo su sintaxis, consulte la sección Consulta de SQL de las Notas sobre el release. La función ENCRYPT cifra datos utilizando un método de cifrado basado en contraseña. Estas funciones también le permiten encapsular una pista de contraseña. La pista de contraseña se intercala en los datos cifrados. Una vez cifrados, el único modo de descifrar los datos es mediante la utilización de la contraseña correcta. Los desarrolladores que optan por utilizar estas funciones deben planificar la gestión de contraseñas olvidadas y datos no utilizables. El resultado de las funciones ENCRYPT es el mismo tipo de datos como primer argumento. Sólo se pueden cifrar los VARCHARs. La longitud declarada del resultado es una de las siguientes: * La longitud del argumento de datos más 42 cuando se ha especificado el parámetro opcional de pista. * La longitud del argumento de datos más 10 cuando no se ha especificado el parámetro opcional de pista. Las funciones DECRYPT_BIN y DECRYPT_CHAR descifran datos utilizando el descifrado basado en contraseña. El resultado de las funciones DECRYPT_BIN y DECRYPT_CHAR es el mismo tipo de datos que el primer argumento. La longitud declarada del resultado es la longitud de los datos originales. La función GETHINT devuelve una pista de contraseña encapsulada. Una pista de contraseña es una locución que ayudará a los propietarios de los datos a recordar contraseñas. Por ejemplo, la palabra "Océano" puede utilizarse como pista para recordar la contraseña "Pacífico". La contraseña que se utiliza para cifrar los datos se determina de una de estas dos formas: * Argumento de contraseña. La contraseña es una serie que se pasa explícitamente cuando se invoca la función ENCRYPT. Los datos se cifran y descifran con la contraseña proporcionada. * Contraseña de registro especial. La sentencia SET ENCRYPTION PASSWORD cifra el valor de la contraseña y envía la contraseña cifrada al gestor de bases de datos para almacenarla en un registro especial. Las funciones ENCRYPT, DECRYPT_BIN y DECRYPT_CHAR invocadas sin un parámetro de contraseña utilizan el valor del registro especial ENCRYPTION PASSWORD. El valor inicial o por omisión para el registro especial es una serie vacía. Las longitudes válidas para contraseñas están entre 6 y 127, ambos inclusive. Las longitudes válidas para las pistas están entre 0 y 32, inclusive. Cuando se establece el registro especial ENCRYPTION PASSWORD desde el cliente, se cifra la contraseña en el cliente, se envía al servidor de bases de datos y luego se descifra. Para asegurar que la contraseña no queda legible, se vuelve a cifrar en el servidor de bases de datos. Las funciones DECRYPT_BIN y DECRYPT_CHAR deben descifrar el registro especial antes de su utilización. El valor que se encuentra en ENCRYPTION PASSWORD tampoco queda legible. No se da soporte a la seguridad de pasarela. ------------------------------------------------------------------------ 7.6 Capítulo 8. Recuperación de una base de datos 7.6.1 Cómo utilizar la E/S suspendida En el Capítulo 8, "Recuperación de una base de datos", ha de añadirse la sección nueva siguiente sobre la utilización de la función de E/S suspendida: Nota: La información siguiente sobre el programa de utilidad db2inidb sustituye a la información del manual Novedades de la Versión 7.2. db2inidb es una herramienta nueva, que se envía con DB2, que puede efectuar la recuperación de detenciones anormales y colocar una base de datos en pendiente de recuperación de avance. La E/S suspendida da soporte a la disponibilidad continua del sistema proporcionando una implantación completa para el manejo de división de reflejos en línea, es decir, para dividir un reflejo sin cerrar la base de datos. Si un cliente no puede permitirse efectuar copias de seguridad en línea o fuera de línea en una base de datos grande, las copias de seguridad o las copias del sistema pueden efectuarse desde una imagen especular utilizando la E/S suspendida y la división de reflejos. En función del modo en que se están reflejando los dispositivos de almacenamiento, las utilizaciones de db2inidb serán diferentes. Las utilizaciones siguientes asumen que toda la base de datos se ha reflejado de modo coherente en el sistema de almacenamiento. En un entorno multinodo, debe ejecutarse la herramienta db2inidb en cada partición para poder utilizar la imagen dividida desde cualquiera de las particiones. La herramienta db2inidb puede ejecutarse simultáneamente en todas las particiones. 1. Creación de una base de datos clónica El objetivo aquí es el de disponer de un clon de la base de datos primaria para ser utilizada con finalidad de sólo lectura. El procedimiento siguiente describe el modo en que debería hacerse una base de datos clónica: a. Suspenda la E/S en el sistema primario entrando el mandato siguiente: db2 set write suspend for database b. Utilice el mandato de nivel del sistema operativo para dividir el reflejo de la base de datos primaria. c. Reanude la E/S en el sistema primario entrando el mandato siguiente: db2 set write resume for database Después de ejecutar el mandato, la base de datos del sistema primario debería devolverse a un estado normal. d. Adjunte la base de datos reflejada de otra máquina. e. Arranque la instancia de base de datos entrando el mandato siguiente: db2start f. Arranque la recuperación de la detención anormal de DB2 entrando el mandato siguiente: db2inidb nombre_basedatos AS SNAPSHOT Nota: Este mandato retrotraerá los cambios efectuados por medio de transacciones que estén en curso en el momento de la división. También se puede utilizar este proceso para una copia de seguridad fuera de línea, pero si se restaura en el sistema principal, esta copia de seguridad no se puede utilizar para la recuperación de avance, puesto que la cadena de anotación cronológica no coincidirá. 2. Utilización de la división de reflejo como base de datos en espera Como la base de datos reflejada (en espera) realiza recuperación de avance repetidamente a través de las anotaciones cronológicas, nuevas anotaciones cronológicas que crea la base de datos primaria se buscan y se cargan constantemente desde el sistema primario. El procedimiento siguiente describe el modo en que puede utilizarse la división de reflejo como base de datos en espera: a. Suspender las grabaciones de E/S en la base de datos primaria. b. Dividir el reflejo en el sistema primario. c. Reanudar las grabaciones de E/S en la base de datos primaria para que la base de datos primaria vuelva al proceso normal. d. Adjuntar la base de datos reflejada a otra instancia. e. Colocar el reflejo en pendiente de recuperación de avance y realice recuperación de avance del reflejo. Ejecute la herramienta db2inidb (db2inidb en espera) para eliminar el estado de suspender grabación y colocar el reflejo de la base de datos en estado pendiente de recuperación en avance. f. Copiar las anotaciones cronológicas configurando un programa de salida de usuario para recuperar archivos de anotaciones cronológicas del sistema primario para asegurarse de que las últimas anotaciones cronológicas estarán disponibles para esta base de datos reflejada. g. Realice una recuperación en avance de la base de datos hasta el final de las anotaciones cronológicas. h. Vaya al paso f y repita este proceso hasta que se desactive la base de datos primaria. 3. Utilización de la división de reflejo como imagen de copia de seguridad El procedimiento siguiente describe el modo de utilizar el sistema reflejado como imagen de copia de seguridad para restaurar el sistema primario: a. Utilice los mandatos del sistema operativo para copiar los datos reflejados y anotaciones cronológicas en la parte superior del sistema primario. b. Arranque la instancia de base de datos entrando el mandato siguiente: db2start c. Ejecute el siguiente mandato para colocar la base de datos reflejada en estado pendiente de recuperación en avance y para eliminar el estado suspender grabación. db2inidb alias_basedatos AS MIRROR d. Realice una recuperación en avance de la base de datos hasta el final de las anotaciones cronológicas. 7.6.2 Copia de seguridad y recuperación incremental Para el Capítulo 8, "Recuperación de una base de datos," a continuación se encuentra una nueva sección sobre la copia de seguridad y recuperación incremental: A medida que el tamaño de las bases de datos, especialmente los depósitos, continúa aumentando hasta el rango de terabytes y petabytes, el tiempo y los recursos de hardware necesarios para realizar una copia de seguridad y recuperar estas bases de datos también crecen considerablemente. Las copias de seguridad completas de bases de datos y espacios de tabla no siempre son la mejor opción cuando se manejan bases de datos de gran tamaño, puesto que los requisitos de almacenamiento para varias copias de dichas bases de datos son enormes. Tenga en cuenta lo siguiente: * Cuando cambia un pequeño porcentaje de los datos de un depósito, no tiene que ser necesario realizar una copia de seguridad de toda la base de datos. * Añadir espacios de tabla a bases de datos ya existentes y luego tomar únicamente copias de seguridad de los espacios de tabla es arriesgado, puesto que los datos que se encuentran fuera de los espacios de tabla de los que se ha realizado copia de seguridad pueden cambiar. DB2 ahora da soporte a la copia de seguridad y restauración incremental (pero no de datos de objetos de gran tamaño o de campos largos). Una copia de seguridad incremental es una imagen de copia de seguridad que contiene sólo páginas que se han actualizado desde la realización de la copia de seguridad anterior. Además de las páginas de índice y los datos actualizados, cada imagen de copia de seguridad incremental también contiene todos los metadatos de base de datos iniciales (tales como configuración de la base de datos, definiciones de espacios de tabla, historial de la base de datos, etc.) que normalmente se almacenan en imágenes de copia de seguridad completas. Se da soporte a dos tipos de copia de seguridad incremental: * Incremental. Una imagen de copia de seguridad incremental es una copia de todos los datos de base de datos que han cambiado desde la operación de copia de seguridad completa más reciente que ha sido satisfactoria. Esto también se conoce como imagen de copia de seguridad acumulativa, puesto que una serie de copias de seguridad incrementales realizadas en el transcurso del tiempo tendrán cada una de ellas el contenido de la imagen de copia de seguridad incremental previa. Anteriormente a una imagen de copia de seguridad incremental siempre se encuentra la copia de seguridad completa satisfactoria más reciente del mismo objeto. * Delta. Una imagen de copia de seguridad delta o delta incremental es una copia de todos los datos de la base de datos que han cambiado desde la última copia de seguridad satisfactoria (completa, incremental o delta) del espacio de tabla en cuestión. Esto también se conoce como imagen de copia de seguridad diferencial o no acumulativa. Anteriormente a una imagen de copia de seguridad delta se encuentra la copia de seguridad satisfactoria más reciente que contiene una copia de cada uno de los espacios de tabla de la imagen de copia de seguridad delta. La diferencia clave entre imágenes de copia de seguridad incrementales y delta es su comportamiento cuando se llevan a cabo copias de seguridad sucesivas de un objeto que está cambiando continuamente en el transcurso del tiempo. Cada imagen incremental sucesiva contiene todo el contenido de la imagen incremental anterior, además de los datos que hayan cambiado o es nueva, desde que se ha producido la copia de seguridad anterior. Las imágenes de copia de seguridad delta contienen sólo las páginas que han cambiado desde que se ha producido la imagen anterior. Se permiten combinaciones de copias de seguridad incrementales de bases de datos y espacios de tabla, tanto en modalidad de funcionamiento en línea como fuera de línea. Tenga cuidado cuando planifique la estrategia de copia de seguridad, ya que que la combinación de copias de seguridad incrementales de bases de datos y espacios de tabla implica que el predecesor de una copia de seguridad de base de datos (o una copia de seguridad de espacio de tabla de varios espacios de tabla) no es necesariamente una sola imagen, sino que puede ser un conjunto exclusivo de copias de seguridad de base de datos y espacio de tabla previas realizadas en momentos distintos. Para recrear la base de datos o el espacio de tabla en un estado coherente, el proceso de recuperación debe empezar con una imagen coherente de todo el objeto (base de datos o espacio de tabla) que se restaurará y luego debe aplicar cada una de las imágenes de copia de seguridad incremental en el orden que se describe más adelante (consulte el apartado "Método de restauración"). Para habilitar el rastreo de actualizaciones de la base de datos, DB2 da soporte a un nuevo parámetro de configuración de base de datos, TRACKMOD, que puede tener uno de estos dos valores aceptados: * NO. La copia de seguridad incremental no está permitida con esta configuración. No se realiza un seguimiento de las actualizaciones de página de base de datos ni se registran de ningún modo. * YES. Se permite la copia de seguridad incremental con esta configuración. Cuando el seguimiento de actualizaciones está habilitado, el cambio se vuelve efectivo en la primera conexión satisfactoria con cualquier base de datos de la instancia. Una copia de seguridad de base de datos completa es necesaria para poder realizar una copia de seguridad incremental. El valor TRACKMOD por omisión para bases de datos ya existentes es NO; para bases de datos nuevas es YES. La granularidad del seguimiento es a nivel de espacio de tabla tanto para espacios de tabla SMS como para espacios de tabla DMS. Aunque mínimo, el seguimiento de actualizaciones de la base de datos pueden tener un impacto en el rendimiento de la ejecución de transacciones que actualizan o insertan datos. 7.6.2.1 Restauración a partir de imágenes de copia de seguridad incremental Una operación de restauración a partir de imágenes de copia de seguridad incremental consta de los pasos siguientes: 1. Identificación de la imagen de destino incremental. La DBA primero debe determinar la imagen final que se restaurará y solicitar una operación de restauración incremental desde el programa de utilidad de restauración de DB2. Esta imagen se conoce como imagen de destino de la restauración incremental, porque será la última imagen que se restaurará. Un mandato de restauración incremental frente a esta imagen puede iniciar la creación de una nueva base de datos con las definiciones de espacio de tabla y configuración de esta imagen de destino. La imagen de destino incremental se especifica utilizando el parámetro TAKEN AT del mandato RESTORE DATABASE. 2. La restauración de la imagen de espacio de tabla o base de datos completa más reciente para establecer una línea base frente a la que se podrá aplicar cada una de las imágenes de copia de seguridad incremental subsiguientes. 3. La restauración de cada una de las imágenes de copia de seguridad incremental de espacio de tabla o completas necesarias, en el orden en que se producen, encima de la imagen de línea base restaurada en el Paso 2. 4. Repetición del Paso 3 hasta que se lee la imagen de destino del Paso 1 por segunda vez. Se accede dos veces a la imagen de destino durante una operación de restauración incremental completa. Durante el primer acceso, sólo se leen datos iniciales de la imagen; no se lee ninguno de los datos de usuario. Se lee y procesa la imagen completa sólo durante el segundo acceso. Se debe acceder a la imagen de destino de la operación de restauración incremental dos veces para asegurar que la base de datos se configure inicialmente con el historial, la configuración de base de datos y las definiciones de espacios de tabla correctos para la base de datos que se creará durante la operación de restauración. En los casos donde se ha descartado un espacio de tabla desde que se realizó la copia de seguridad de la base de datos completa inicial, los datos de espacio de tabla para dicha imagen se leerán de las imágenes de copia de seguridad pero se ignorarán durante el proceso de restauración incremental. Por ejemplo: 1. db2 restore database sample incremental taken at donde: señala la última imagen de copia de seguridad incremental que se restaurará 2. db2 restore database sample incremental taken at donde: señala la imagen de base de datos (o espacio de tabla) completa inicial 3. db2 restore database sample incremental taken at donde: señala cada imagen de copia de seguridad incremental en secuencia de creación 4. Repita el Paso 3, restaurando cada imagen de copia de seguridad incremental hasta la imagen , incluida ésta. En los casos donde se está intentando una operación de restauración de base de datos y se han producido imágenes de copia de seguridad incremental, las imágenes de espacio de tabla deben restaurarse en el orden cronológico de sus indicaciones de la hora de copia de seguridad. 7.6.3 Recuperación paralela DB2 ahora utiliza varios agentes para realizar la recuperación de detenciones anormales y la recuperación de avance de bases de datos. Se puede esperar un mejor rendimiento durante estas operaciones, especialmente en máquinas SMP (multiprocesador simétrico); la utilización de varios agentes durante la recuperación de la base de datos aprovecha las CPU adicionales que están disponibles en las máquinas SMP. El nuevo tipo de agente introducido por esta mejora es db2agnsc. DB2 elige el número de agentes a utilizar para la recuperación de bases de datos basándose en el número de CPU de la máquina. Para máquinas SMP, el número de agentes utilizado es (número de CPU + 1). En una máquina con una única CPU, se utilizan tres agentes para una lectura más eficiente de anotaciones cronológicas, proceso de registros de anotación cronológica y captación previa de páginas de datos. DB2 distribuye registros de anotación cronológica a estos agentes de modo que se puedan volver a aplicar de modo simultáneo donde sea oportuno. El proceso de los registros de anotación cronológica se hace paralelo al nivel de página (los registros de anotación cronológica de la misma página de datos son procesados por el mismo agente); por lo tanto, se mejora el rendimiento, incluso si se ha realizado todo el trabajo en una tabla. 7.6.4 Copia de seguridad en conexiones con nombre Ahora hay soporte disponible para la copia de seguridad de base de datos en (y restauración de base de datos a partir de) conexiones con nombre locales en sistemas basados en UNIX. Tanto el grabador como el lector de la conexión con nombre deben estar en la misma máquina. La conexión debe existir y estar ubicada en un sistema de archivos local. Puesto que la conexión con nombre se trata como dispositivo local, no hay necesidad de especificar que el destino es una conexión con nombre. A continuación se encuentra un ejemplo de AIX: 1. Cree una conexión con nombre: mkfifo /u/dbuser/mypipe 2. Utilice esta conexión como destino para la operación de copia de seguridad de base de datos: db2 backup db sample to /u/dbuser/mypipe 3. Restaure la base de datos: db2 restore db sample into mynewdb from /u/dbuser/mypipe 7.6.5 Copia de seguridad de imagen dividida DB2 ahora da soporte a la copia de seguridad de base de datos completa fuera de línea en la copia reflejada dividida de una base de datos. No se da soporte a la copia de seguridad en línea y no es necesaria porque la base de datos, que está en estado pendiente de recuperación de avance, no está disponible. Cuando se restaura una imagen de copia de seguridad reflejada dividida, se debe recuperar en avance porque puede haber habido transacciones activas cuando se ha producido la división. Nota: Para DB2 Versión 7.1 FixPak 3 y DB2 Versión 7.2 este soporte se limitará a bases de datos que contienen sólo espacios de tabla DMS. Si se intenta realizar una copia de seguridad de una base de datos después de una división y la base de datos contiene espacios de tabla SMS, la copia de seguridad será anómala. Cuando se ha dividido una base de datos, debe utilizarse el programa de utilidad db2inidb para especificar una de las opciones siguientes: * Instantánea. Inicia la recuperación de detenciones anómalas, haciendo que la base de datos sea coherente. Se inicia una nueva cadena de anotación cronológica y la base de datos no se podrá recuperar en avance a través de las anotaciones cronológicas de la base de datos original. La base de datos está disponible para cualquier operación, incluyendo la copia de seguridad. * Espera. Coloca la base de datos en estado de recuperación de avance pendiente. No se lleva a cabo la recuperación de detenciones anormales y la base de datos permanece incoherente. * Reflejo. Esto origina una copia reflejada de la base de datos para sustituir la base de datos original. La base de datos se coloca en estado pendiente de recuperación de avance y se desactiva el estado WRITE SUSPEND. No se lleva a cabo la recuperación de detenciones anormales y la base de datos permanece incoherente. A continuación se encuentran algunos marcos hipotéticos de utilización: * Realización de un clon de base de datos. El objetivo aquí es el de disponer de un clon de sólo lectura de la base de datos primaria que pueda utilizarse, por ejemplo, para crear informes. Para hacerlo, siga estos pasos: 1. Suspenda la E/S en el sistema primario: db2 set write suspend for database 2. Divida el reflejo. Utilice mandatos de nivel del sistema operativo para dividir el reflejo de la base de datos primaria. 3. Reanude la E/S en el sistema primario: db2 set write resume for database La base de datos del sistema primario debería devolverse a un estado normal. 4. Monte los reflejos divididos de la base de datos en otro sistema principal. 5. Inicie la instancia: db2start 6. Inicie la recuperación de detenciones anormales de DB2: db2inidb as snapshot También se puede utilizar este proceso para una copia de seguridad fuera de línea, pero si se restaura en el sistema principal, esta copia de seguridad no se puede utilizar para la recuperación de avance, puesto que la cadena de anotación cronológica no coincidirá. * Utilización de la división de reflejo como base de datos en espera. La idea es que la base de datos reflejada (en espera) esté continuamente en recuperación de avance a través de las anotaciones cronológicas e incluso las nuevas anotaciones cronológicas que la base de datos primaria está creando se capten continuamente desde el sistema primario. Para utilizar la división de reflejo como base de datos en espera, siga estos pasos: 1. Suspenda la E/S en el sistema primario: db2 set write suspend for database 2. Divida el reflejo. Utilice mandatos de nivel del sistema operativo para dividir el reflejo de la base de datos primaria. 3. Reanude la E/S en el sistema primario: db2 set write resume for database La base de datos del sistema primario debería devolverse a un estado normal. 4. Monte los reflejos divididos de la base de datos en otro sistema principal. 5. Elimine el estado de suspender grabación y ponga la base de datos reflejada en estado pendiente de recuperación de avance. db2inidb as standby 6. Copie las anotaciones cronológicas. Configure un programa de salida de usuario para recuperar archivos de anotaciones cronológicas de la ubicación de archivado del sistema primario, de modo que las últimas anotaciones cronológicas estarán disponibles para esta base de datos reflejada. 7. Realice una recuperación en avance del reflejo hasta el final de las anotaciones cronológicas. db2 rollforward db to end of logs 8. Repita el proceso desde el paso 6 hasta que la base de datos primaria esté desactivada. * Utilización de la división de reflejo para recuperar el sistema primario. El procedimiento siguiente describe el modo de utilizar el sistema reflejado como imagen de copia de seguridad para restaurar el sistema primario: 1. Copie encima. Utilice los mandatos del sistema operativo para copiar los datos reflejados y anotaciones cronológicas en la parte superior del sistema primario. 2. Inicie la instancia: db2start 3. Ponga el reflejo restaurado en estado pendiente de recuperación de avance y realice la recuperación de avance del reflejo hasta el final de las anotaciones cronológicas. db2inidb as mirror * Realización de una copia de seguridad sin realizar la recuperación de detenciones anormales. La realización de una copia de seguridad fuera de línea en el reflejo dividido sin realizar la recuperación de detenciones anormales significa que se puede restaurar esta imagen de copia de seguridad encima del sistema primario. Para hacerlo, siga estos pasos: 1. Suspenda la E/S en el sistema primario: db2 set write suspend for database 2. Divida el reflejo. Utilice mandatos de nivel del sistema operativo para dividir el reflejo de la base de datos primaria. 3. Reanude la E/S en el sistema primario: db2 set write resume for database La base de datos del sistema primario debería devolverse a un estado normal. 4. Monte los reflejos divididos de la base de datos en otro sistema principal. 5. Inicie la instancia: db2start 6. Ponga la base de datos reflejada en estado pendiente de recuperación de avance: db2inidb as standby 7. Invoque una operación de copia de seguridad de base de datos: db2 backup database Esto resulta en una conexión de base de datos implícita, pero no inicia la recuperación de detenciones anormales de DB2. 7.6.6 Archivador de anotaciones cronológicas a petición DB2 ahora da soporte al cerramiento (y, si la opción de salida de usuario está habilitada, al archivado) de la anotación cronológica activa para una base de datos recuperable en cualquier momento. Esto permite reunir un conjunto completo de archivos de anotación cronológica hasta un punto conocido y luego utilizarlos para actualizar una base de datos en espera. Nota: El archivado de anotación cronológica a demanda no garantiza que se archiven los archivos de anotación cronológica inmediatamente; trunca el archivo de anotación cronológica y emite una petición de archivado, pero todavía está sujeto a retardos asociados al programa de salida de usuario. Se puede iniciar el archivado de anotaciones cronológicos a petición invocando el nuevo mandato DB2 ARCHIVE LOG o llamando a la nueva API db2ArchiveLog. 7.6.7 Reflexión de anotaciones cronológicas En el Capítulo 8, "Recuperación de una base de datos", ha de añadirse la sección nueva siguiente sobre la utilización de la función de E/S en suspensión: DB2 ahora da soporte a la reflexión de anotaciones cronológicas a nivel de base de datos. La reflexión de archivos de anotación cronológica ayuda a proteger una base de datos de: * Supresión accidental de una anotación cronológica activa * Daños a los datos ocasionados por una anomalía de hardware Si le preocupa que las anotaciones cronológicas activas puedan resultar dañadas (como resultado de una anomalía del disco), debe pensar en utilizar una nueva variable de registro de DB2, DB2_NEWLOGPATH2, especificar una vía de acceso secundaria para la base de datos para gestionar las copias de la anotación cronológica activa, reflejando los volúmenes en los que se encuentran almacenadas las anotaciones cronológicas. La variable de registro DB2_NEWLOGPATH2 permite a la base de datos grabar una segunda copia idéntica de los archivos de anotación cronológica en una vía de acceso distinta. Se recomienda colocar la vía de acceso de anotación cronológica secundaria en otro disco físico (preferiblemente uno que también se encuentre un un controlador de disco distinto). De este modo, el controlador de disco no puede ser un único punto de anomalía. Nota: Puesto que Windows NT y OS/2 no permiten "montar" un dispositivo bajo un nombre de vía de acceso arbitrario, no es posible (en estas plataformas) especificar una vía de acceso secundaria en un dispositivo por separado. DB2_NEWLOGPATH2 puede habilitarse (establecerse en 1) o inhabilitarse (establecerse en 0). El valor por omisión es cero. Si esta variable se establece en 1, el nombre de la vía de acceso secundaria es el valor actual de la variable LOGPATH concatenado con el carácter 2. Por ejemplo, en un entorno SMP, si LOGPATH es /u/dbuser/sqllogdir/logpath, la vía de acceso de anotación cronológica secundaria será /u/dbuser/sqllogdir/logpath2. En un entorno MPP, si LOGPATH es /u/dbuser/sqllogdir/logpath, DB2 añadirá el indicador de nodo a la vía de acceso y utilizará /u/dbuser/sqllogdir/logpath/NODE0000 como vía de acceso de anotación cronológica primaria. En este caso, la vía de acceso de anotación cronológica secundaria será /u/dbuser/sqllogdir/logpath2/NODE0000. Cuando DB2_NEWLOGPATH2 se habilita primero, en realidad no se utilizará hasta que se complete el archivo de anotación cronológica actual en el siguiente arranque de la base de datos. Esto es parecido al modo en que se utiliza actualmente NEWLOGPATH. Si hay un error al grabar en la vía de acceso de anotación cronológica primaria o secundaria, la base de datos marcará la vía de acceso anómala como "mala", grabará un mensaje en el archivo db2diag.log y grabará los registros de anotación cronológica subsiguientes sólo en la vía de acceso de anotación cronológica "buena" restante. DB2 no intentará utilizar de nuevo la vía de acceso "mala" hasta que se haya completado el archivo de anotación cronológica actual. Cuando DB2 necesite abrir el siguiente archivo de anotación cronológica, verificará que esta vía de acceso sea válida, y si es así, empezará a utilizarla. Si no es así, DB2 intentará utilizar de nuevo la vía de acceso hasta que se acceda al siguiente archivo de anotación cronológica por primera vez. No hay ningún intento de sincronizar las vías de acceso de anotación cronológica, pero DB2 guarda información sobre los errores de acceso que se producen, para que se utilicen las vías de acceso correctas cuando se archiven los archivos de anotación cronológica. Si se produce una anomalía al grabar en la vía de acceso "buena" restante, la base de datos termina anormalmente. 7.6.8 Soporte de copia de seguridad y restauración a través de plataformas en Sun Solaris y HP Ahora hay soporte disponible para el soporte de copia de seguridad y restauración a través de plataformas entre Sun Solaris y HP. Cuando se transfiere la imagen de copia de seguridad entre sistemas, se debe transferir en modalidad binaria. En el sistema de destino, la base de datos debe crearse con la misma página de códigos/territorio que el sistema en el que se ha creado la base de datos original. 7.6.9 Consideraciones sobre DB2 Data Links Manager/Consideraciones sobre el programa de utilidad de copia de seguridad Sustituya el segundo párrafo de esta sección por: Cuando se enlazan archivos, los servidores Data Links planifican la copia de los mismos asíncronamente a un servidor de archivador como, por ejemplo, ADSM, o a disco. Cuando se ejecuta el programa de utilidad de copia de seguridad, DB2 se asegura de que todos los archivos planificados para ser copiados se hayan copiado. Al principio del proceso de copia de seguridad, DB2 entra en contacto con todos los servidores Data Links que se han especificado en el archivo de configuración de DB2. Si un servidor Data Links tiene uno o más archivos enlazados y no se está ejecutando, o deja de ejecutarse durante la operación de copia de seguridad, la copia de seguridad no contendrá información de DATALINK completa. La operación de copia de seguridad se completará satisfactoriamente. Para que el servidor Data Links se pueda marcar como disponible en la base de datos, el proceso de copia de seguridad para todas las copias de seguridad pendientes se debe completar satisfactoriamente. Si se ha iniciado una copia de seguridad cuando hay el doble del valor de num_db_backups (véalo más abajo) copias de seguridad pendientes esperando a ser completadas en el servidor Data Links, la operación de copia de seguridad fallará. Dicho servidor Data Links debe reiniciarse y las copias de seguridad pendientes deben completarse para que se permitan copias de seguridad adicionales. 7.6.10 Consideraciones sobre DB2 Data Links Manager/Consideraciones sobre el programa de utilidad de restauración y recuperación de avance Sustituya los párrafos que empiezan por: Cuando se restaura una base de datos o espacio de tabla y no se especifica WITHOUT DATALINK... y Cuando se restaura una base de datos o espacio de tabla y se especifica la opción WITHOUT DATALINK... por: Cuando se restaura una base de datos o espacio de tabla, deben cumplirse las condiciones siguientes para que la operación de restauración sea satisfactoria: o Si cualquier Data Links Server registrado en el archivo de copia de seguridad no se está ejecutando, la operación de restauración aún se completará satisfactoriamente. Las tablas con información de columnas DATALINK que se ven afectadas por el servidor Data Links que falta se podrán en estado pendiente de reconciliación de enlace de datos después de que se complete la operación de restauración (o la operación de recuperación de avance, si se utiliza). Para que los servidores Data Links puedan marcarse de nuevo como disponibles en la base de datos, este proceso de restauración debe completarse satisfactoriamente. o Si cualquier Data Links Server registrado en el archivo de copia de seguridad deja de ejecutarse durante la operación de restauración, la operación de restauración fallará. La restauración se puede reiniciar con el Data Links Server desactivado (véalo más arriba). o Si una operación de restauración de base de datos anterior todavía está incompleta en cualquier servidor Data Links, las operaciones de restauración de base de datos o espacio de tabla subsiguientes serán anómalas hasta que se reinicien estos servidores Data Links y complete la restauración incompleta. o La información sobre todas las columnas DATALINK que se registran en el archivo de copia de seguridad debe encontrarse en las tablas de registro de los servidores Data Links apropiados. Si toda la información sobre las columnas DATALINK no está registrada en las tablas de registro, la tabla con la información de columna DATALINK que falta se pone en estado de no es posible la reconciliación de enlace de datos después de que se complete la operación de restauración (o la operación de recuperación de avance, si se utiliza). Si no se registra la copia de seguridad en las tablas de registro, puede significar que el archivo de copia de seguridad que se proporciona es anterior al valor de num_db_backups y que ya se ha "recogido como residuo". Esto significa que los archivos archivados de esta copia de seguridad anterior se han eliminado y no se pueden restaurar. Todas las tablas que tienen columnas DATALINK se ponen en estado pendiente de reconciliación de enlace de datos. Si no se registra la copia de seguridad en las tablas de registro, puede significar que el proceso de copia de seguridad todavía no se ha completado porque el servidor Data Links no se está ejecutando. Todas las tablas que tienen columnas DATALINK se ponen en estado de pendiente de reconciliación de enlace de datos. Cuando se reinicia el servidor Data Links, se completará el proceso de copia de seguridad antes de restaurar el proceso. La tabla permanece disponible a los usuarios, pero los valores de las columnas DATALINK pueden no hacer referencia a los archivos correctamente (por ejemplo, puede que no se encuentre un archivo que coincida con un valor para la columna DATALINK). Si no desea que se produzca este comportamiento, puede poner la tabla en estado pendiente de comprobación emitiendo la sentencia "SET CONSTRAINTS for tablename TO DATALINK RECONCILE PENDING". Si, después de una operación de restauración, tiene una tabla en estado de no es posible la reconciliación de enlace de datos, puede arreglar los datos de la columna DATALINK de una de las formas que se sugieren bajo el apartado "Eliminación de una tabla del estado Datalink_Reconcile_Not_Possible". La nota que se encuentra en la parte inferior del primer párrafo permanece igual. Añada lo siguiente al final de esta sección: Se recomienda el archivado del archivo datalink.cfg para cubrir ciertos casos de recuperación poco comunes, ya que el archivo datalink.cfg de la imagen de copia de seguridad de la base de datos sólo refleja datalink.cfg tal como era en el momento de la copia de seguridad. Es necesario tener el archivo datalink.cfg más reciente para cubrir todos los casos de recuperación. Por lo tanto, es necesario realizar copia de seguridad del archivo datalink.cfg después de cada invocación de mandato ADD DATALINKS MANAGER o DROP DATALINKS MANAGER. Esto ayudaría a recuperar el archivo datalink.cfg más reciente, si éste no está disponible en disco. Si el archivo datalink.cfg más reciente no está disponible en disco, substituya el archivo datalink.cfg ya existente (restaurado a partir de una copia de seguridad) por el archivo datalink.cfg más reciente que se ha archivado antes de ejecutar una operación de recuperación de avance. Lleve esto a cabo después de la restauración de la base de datos. 7.6.11 Restauración de bases de datos a partir de una copia de seguridad fuera de línea sin recuperación de avance Sólo se puede restaurar sin recuperación de avance a nivel de base de datos, no a nivel de espacio de tabla. Para restaurar una base de datos sin realizar la recuperación de avance, se puede restaurar una base de datos no recuperable (es decir, una base de datos que utiliza la anotación cronológica circular) o especificar el parámetro WITHOUT ROLLING FORWARD en el mandato RESTORE DATABASE. Si utiliza el programa de utilidad de restauración sin la opción WITHOUT DATALINK, todas las tablas con columnas DATALINK se colocan en estado pendiente de reconciliación de enlace de datos (DRP) y no se realiza la reconciliación con los servidores Data Links durante la operación de restauración. Si no utiliza la opción WITHOUT DATALINK y ya no se define en la base de datos un servidor Data Links registrado en el archivo de copia de seguridad (es decir, se ha descartado utilizando el mandato DROP DATALINKS MANAGER), el programa de utilidad de restauración pone en estado DRP a las tablas que contienen datos DATALINK que hacen referencia al servidor Data Links descartado. Si no utiliza la opción WITHOUT DATALINK, todos los servidores Data Links están disponibles y toda la información sobre las columnas DATALINK está registrada totalmente en las tablas de registro, sucede lo siguiente para cada servidor Data Links registrado en el archivo de copia de seguridad: * Todos los archivos enlazados después de la imagen de copia de seguridad que se ha utilizado para la operación de restauración de la base de datos se marcan como no enlazados (porque no se registran en la imagen de copia de seguridad como enlazados). * Todos los archivos desenlazados después de la imagen de copia de seguridad, pero que se han enlazado antes de la realización de la imagen de copia de seguridad, se marcan como enlazados (porque se registran en la imagen de copia de seguridad como enlazados). Si el archivo se ha enlazado después con otra tabla de otra base de datos, la tabla restaurada se pone en estado pendiente de reconciliación de enlace de datos. Nota: lo anterior no se puede realizar si la imagen de copia de seguridad que se ha utilizado para la operación de restauración de la base de datos se ha llevado a cabo cuando, como mínimo, un servidor Data Links no se estaba ejecutando, ya que la información DATALINK de la copia de seguridad está incompleta. Tampoco se puede realizar lo anterior si la imagen de copia de seguridad que se ha utilizado para la operación de restauración de la base de datos se ha llevado a cabo después de una restauración de base de datos con o sin recuperación de avance. En ambos casos, todas las tablas con columnas DATALINK se colocan en estado pendiente de reconciliación de enlace de datos y no se lleva a cabo ninguna reconciliación con los servidores Data Links durante la operación de restauración. 7.6.12 Restauración de bases de datos y espacios de tabla, y recuperación de avance hasta el final de las anotaciones cronológicas Si restaura y luego realiza una recuperación de avance de la base de datos o espacio de tabla hasta el final de las anotaciones cronológicas (lo que significa que se han proporcionado todas las anotaciones cronológicas), no es necesaria una comprobación de reconciliación a menos que, como mínimo, uno de los servidores Data Links registrados en el archivo de copia de seguridad no se esté ejecutando durante la operación de restauración. Si no está seguro de si se han proporcionado todas las anotaciones cronológicas para la operación de recuperación de avance o si piensa que puede necesitar reconciliar valores DATALINK, efectúe lo siguiente: 1. Emita la sentencia de SQL para la tabla (o tablas) implicadas: SET CONSTRAINTS FOR tablename TO DATALINK RECONCILE PENDING Esto pone la tabla en estado pendiente de reconciliación de enlace de datos y estado pendiente de comprobación. 2. Si no desea que una tabla esté en estado pendiente de comprobación, emita la siguiente sentencia de SQL: SET CONSTRAINTS FOR tablename IMMEDIATE CHECKED Esto saca la tabla del estado pendiente de comprobación, pero la deja en estado pendiente de reconciliación de enlace de datos. Debe utilizar el programa de utilidad de reconciliación para sacar la tabla de este estado. Puede suceder que el archivo de copia de seguridad contenga datos DATALINK que hagan referencia a un DB2 Data Links Manager (es decir, se haya registrado un DB2 Data Links Manager en la base de datos donde se ha realizado la copia de seguridad) que se ha descartado de la base de datos. Para cada espacio de tabla que se está recuperando en avance que contiene como mínimo una tabla con datos DATALINK que hacen referencia al DB2 Data Links Manager descartado, el programa de utilidad de recuperación de avance ponen todas las tablas en estado DRP. 7.6.13 Interacciones de DB2 Data Links Manager y recuperación La tabla siguiente muestra los distintos tipos de recuperación que puede realizar, el proceso de DB2 Data Links Manager que se produce durante el proceso de restauración y de recuperación de avance, y si es necesario ejecutar el programa de utilidad de reconciliación después de completar la recuperación: Tipo de DB2 Data Links DB2 Data Links Reconciliación recuperación Manager Proceso Manager Proceso durante la durante la restauración recuperación de avance Base de datos no recuperable (logretain=NO) Restauración Se lleva a cabo la N/D Se puede ejecutar de base de reconciliación opcionalmente si se datos de una rápida sospecha que hay copia de problemas con seguridad enlaces de archivos completa, todos los Data Links Servers activados Restauración Las tablas se ponen N/D Necesario de base de en estado datos Datalink_Reconcile utilizando la _Pending opción WITHOUT DATALINK Restauración Se lleva a cabo la N/D Necesario para de base de reconciliación tablas de espacios datos de una rápida sólo en las de tabla con copia de tablas de espacios enlaces con el seguridad de tabla que no servidor Data Links completa, por tienen enlaces con que está lo menos un un servidor Data desactivado servidor Data Links que está Links desactivado, las desactivado otras tablas se ponen en estado Datalink_Reconcile _Pending Restauración No se realiza la N/D Necesario de base de reconciliación datos de una rápida, todas las copia de tablas con columnas seguridad DATALINK se ponen incompleta, en estado todos los Datalink_Reconcile servidores _Pending Data Links activados Base de datos recuperable (logretain=YES) Restauración Se lleva a cabo la N/D Opcional de una base de reconciliación datos rápida utilizando la opción WITHOUT ROLLING FORWARD, utilizando una copia de seguridad completa, todos los servidores Data Links activados Restauración Las tablas se ponen N/D Necesario de una base de en estado datos Datalink_Reconcile utilizando las _Pending opciones WITHOUT ROLLING FORWARD y WITHOUT DATALINK, utilizando una copia de seguridad completa o incompleta, los servidores Data Links activados o desactivados Restauración Se lleva a cabo la N/D Necesario en tablas de una base de reconciliación de espacios de datos rápida sólo en las tabla con enlaces utilizando la tablas de espacios con servidores Data opción WITHOUT de tabla que no Links que están ROLLING tienen enlaces con desactivados FORWARD, los servidores Data utilizando una Links que están copia de desactivados, las seguridad otras tablas se completa, como ponen en estado mínimo un Datalink_Reconcile servidor Data _Pending Links desactivado Restauración No se realiza la N/D Necesario de una base de reconciliación datos rápida, todas las utilizando la tablas con columnas opción WITHOUT DATALINK se ponen ROLLING en estado FORWARD, Datalink_Reconcile utilizando una _Pending copia de seguridad incompleta, los servidores Data Links activados o desactivados Restauración Ninguna acción Ninguna acción Opcional de una base de datos y recuperación de avance hasta el final de las anotaciones cronológicas, utilizando una copia de seguridad completa, todos los servidores Data Links activados Restauración Ninguna acción Ninguna acción Opcional de una base de datos y recuperación de avance hasta el final de las anotaciones cronológicas, utilizando una copia de seguridad completa, como mínimo un servidor Data Links desactivado durante el proceso de recuperación de avance Restauración Ninguna acción Todas las tablas Necesario para de una base de con columnas todas las tablas datos y DATALINK se ponen con columnas recuperación en estado DATALINK de avance Datalink_Reconcile hasta el final _Pending de las anotaciones cronológicas, utilizando una copia de seguridad completa o incompleta, cualquier servidor Data Links desactivado durante la restauración Restauración Ninguna acción Ninguna acción Opcional de una base de datos y recuperación de avance hasta el final de las anotaciones cronológicas, utilizando una copia de seguridad incompleta, todos los servidores Data Links activados durante la restauración Restauración Ninguna acción Todas las tablas deNecesario de una base de espacios de tabla datos y con enlaces a un recuperación servidor Data Links de avance donde la copia de hasta el final seguridad es de las desconocida se anotaciones ponen en estado cronológicas, Datalink_Reconcile utilizando una _Pending copia de seguridad completa o incompleta, todos los servidores Data Links activados, copia de seguridad desconocida en cualquier servidor Data Links Restauración Ninguna acción Ninguna acción Opcional de un espacio de tabla y recuperación de avance hasta el final de las anotaciones cronológicas, utilizando una copia de seguridad completa, todos los servidores Data Links activados Restauración Ninguna acción Ninguna acción Opcional de espacio de tabla y recuperación de avance hasta el final de las anotaciones cronológicas, utilizando una copia de seguridad completa, como mínimo un servidor Data Links desactivado durante el proceso de recuperación de avance Restauración Ninguna acción Todas las tablas deNecesario para de espacio de espacios de tabla tablas de espacios tabla y con enlaces a de tabla con recuperación cualquier servidor enlaces con de avance Data Links que estécualquier servidor hasta el final desactivado se Data Links que está de las ponen en estado desactivado anotaciones Datalink_Reconcile cronológicas, _Pending utilizando una copia de seguridad completa o incompleta, cualquier servidor Data Links desactivado durante el proceso de restauración Restauración Ninguna acción Ninguna acción Opcional de un espacio de tabla y recuperación de avance hasta el final de las anotaciones cronológicas, utilizando una copia de seguridad incompleta, todos los servidores Data Links activados Restauración Ninguna acción Las tablas se ponenNecesario de base de en estado datos y Datalink_Reconcile recuperación _Pending de avance hasta un punto en el tiempo, utilizando una copia de seguridad completa o incompleta, los servidores Data Links activados o desactivados durante la restauración y/o proceso de recuperación de avance Restauración Ninguna acción Las tablas se ponenNecesario espacio de en estado tabla y Datalink_Reconcile recuperación _Pending de avance hasta un punto en el tiempo, utilizando una copia de seguridad completa o incompleta, los servidores Data Links activados o desactivados durante la restauración y/o proceso de recuperación de avance Restauración Las tablas se ponen N/D Opcional, pero las de una base de en estado tablas en estado datos en otro Datalink_Reconcile Datalink_Reconcile nombre, alias, _Not_Possible _Not_Possible deben nombre de arreglarse sistema manualmente. principal o instancia de base de datos sin recuperación de avance (NOTA1) Restauración Ninguna acción Las tablas se ponenOpcional, pero las de una base de en estado tablas en estado datos en otro Datalink_Reconcile Datalink_Reconcile nombre, alias, _Not_Possible _Not_Possible deben nombre de arreglarse sistema manualmente. principal o instancia de base de datos y recuperación de avance Restauración Las tablas se ponen Ninguna acción Necesario de base de en estado datos a partir Datalink_Reconcile de una copia _Pending de seguridad inutilizable (se ha recogido la imagen como desecho en el servidor Data Links) sin recuperación de avance (NOTA1), con o sin opción WITHOUT DATALINK Restauración Ninguna acción Las tablas se ponenNecesario de base de en estado datos a partir Datalink_Reconcile de una copia _Pending de seguridad inutilizable (se ha recogido la imagen como desecho en el servidor Data Links) y recuperación de avance, con o sin opción WITHOUT DATALINK Restauración Ninguna acción Las tablas se ponenNecesario de espacio de en estado tabla a partir Datalink_Reconcile de una copia _Pending de seguridad inutilizable (se ha recogido la imagen como desecho en el servidor Data Links) y recuperación de avance Notas: 1. Una restauración utilizando una copia de seguridad fuera de línea y la opción WITHOUT ROLLING FORWARD (logretain está activado), o una restauración utilizando una copia de seguridad fuera de línea (logretain está desactivado). 2. Una copia de seguridad completa es la que se ha realizado cuando todos los servidores Data Links necesarios se estaban ejecutando. Una copia de seguridad incompleta es la que se ha realizado cuando al menos un servidor Data Links necesario no se estaba ejecutando. 3. El proceso de reconciliación rápida no se realizará si la imagen de copia de seguridad que se ha utilizado para la operación de restauración de la base de datos se ha llevado a cabo después de una restauración de base de datos, con o sin recuperación de avance. En este caso, todas las tablas con columnas DATALINK se ponen en estado Datalink_Reconcile_Pending. 7.6.14 Detección de situaciones que requieren reconciliación A continuación se encuentran algunas situaciones en las que puede ser necesario ejecutar el programa de utilidad de reconciliación: * Toda la base de datos se restaura y se recupera en avance hasta un punto en el tiempo. Puesto que se realiza la recuperación de avance de toda la base de datos hasta una transacción confirmada, ninguna tabla estará en estado pendiente de comprobación (debido a las restricciones referenciales o de comprobación). Todos los datos de la base de datos se ponen en un estado coherente. Las columnas DATALINK, sin embargo, pueden no estar sincronizadas con los metadatos de DB2 Data Links Manager, por lo que es necesaria la reconciliación. En esta situación, las tablas con datos DATALINK ya estarán en estado DRP. Deberá invocar el programa de utilidad de reconciliación para cada una de estas tablas. * Un servidor Data Links específico que ejecute DB2 Data Links Manager pierde el rastro de sus metadatos. Esto puede suceder por distintos motivos. Por ejemplo: o El servidor Data Links se ha iniciado en frío. o Los metadatos del servidor Data Links se han restaurado a un estado de nivel inferior. En algunas situaciones, por ejemplo durante SQL UPDATE y DELETE, DB2 puede ser capaz de detectar un problema con los metadatos de un servidor Data Links. En estas situaciones, la sentencia de SQL sería anómala. Puede poner la tabla en estado DRP utilizando la sentencia SET CONSTRAINTS y luego ejecutar el programa de utilidad de reconciliación en dicha tabla. * Un sistema de archivos no está disponible (por ejemplo, debido a una detención anormal del disco) y no se restaura al estado actual. En esta situación, puede que falten archivos. * Se descarta un DB2 Data Links Manager de una base de datos y hay valores DATALINK FILE LINK CONTROL que hacen referencia a dicho DB2 Data Links Manager. Deberá ejecutar el programa de utilidad de reconciliación en dichas tablas. ------------------------------------------------------------------------ 7.7 Apéndice C. Salida de usuario para recuperación de base de datos Bajo la sección "Consideraciones sobre el archivado y recuperación", el párrafo siguiente ya no es cierto y debe eliminarse de la lista: Una salida de usuario puede interrumpirse si un cliente remoto pierde la conexión con el servidor DB2. Es decir, mientras maneja el archivado de anotaciones cronológicas mediante una salida de usuario, uno de los otros clientes conectados con SNA muere o se apaga como resultado de una señal (SIGUSR1) que se envía al servidor. El servidor pasa la señal a la salida de usuario provocando una interrupción. El programa de salida de usuario se puede modificar para comprobar si existe una interrupción y, después, continuar. La sección Manejo de errores contiene una lista de Notas en la que debe sustituirse el contenido de la Nota 3 por la información siguiente: * Las peticiones del programa de salida de usuario se han suspendido durante cinco minutos. Durante este tiempo, se ignoran todas las peticiones incluyendo la petición de archivo de anotación cronológica que ha causado el código de retorno. Después de la suspensión durante cinco minutos del proceso de las peticiones, se procesa la siguiente petición. Si no se produce ningún error en el proceso de esta petición, continúa el proceso de las nuevas peticiones del programa de salida de usuario y DB2 volverá a emitir la petición de archivado para los archivos de anotación cronológica que no se hayan archivado correctamente antes o que se hayan suspendido. Si se genera un código de retorno mayor que 8 durante el reintento, las peticiones se suspenden durante cinco minutos adicionales. Las suspensiones de cinco minutos continúan hasta que se corrige el problema o hasta que se detiene la base de datos y se vuelve a reiniciar. Una vez desconectadas todas las aplicaciones de la base de datos y se vuelva a abrir la base de datos, DB2 emitirá la petición de archivado para cualquier archivo de anotaciones cronológicas que no se haya archivado satisfactoriamente en la utilización anterior de la base de datos. Si el programa de salida de usuario no puede archivar los archivos de anotaciones cronológicas, el disco puede llenarse de archivos de anotaciones cronológicas y el rendimiento puede disminuir debido al trabajo adicional para formatear estos archivos de anotaciones cronológicas. Cuando el disco quede lleno, el gestor de bases de datos no aceptará más peticiones de aplicación para cambios en la base de datos. Si se ha llamado al programa de salida de usuario para recuperar archivos de anotaciones cronológicas, la recuperación de avance queda suspendida pero no se detiene a menos que se especifique una parada en el programa de utilidad ROLLFORWARD DATABASE. Si no se ha especificado una parada, puede corregir el problema y reanudar la recuperación. ------------------------------------------------------------------------ 7.8 Apéndice D. Emisión de mandatos a varios servidores de particiones de bases de datos Al final de la sección "Especificación del mandato a ejecutar", añada lo siguiente: Cuando ejecute cualquier script de shell korn que contenga lógica a leer de stdin en el programa de fondo, debe redirigir de forma explícita stdin a un origen en el que el proceso pueda leer sin detenerse en el terminal (mensajes SIGTTIN). Para redirigir stdin, puede ejecutar un script con el siguiente formato: script_shell 8,5 AND C <= 10. La estimación del valor r_2 utilizando interpolación lineal debe cambiarse por la siguiente: 10 - 8,5 r_2 *= ---------- x (número de filas con el valor > 8,5 y <= 100,0) 100 - 8,5 10 - 8,5 r_2 *= ---------- x (10 - 7) 100 - 8,5 1,5 r_2 *= ---- x (3) 91,5 r_2 *= 0 El párrafo que sigue a este ejemplo nuevo también debe modificarse y quedar del modo siguiente: La estimación final es r_1 + r_2 *= 7, y el error es únicamente del -12,5%. 8.3.2 Normas para la actualización de estadísticas de catálogo Dentro de la sección titulada "Normas para actualizar estadísticas de columna", el último elemento de la lista de puntos del primer elemento de la lista debe sustituirse por lo siguiente: HIGH2KEY debe ser mayor que LOWKEY siempre que haya más de 3 valores diferenciados en la columna correspondiente. En el caso de que haya 3 o menos valores distintos en la columna, HIGH2KEY puede ser igual a LOW2KEY. 8.3.3 Estadísticas de los subelementos En FixPak 1, se proporciona una opción para recopilar y utilizar estadísticas de los subelementos. Se trata de estadísticas sobre el contenido de los datos de las columnas cuando los datos tienen una estructura en forma de una serie de subcampos o subelementos delimitados por espacios en blanco. Por ejemplo, imagine que una base de datos contiene una tabla DOCUMENTOS en la que cada fila describe un documento e imagine que en DOCUMENTOS hay una columna llamada PALABRAS CLAVE que contiene una lista de las palabras clave relevantes relacionadas con este documento con el propósito de recuperar el texto. Los valores de PALABRAS CLAVE podrían ser los siguientes: 'base_de_datos simulación analítica negocios inteligencia' 'simulación modelo mosca_de_la_fruta reproducción temperatura' 'forestación picea suelo erosión precipitaciones' 'bosque temperatura suelo precipitación incendios' En este ejemplo, el valor de cada columna está formado por 5 subelementos, cada uno de los cuales es una palabra (la palabra clave), separada de las otras por un espacio en blanco. Para consultas que especifiquen predicados LIKE en estas columnas utilizando el carácter % coincidir_todo: SELECT .... FROM DOCUMENTS WHERE KEYWORDS LIKE '%simulación%' es a menudo beneficioso que el optimizador conozca estadísticas básicas sobre la estructura de subelementos de la columna, como por ejemplo: SUB_COUNT El número medio de subelementos. SUB_DELIM_LENGTH La longitud media de los delimitadores que separan cada subelemento. En este contexto, un delimitador es uno o más caracteres en blanco consecutivos. En el ejemplo de la columna PALABRAS_CLAVE, SUB_COUNT es 5 y SUB_DELIM_LENGTH es 1, porque cada delimitador es un solo carácter en blanco. En FixPak 1, el administrador del sistema controla la recopilación y la utilización de estas estadísticas mediante una extensión a la variable del registro DB2_LIKE_VARCHAR. La variable de registro afecta al modo en que el optimizador de DB2 UDB trata a un predicado del tipo: COLUMN LIKE '%xxxxxx' donde xxxxxx es cualquier serie de caracteres; es decir, cualquier predicado LIKE cuyo valor de búsqueda empiece por un carácter %. (Puede que terminen con un carácter % o que no lo hagan). A éstos nos referimos como "predicados LIKE comodín". Para todos los predicados, el optimizador tiene que estimar cuántas filas coinciden con el predicado. Para predicados LIKE comodín, el optimizador asume que la COLUMNA donde se buscan coincidencias tiene la estructura de una serie de elementos concatenados juntos para formar la totalidad de la columna, y estima la longitud de cada elemento en base a la longitud de la serie, excluyendo los caracteres inciales y de cola %. La nueva sintaxis es: db2set DB2_LIKE_VARCHAR=[Y|N|S|num1][,Y|N|num2] donde - el primer término (anterior a la coma) significa lo siguiente, pero sólo para las columnas que no tienen estadísticas de subelementos positivas S Uso del algoritmo tal como se usa en DB2 versión 2. N Uso de un algoritmo de subelementos de longitud fija. Y (valor omisión) Uso de un algoritmo de subelementos de longitud variable con un valor por omisión para el parámetro del algoritmo. num1 Uso de un algoritmo de subelementos de longitud variable y utilización de num1 como el parámetro del algoritmo. - el segundo término (posterior a la coma) significa: N (valor omisión) No se recogen ni se utilizan las estadísticas de los subelementos. Y Recogida de las estadísticas de los subelementos. Uso de un algoritmo de subelementos de longitud variable que utiliza estas estadísticas, junto con un valor por omisión para el parámetro del algoritmo en el caso de columnas con estadísticas de subelementos positivas. num2 Recogida de las estadísticas de subelementos. Uso de un algoritmo de subelementos de longitud variable que utiliza estas estadísticas, junto con num2 como el parámetro del algoritmo en el caso de columnas con estadísticas de subelementos positivas. Si el valor de DB2_LIKE_VARCHAR sólo contiene el primer término, no se recoge ninguna estadística de los subelementos y no se tienen en cuenta las que se haya recogido anteriormente. El valor especificado afecta a cómo el optimizador calcula la selectividad de predicados LIKE comodín de la misma forma que antes; es decir: * Si el valor es S, el optimizador utiliza el mismo algoritmo que se utilizaba en DB2 versión 2, que no presupone el modelo de subelementos. * Si el valor es N, el optimizador utiliza un algoritmo que presupone el modelo de subelementos y asume que la COLUMNA es de longitud fija, aunque esté definida como de longitud variable. * Si el valor es Y (el valor por omisión) o una constante de coma flotante, el optimizador utiliza un algoritmo que presupone el modelo de subelementos y reconoce que la COLUMNA es de longitud fija si así está definida. También infiere estadísticas de los subelementos de la propia consulta, en lugar de hacerlo a partir de los datos. Este algoritmo requiere un parámetro (el "parámetro del algoritmo") que especifica en cuánto excede el elemento a la serie incluida entre los caracteres %. * Si el valor es Y, el optimizador utiliza el valor por omisión de 1.9 para el parámetro del algoritmo. * Si el valor es una constante de coma flotante, el optimizador utiliza el valor especificado para el parámetro del algoritmo. Esta constante debe situarse entre 0 y 6.2. Si el valor de DB2_LIKE_VARCHAR contiene dos términos y el segundo es Y o una constante de coma flotante, las estadísticas de los subelementos de columnas de serie de juego de caracteres de un solo byte del tipo CHAR, VARCHAR, GRAPHIC o VARGRAPHIC se recopilan durante una operación RUNSTATS y se utilizan durante la compilación de consultas que utilizan predicados LIKE comodín. El optimizador utiliza un algoritmo que presupone el modelo de subelementos y utiliza las estadísticas SUB_COUNT y SUB_DELIM_LENGTH, además de un parámetro del algoritmo, para calcular la selectividad del predicado. El parámetro del algoritmo se especifica de la misma forma que el algoritmo inferencial, es decir: * Si el valor es Y, el optimizador utiliza el valor por omisión de 1.9 para el parámetro del algoritmo. * Si el valor es una constante de coma flotante, el optimizador utiliza el valor especificado para el parámetro del algoritmo. Esta constante debe situarse entre 0 y 6.2. Si, durante la compilación, el optimizador descubre que las estadísticas de los subelementos no se han recogido en la columna implicada en la consulta, se utilizará el algoritmo "inferencial" de los subelementos; es decir, el que se utiliza cuando sólo se especifica el primer término de DB2_LIKE_VARCHAR. Por lo tanto, para que el optimizador pueda utilizar las estadísticas de los subelementos, debe definirse el segundo término de DB2_LIKE_VARCHAR tanto durante RUNSTATS como durante la compilación. Los valores de las estadísticas de los subelementos pueden visualizarse consultando SYSIBM.SYSCOLUMNS. Por ejemplo: select substr(NAME,1,16), SUB_COUNT, SUB_DELIM_LENGTH from sysibm.syscolumns where tbname = 'DOCUMENTOS' Las columnas SUB_COUNT y SUB_DELIM_LENGTH no están presentes en la visualización de las estadísticas SYSSTAT.COLUMNS y por lo tanto no pueden actualizarse. Nota: Es posible que RUNSTATS tarde más si se utiliza esta opción. Por ejemplo, RUNSTATS puede tardar entre un 15 y un 40% más en una tabla con cinco columnas de caracteres si no se utilizan las opciones DETAILED y DISTRIBUTION. Si se especifica la opción DETAILED o DISTRIBUTION, el porcentaje de actividad general es menor aunque la cantidad absoluta de actividad sea la misma. Si está pensando en utilizar esta opción, debería asesorarse sobre las mejoras en el rendimiento de consultas de la actividad general. ------------------------------------------------------------------------ 8.4 Capítulo 6. Comprensión del compilador SQL Se requieren cambios en las secciones siguientes: 8.4.1 Tablas de resumen duplicadas La información siguiente se añadirá a la información que ya existe en esta sección o la sustituirá: Se pueden utilizar tablas de resumen duplicadas para ayudarle en la colocación de uniones. Por ejemplo, si tenía un esquema en estrella en el que existe una tabla de hechos grande dividida entre veinte nodos, las uniones entre la tabla de hechos y las tablas de dimensiones son más eficaces si se colocan estas tablas. Situando todas las tablas en el mismo grupo de nodos, como máximo habría una tabla de dimensiones particionada correctamente para una unión colocada. Las demás tablas de dimensiones no se podrían utilizar en una unión colocada porque la(s) columna(s) de unión de la tabla de hechos no correspondería con la clave de particionamiento de la tabla de hechos. Por ejemplo, podría tener una tabla llamada FACT (C1, C2, C3, ...) particionada en C1; y una tabla llamada DIM1 (C1, dim1a, dim1b, ...) particionada en C1; y una tabla llamada DIM2 (C2, dim2a, dim2b, ...) particionada en C2; etc. En este ejemplo, puede ver que la unión entre FACT y DIM1 es perfecta porque se puede colocar el predicado DIM1.C1 = FACT.C1. Ambas tablas están particionadas en la columna C1. La unión entre DIM2 con el predicado WHERE DIM2.C2 = FACT.C2 no se puede colocar porque FACT está particionada en la columna C1 y no en la columna C2. En este caso, sería aconsejable duplicar DIM2 en el grupo de nodos de la tabla de hechos. De este modo se puede llevar a cabo la unión localmente en cada partición. Nota: La discusión de las tablas de resumen duplicadas está relacionada con la duplicación dentro de la base de datos. La duplicación dentro de la base de datos está relacionada con suscripciones, tablas de control y datos ubicados en distintas bases de datos y en distintos sistemas operativos. Si está interesado en el tema de la duplicación dentro de la base de datos, consulte el manual Replication Guide and Reference para obtener más información. Cuando cree una tabla de resumen duplicada, la tabla fuente puede ser una tabla de grupo de nodos de un solo nodo o una tabla de grupo de nodos de múltiples nodos. En la mayoría de casos, la tabla es pequeña y se puede situar en un grupo de nodos de un solo nodo. Puede establecer un límite para los datos que se duplican especificando tan solo un subconjunto de las columnas de la tabla o limitando el número de filas a través de los predicados que se utilizan o utilizando ambos métodos para crear la tabla de resumen duplicada. Nota: La opción de captura de datos no es necesaria para que las tablas de resumen duplicadas funcionen. La tabla de resumen duplicada también se puede crear en un grupo de nodos de múltiples nodos. El grupo de nodos es el mismo grupo de nodos en el que ha situado las tablas grandes. En este caso, se crean copias de la tabla fuente en todas las particiones del grupo de nodos. Las uniones entre una tabla de hechos grande y las tablas de dimensiones tienen más posibilidades de llevarse a cabo localmente en este entorno que de tener que difundir la tabla fuente a todas las particiones. Los índices para las tablas duplicadas no se crean automáticamente. Se crean índices y pueden ser diferentes de los que se identifican en la tabla fuente. Nota: No se pueden crear índices exclusivos (ni establecer ninguna limitación) para las tablas duplicadas. Esto evitará violaciones de las limitaciones que no están presentes en las tablas fuente. Estas limitaciones no se permiten incluso si existe la misma limitación para la tabla fuente. Después de utilizar la sentencia REFRESH, debe ejecutar RUNSTATS en la tabla duplicada tal como haría con cualquier otra tabla. Las tablas duplicadas se pueden consultar directamente desde una consulta. Sin embargo, no puede utilizar el predicado NODENUMBER() con una tabla duplicada para ver los datos de la tabla sobre una partición determinada. Para ver si una tabla de resumen duplicada creada se ha utilizado (dada una consulta que hace referencia a la tabla fuente), puede utilizar el recurso EXPLAIN. En primer lugar, debe asegurarse de que las tablas EXPLAIN existen. Después, debe crear un plan de explicación para la sentencia SELECT en la que está interesado. Por último, debe utilizar el programa de utilidad db2exfmt para formatear la salida de EXPLAIN. El plan de acceso elegido por el optimizador puede utilizar, o no, la tabla de resumen duplicada según la información que deba unirse. No se utiliza la tabla de resumen duplicada si el optimizador determina que resulta más barato difundir la tabla fuente original a las demás particiones del grupo de nodos. 8.4.2 Conceptos de acceso a datos y optimización El apartado "Acceso a índices múltiples" del apartado "Conceptos de la exploración de índices" ha cambiado. Añada la información siguiente delante de la nota que se encuentra al final de la sección: Para que se den los beneficios de rendimiento de los mapas de bits dinámicos al explorar índices múltiples, puede que sea necesario cambiar el valor del parámetro de configuración de bases de datos correspondiente al tamaño de almacenamiento dinámico de clasificación (sortheap) y el parámetro de configuración de gestores de bases de datos correspondiente al umbral de almacenamiento dinámico de clasificación (sheapthres). Se requiere espacio de almacenamiento dinámico de clasificación adicional cuando se utilizan mapas de bits dinámicos en los planes de acceso. Si sheapthres se establece en un valor relativamente cercano a sortheap (es decir, menor que un factor de dos o tres veces por consulta simultánea), los mapas de bits dinámicos con acceso a índices múltiples deben funcionar con mucha menos memoria que la anticipada por el optimizador. La solución consiste en incrementar el valor de sheapthres en relación a sortheap. La sección "Estrategias de búsqueda para Star Join" del apartado "Terminología de predicados" ha cambiado. Añada la información siguiente al final de la sección: Los mapas de bits dinámicos creados y utilizados formando parte de la técnica Star Join utilizan memoria de almacenamiento dinámico de clasificación. Vea el capítulo 13, "Configuración de DB2" de la publicación Administration Guide: Performance para obtener más información sobre el parámetro de configuración de bases de datos Tamaño de almacenamiento dinámico de clasificación (sortheap). ------------------------------------------------------------------------ 8.5 Capítulo 8. Rendimiento operativo 8.5.1 Gestión de la agrupación de almacenamiento intermedio de la base de datos Dentro de la sección titulada "Gestión de la agrupación de almacenamiento intermedio de la base de datos", añada la información siguiente después del párrafo que empieza por "Cuando se crea la agrupación de almacenamiento intermedio, el tamaño de página es, por omisión, 4 KB.": Cuando se trabaja con Windows 2000, se da soporte a los tamaños de agrupación de almacenamiento intermedio de hasta 64 GB de tamaño menos el tamaño de DB2 y del sistema operativo. (Suponiendo que DB2 sea el producto primario del sistema.) Este soporte está disponible a través de Microsoft Address Windowing Extensions (AWE). Aunque se pueden utilizar las AWE con agrupaciones de almacenamiento intermedio de cualquier tamaño, si es necesaria la utilización de AWE en agrupaciones de almacenamiento intermedio de gran tamaño, hay otros productos Windows recomendados. Windows 2000 Advanced Server proporciona soporte para un máximo de 8 GB de memoria. Windows 2000 Data Center Server proporciona soporte para un máximo de 64 GB de memoria. DB2 y Windows 2000 deben configurarse correctamente para dar soporte a agrupaciones de almacenamiento intermedio de AWE. La agrupación de almacenamiento intermedio que se beneficiará de la utilización de AWE debe existir en la base de datos. Para tener un espacio de usuario de 3 GB asignado, utilice la opción de arranque de Windows 2000 /3GB. Esto permite la utilización de un mayor tamaño de ventana AWE. Para habilitar el acceso a más de 4 GB de memoria a través de la interfaz de memoria de AWE, utilice la opción de arranque de Windows 2000 /PAE. Para verificar que se tiene la opción de arranque correcta seleccionada, bajo Control, seleccione Sistema y luego seleccione "Arranque y recuperación". Desde la lista desplegable puede ver las opciones de arranque disponibles. Si la opción de arranque (/3GB o /PAE) que desea está seleccionada, está listo para continuar a la siguiente tarea para configurar el soporte de AWE. Si la opción que desea no está disponible para ser seleccionada, debe añadir la opción en el archivo boot.ini de la unidad del sistema. El archivo boot.ini contiene una lista de acciones a realizar cuando se inicia el sistema operativo. Añada /3GB o /PAE, o ambos (separados por espacios en blanco) al final de la lista de parámetros existentes. Cuando haya guardado este archivo cambiado, puede verificar y seleccionar la opción de arranque correcta tal como se describe anteriormente. Windows 2000 también debe modificarse para asociar el derecho de "bloquear páginas en memoria" con el usuario bajo el que se encuentra instalado DB2. Para establecer el derecho "bloquear páginas en memoria", cuando haya iniciado una sesión con Windows 2000 como usuario que ha instalado DB2, bajo el menú Inicio de Windows 2000 seleccione la carpeta "Herramientas administrativas" y luego el programa "Política de seguridad local". Bajo las políticas locales, puede seleccionar la asignación de derechos de usuario para el derecho de "bloquear páginas en memoria". DB2 requiere el establecimiento de la variable de registro DB2_AWE. Para establecer esta variable de registro correctamente, necesitará saber el ID de agrupación de almacenamiento intermedio de la agrupación de almacenamiento intermedio para la que desea permitir el soporte de AWE. También necesita saber el número de páginas físicas y las páginas de ventana de dirección que deberá asignar. El número de páginas físicas a asignar debe ser un valor menor que el número total de páginas físicas disponibles. El número real elegido dependerá del entorno de trabajo. Por ejemplo, si tiene un entorno donde sólo se utilizan aplicaciones de base de datos y DB2 en el sistema, puede optar por tener desde la mitad a un GB menos que el tamaño total de páginas físicas como valor utilizado con la variable DB2_AWE. Si tiene un entorno donde otras aplicaciones que no son de base de datos utilizan el sistema, tendrá que incrementar el valor que reste del total para permitir más páginas físicas para estas otras aplicaciones. El número utilizando en la variable de registro DB2_AWE es el número de páginas físicas que se utilizarán en soporte de AWE y para que DB2 utilice. El límite superior de las páginas de ventana de dirección es 1,5 GB, o 2,5 GB cuando está en vigor la opción de arranque de Windows 2000 /3GB. Si desea obtener más información sobre el establecimiento de la variable de registro de DB2 DB2_AWE, consulte la tabla de variables de registro nuevas y modificadas en el "Apéndice A. Variables de entorno y de registro de DB2" que se encuentra más adelante en esta sección. 8.5.2 Gestión de varias agrupaciones de almacenamiento intermedio de base de datos Dentro de la sección titulada "Gestión de varias agrupaciones de almacenamiento intermedio de base de datos", añada el párrafo siguiente después del párrafo que empieza por "Cuando trabaje con el diseño de la base de datos, puede que haya determinado que son preferibles las tablas con tamaños de página de 8 KB.": Al trabajar con Windows 2000, puede utilizarse la variable de registro DB2_AWE para alterar temporalmente los valores de tamaño de agrupación de almacenamiento intermedio de los archivos de configuración y el catálogo. La utilización de esta variable de registro permite tamaños de agrupación de almacenamiento intermedio de un máximo de aproximadamente 64 GB. Dentro de la misma sección, sustituya el párrafo que se encuentra justo bajo la nota por lo siguiente: La razón para permitir al gestor de bases de datos empezar con valores de tamaño mínimos es permitirle conectar con la base de datos. Entonces podrá volver a configurar los tamaños de agrupación de almacenamiento intermedio o realizar otras tareas críticas, con la finalidad de reiniciar la base de datos con los tamaños de agrupación de almacenamiento intermedio correctos. No piense en hacer funcionar la base de datos durante un periodo de tiempo prolongado en este estado. Dentro de la sección titulada "Reorganización de catálogos y tablas de usuario", la última frase (con una lista corta) del párrafo que empieza por "El programa de utilidad REORG le permite especificar un espacio de tabla temporal..." puede sustituirse por: La utilización del mismo espacio de tabla para reorganizar tablas es más rápida pero se produce una mayor anotación cronológica y debe haber el espacio suficiente para la tabla reorganizada. Si se especifica un espacio de tabla temporal, se recomienda generalmente la especificación de un espacio de tabla temporal SMS. No se recomienda un espacio de tabla temporal DMS, puesto que sólo se puede tener un REORG en proceso utilizando este tipo de espacio de tabla. Dentro de la sección titulada "Ampliación de la memoria", añada el párrafo siguiente después del tercer párrafo de esta sección: Cuando asigne agrupaciones de almacenamiento intermedio de AWE (Address Windowing Extensions) de Windows 2000 utilizando la variable de registro DB2_AWE, no se puede utilizar la antememoria de almacenamiento ampliada. ------------------------------------------------------------------------ 8.6 Capítulo 9. Utilización del gobierno Dentro de la sección titulada "Creación del archivo de configuración de gobierno", la primera frase del primer párrafo que sigue a la descripción de la acción de planificación debe sustituirse por: Si se aplica más de una norma a una aplicación, se aplican todas las normas. Dependiendo de la norma y de los límites que se establezcan, la acción asociada con el límite de la norma que se encuentra primero es la acción que se aplicará primero. ------------------------------------------------------------------------ 8.7 Capítulo 13. Configuración de DB2 Se requieren cambios en los parámetros siguientes: 8.7.1 Tamaño de almacenamiento dinámico de clasificación (sortheap) La sección "Recomendación" ha cambiado. La información aquí contenida debe decir: Cuando trabaje con el almacenamiento dinámico de clasificación, debe tener en cuenta lo siguiente: * El uso de índices apropiados puede minimizar la utilización del almacenamiento dinámico de clasificación. * Los almacenamientos intermedios de unión hash y los mapas de bits dinámicos (utilizados para añadir (AND) índices y Star Joins) utilizan memoria de almacenamiento dinámico de clasificación. Aumente el tamaño de este parámetro cuando se utilicen dichas técnicas. * Aumente el tamaño de este parámetro cuando se requieran clasificaciones grandes con frecuencia. * ... (el resto de los elementos no ha cambiado) 8.7.2 Umbral de pila de clasificación (sheapthres) El penúltimo párrafo de la descripción de este parámetro ha cambiado. Ahora, dicho párrafo debe decir: Los ejemplos de operaciones que utilizan el almacenamiento dinámico de clasificación incluyen: clasificaciones, mapas de bits dinámicos (utilizados para añadir (AND) índices y Star Joins) y operaciones en las que la tabla está en la memoria. Debe añadirse la información siguiente a la descripción de este parámetro: No existe ningún motivo para aumentar el valor de este parámetro cuando se pasa de un entorno de un solo nodo a un entorno de múltiples nodos. Una vez ajustados los parámetros de configuración de la base de datos y del gestor de bases de datos en un entorno de un solo nodo (en un DB2 EE), en la mayoría de los casos los mismos valores funcionarán bien en un entorno de múltiples nodos (en un DB2 EEE). El parámetro Umbral de pila de clasificación, como parámetro de configuración del gestor de bases de datos, se aplica en toda la instancia de DB2. La única manera de establecer este parámetro en distintos valores en distintos nodos o particiones, consiste en crear más de una instancia de DB2. Para ello será necesario gestionar distintas bases de datos DB2 de diferentes grupos de nodos. Este método anula la finalidad de muchas de las ventajas de un entorno de base de datos particionada. 8.7.3 Porcentaje máximo de la lista de bloqueos antes del descenso escalonado de bloqueos (maxlocks) El cambio siguiente pertenece al apartado Recomendación del parámetro de configuración de base de datos "Porcentaje máximo de la lista de bloqueos antes del descenso escalonado de bloqueos (maxlocks)". Recomendación: La fórmula siguiente le permite establecer maxlocks para permitir que una aplicación retenga dos veces el número promedio de bloqueos: maxlocks = 2 * 100 / maxappls Donde 2 se utiliza para lograr dos veces el promedio y 100 representa el valor de porcentaje más grande que se permite. Si sólo dispone de unas pocas aplicaciones que se ejecuten de modo simultáneo, puede utilizar la fórmula siguiente como alternativa a la primera fórmula: maxlocks = 2 * 100 / (número promedio de aplicaciones que se ejecutan simultáneamente) Una de las consideraciones al definir maxlocks es utilizarlo conjuntamente con el tamaño de la lista de bloqueos (locklist). El límite real del número de bloqueos que posee una aplicación antes de que se produzca un descenso escalonado de bloqueos es: maxlocks * locklist * 4096 / (100 * 36) Donde 4096 es el número de bytes de una página, 100 es el valor de porcentaje más grande que se admite para maxlocks y 36 es el número de bytes por bloqueo. Si sabe que una de sus aplicaciones requiere 1000 bloqueos y no desea que se produzca un descenso escalonado de bloqueos, debería escoger valores para maxlocks y locklist en esta fórmula de modo que el resultado sea mayor que 1000. (Utilizando 10 para maxlocks y 100 para locklist, esta fórmula da como resultado un número superior a los 1000 bloqueos necesarios.) Si maxlocks se establece en un valor demasiado bajo, se produce un descenso escalonado de bloqueos mientras siga habiendo suficiente espacio de bloqueo para otras aplicaciones simultáneas. Si maxlocks se establece en un valor demasiado alto, unas pocas aplicaciones pueden consumir la mayoría del espacio de bloqueo y otras aplicaciones tendrán que efectuar el descenso escalonado de bloqueos. En este caso, la necesidad de descenso escalonado de bloqueos dará como resultado una simultaneidad muy escasa. Puede utilizar el supervisor del sistema de bases de datos para ayudarle a ajustar y hacer el seguimiento de este parámetro de configuración. 8.7.4 Configuración de DB2/DB2 Data Links Manager/Data Links Access Token Expiry Interval (dl_expint) En contra de lo que dice la documentación, si dl_expint se define en "-1", caduca la señal de control de acceso. La solución temporal a esto es la de establecer dl_expint en su valor máximo, 31536000 (segundos). Este valor se corresponde con un tiempo de caducidad de un año, el cual debería ser adecuado para todas las aplicaciones. 8.7.5 Parámetro de configuración de la base de datos MIN_DEC_DIV_3 La incorporación del parámetro de configuración de la base de datos MIN_DEC_DIV_3 se proporciona como un modo rápido de habilitar un cambio en el cálculo de la escala para la división decimal en SQL. MIN_DEC_DIV_3 puede establecerse en YES (Sí) o NO. El valor por omisión para MIN_DEC_DIV_3 es NO. El parámetro de configuración de la base de datos MIN_DEC_DIV_3 cambia la escala resultante de una operación aritmética decimal que implique efectuar una división. Si el valor es NO, la escala se calcula como 31-p+s-s'. Consulte el manual Consulta de SQL, Capítulo 3, "Aritmética decimal en SQL" para obtener más información. Si se establece en YES (Sí), la escala se calcula como MAX(3, 31-p+s-s'). Lo cual hace que el resultado de una división decimal siempre tenga una escala de 3 como mínimo. La precisión es siempre 31. Cambiar este parámetro de configuración de la base de datos puede ocasionar cambios en las aplicaciones para bases de datos existentes. Esto puede suceder cuando el cambio de este parámetro de configuración de la base de datos tenga influencia en la escala resultante para la división decimal. A continuación se muestran algunos escenarios posibles que pueden tener influencia en las aplicaciones. Dichos escenarios deberían tenerse en cuenta antes de cambiar el MIN_DEC_DIV_3 en un servidor de bases de datos con bases de datos existentes. * Si se cambia la escala resultante de una de las columnas de vista, es posible que una vista definida en un entorno con un valor resulte anómala con SQLCODE -344 cuando se haga referencia a la misma una vez se cambie el parámetro de configuración de la base de datos. El mensaje SQL0344N hace referencia a expresiones de tablas comunes repetitivas, sin embargo, si el nombre de objeto (primera señal) es una vista, tendrá que desactivar la vista y crearla de nuevo para evitar este error. * Un paquete estático no cambiará de comportamiento hasta que vuelva a vincularse el paquete, implícita o explícitamente. Por ejemplo, después de cambiar el valor de NO a YES (Sí), los dígitos de escala adicionales no pueden incluirse en el resultado hasta que se vuelva a ejecutar bind. Para los paquetes estáticos modificados, un mandato explícito de volver a ejecutar bind pueden utilizarse para forzar una acción de volver a ejecutar bind. * Una restricción de comprobación que implique la división decimal puede restringir algunos valores que habían sido previamente aceptados. Tales filas violan ahora la restricción pero no se detectarán hasta que se actualice una de las columnas implicadas en la fila de restricción de comprobación o hasta que se procese el mandato SET INTEGRITY con la opción IMMEDIATE CHECKED. Para imponer la comprobación de dicha restricción, efectúe un mandato ALTER TABLE para desactivar la restricción de comprobación y, después efectúe un mandato ALTER TABLE para añadir de nuevo la restricción. Nota: DB2 Versión 7 tiene asimismo las limitaciones siguientes: 1. El mandato GET DB CFG FOR DBNAME no visualizará el valor MIN_DEC_DIV_3. El mejor modo de determinar el valor actual es el de observar el efecto colateral del resultado de una división decimal. Por ejemplo, considere la sentencia siguiente: VALUES (DEC(1,31,0)/DEC(1,31,5)) Si esta sentencia devuelve sqlcode SQL0419N, la base de datos no tiene soporte de MIN_DEC_DIV_3 o se ha establecido en OFF (desactivada). Si la sentencia devuelve 1.000, MIN_DEC_DIV_3 se ha establecido en ON (activada). 2. MIN_DEC_DIV_3 no aparece en la lista de palabras clave de configuración cuando se ejecuta el mandato siguiente: ? UPDATE DB CFG 8.7.6 Tamaño de almacenamiento dinámico de control de aplicaciones (app_ctl_heap_sz) El texto para este parámetro ahora debe decir: Para bases de datos particionadas y bases de datos no particionadas con paralelismo interno habilitado (intra_parallel=ON), es el tamaño del área de memoria compartida asignada para el almacenamiento dinámico de la aplicación. Para bases de datos no particionadas donde el paralelismo interno está inhabilitado (intra_parallel=OFF), es la memoria privada máxima que se asignará para el almacenamiento dinámico. Hay un almacenamiento dinámico de control de aplicaciones por conexión y por partición. El almacenamiento dinámico de control de aplicaciones es necesario principalmente para compartir información entre agentes que trabajan para una misma petición y, en un entorno de base de datos particionada, para almacenar partes ejecutables que representan sentencias de SQL. El uso de este almacenamiento dinámico es mínimo para bases de datos no particionadas donde se ejecutan consultas con un grado de paralelismo menor o igual a 1. Este almacenamiento dinámico también se utiliza para almacenar información de descriptor para tablas temporales declaradas. La información de descriptor para todas las tablas temporales declaradas que no se han descartado explícitamente se mantiene en la memoria de este almacenamiento dinámico y no se puede descartar hasta que se descarta la tabla temporal declarada. La parte "Recomendación" permanece sin cambios. 8.7.7 Tamaño del almacenamiento dinámico del supervisor del sistema de bases de datos (mon_heap_sz) El valor por omisión para el servidor de bases de datos OS/2 y Windows NT con clientes locales y remotos y el servidor de bases de datos satélite con clientes locales ha cambiado de 24 a 32. El rango permanece sin cambios. 8.7.8 Número máximo de aplicaciones activas (maxappls) El límite superior del rango para todas las plataformas ha cambiado de 64 000 a 60 000. El valor por omisión permanece sin cambios. 8.7.9 Rango de recuperación e intervalo de punto de control variable (softmax) La unidad de medida se cambia al porcentaje del tamaño de un archivo de anotación cronológica primario. 8.7.10 Habilitación del seguimiento de páginas modificadas (trackmod) Tipo de configuración: Base de datos Tipo de parámetro: Configurable Valor por omisión [Rango]: Desactivado [ Activado; Desactivado ] Cuando este parámetro se establece en ON (activado), el gestor de bases de datos realizará el seguimiento de las páginas de la base de datos que han cambiado desde que se ha llevado a cabo la copia de seguridad completa más reciente. Esto permite al programa de utilidad de copia de seguridad determinar las páginas que se deben incluir en una copia de seguridad incremental sin tener que examinar cada página individualmente. Para espacios de tabla SMS, la granularidad de este seguimiento es al nivel de espacio de tabla. Para espacios de tabla DMS, la granularidad es al nivel del alcance para páginas de índice y datos y al nivel de espacio de tabla para otros tipos de página. Después de establecer este parámetro en ON, debe realizar una copia de base de datos completa para tener una línea base contra la que se puedan realizar copias de seguridad incrementales. 8.7.11 Cambio de la vía de acceso de anotación cronológica de la base de datos (newlogpath) Tipo de configuración: Base de datos Tipo de parámetro: Configurable Valor por omisión [Rango]: Nulo [ cualquier vía de acceso o dispositivo válidos] Parámetros relacionados: Ubicación de archivos de anotación cronológica (logpath); Base de datos coherente (database_consistent) Este parámetro permite especificar una serie de hasta 242 bytes para cambiar la ubicación donde se almacenan los archivos de registro cronológico. La serie puede señalar hacia un nombre de vía de acceso o a un dispositivo bruto. Si la serie señala hacia un nombre de vía de acceso, debe ser un nombre de vía de acceso totalmente especificado, no un nombre de vía de acceso relativo. Nota: En un entorno de base de datos particionada, el número de nodo se añade automáticamente a la vía de acceso. Esto se realiza para mantener la exclusividad de la vía de acceso en configuraciones de varios nodos lógicos. >Para especificar un dispositivo, especifique una serie que el sistema operativo identifique como dispositivo. Por ejemplo, en Windows NT, \\.\d: o \\.\PhysicalDisk5 Nota: Debe tener Windows NT Versión 4.0 con el Service Pack 3 instalado para poder grabar anotaciones cronológicas en un dispositivo. En plataformas basadas en UNIX, /dev/rdblog8 Nota: Sólo se puede especificar un dispositivo en plataformas AIX, Windows 2000, Windows NT, Solaris, HP-UX, NUMA-Q y Linux. El nuevo valor no se convierte en el valor de logpath hasta que se producen ambos sucesos siguientes: * La base de datos está en estado coherente, tal como indica el parámetro database_consistent. * Todos los usuarios están desconectados de la base de datos. Cuando se realiza la primera conexión nueva con la base de datos, el gestor de bases de datos trasladará las anotaciones cronológicas a la nueva ubicación especificada por logpath. Podría haber archivos de anotación cronológica en la vía de acceso de anotación cronológica antigua. Estos archivos de anotación cronológica pueden no haberse archivado. Es posible que deba archivar estos archivos de anotación cronológica manualmente. Además, si está ejecutando la duplicación en esta base de datos, puede que la duplicación todavía necesite los archivos de anotación cronológica de antes del cambio de vía de acceso de anotación cronológica. Si la base de datos está configurada con el parámetro de configuración de base de datos Habilitación de salida de usuario (userexit) establecido en "Yes" y si todos los archivos de anotación cronológica han sido archivados por DB2 automáticamente o por uno mismo manualmente, DB2 podrá recuperar los archivos de anotación cronológica para completar el proceso de duplicación. De lo contrario, puede copiar los archivos desde la vía de acceso antigua a la vía de acceso nueva. Recomendación: en el mejor de los casos, los archivos de anotación cronológica estarán en un disco físico que no tiene una alta E/S. Por ejemplo, evite poner las anotaciones cronológicas en el mismo disco en que se encuentra el sistema operativo o bases de datos de gran volumen. Esto permitirá una actividad de anotación cronológica efectiva con un mínimo de actividad general como, por ejemplo, la espera de E/S. Puede utilizar el supervisor del sistema de bases de datos para realizar un seguimiento del número de E/S relacionadas con la anotación cronológica de la base de datos. Para obtener más información, consulte las siguientes descripciones de elementos del supervisor en la publicación System Monitor Guide and Reference: * log_reads (número de páginas de anotación cronológica leídas) * log_writes (número de páginas de anotación cronológica grabadas) Los elementos de datos anteriores devuelven la cantidad de actividad de E/S relacionada con la anotación de base de datos. Se puede utilizar una herramienta de supervisión del sistema operativo para reunir información sobre otra actividad de E/S del disco y luego comparar los dos tipos de actividad de E/S. 8.7.12 Ubicación de los archivos de anotación cronológica (logpath) Tipo de configuración: Base de datos Tipo de parámetro: Informativo Parámetros relacionados: Cambie la vía de acceso de anotación cronológica de base de datos (newlogpath) Este parámetro contiene la vía de acceso actual que se utiliza con finalidades de anotación cronológica. No se puede cambiar este parámetro directamente, ya que es establecido por el gestor de bases de datos después de que un cambio al parámetro newlogpath sea efectivo. Al crearse una base de datos, el archivo de anotación cronológica de recuperación para la misma se crea en un subdirectorio del directorio que contiene la base de datos. El valor por omisión es un subdirectorio llamado SQLOGDIR bajo el directorio creado para la base de datos. 8.7.13 Almacenamiento máximo para la lista de bloqueo (locklist) El valor máximo se aumenta de 60 000 a 524 288. ------------------------------------------------------------------------ 8.8 Apéndice A. Variables de registro y de entorno de DB2 Las variables de registro siguientes son nuevas o deben modificarse: 8.8.1 Tabla de variables de registro nuevas y modificadas Tabla 6. Variables de registro Nombre de variable Sistema Valores operativo Descripción DB2MAXFSCRSEARCH Todos Por omisión=5 Valores: -1, de 1 a 33554 Especifica el número de registros de control de espacio libre en los que buscar cuando se añade un registro a una tabla. El valor por omisión consiste en buscar en cinco registros de control de espacio. La modificación de este valor le permite equilibrar la velocidad de inserción con la reutilización del espacio. Utilice valores grandes para optimizar la reutilización del espacio. Utilice valores pequeños para optimizar la velocidad de inserción. Si se establece el valor en -1 se fuerza al gestor de bases de datos a buscar en todos los registros de control de espacio libre. DLFM_TSM_MGMTCLASS AIX, Windows Valor por omisión: la clase NT, Solaris de gestión TSM por omisión Valores: cualquier clase de gestión TSM válida Especifica qué clase de gestión TSM debe utilizarse para archivar y recuperar archivos enlazados. Si no hay establecido ningún valor para esta variable, se utiliza la clase de gestión TSM por omisión. DB2_CORRELATED_PREDICATES Todos Valor por omisión=YES Valores: YES o NO El valor por omisión para esta variable es YES. Cuando existen índices exclusivos en columnas correlacionadas en una unión y esta variable de registro es YES, el optimizador intenta detectar y compensar la correlación de predicados de unión. Cuando esta variable de registro está establecida en YES, el optimizador utiliza la información de KEYCARD de las estadísticas de índice exclusivo para detectar los casos de correlación y ajusta dinámicamente las selectividades combinadas de los predicados correlacionados, obteniendo de este modo una estimación más precisa del tamaño y coste de la unión. DB2_VI_DEVICE Windows NT Valor por omisión=null Valores: nic0 o VINIC Especifica el nombre simbólico del dispositivo o Instancia de proveedor de interfaz virtual asociado con la Tarjeta de interfaz de red (NIC). Cada proveedor de hardware independiente (IHV) produce su propia. Sólo se permite una (1) NIC por máquina Windows NT; Múltiples nodos lógicos en la misma máquina física compartirán la misma NIC. El nombre de dispositivo simbólico "VINIC" debe estar en mayúsculas y sólo se puede utilizar con Synfinity Interconnect. Todas las demás implementaciones actualmente soportadas utilizan "nic0" como nombre de dispositivo simbólico. DB2_SELECTIVITY ALL Valor por omisión=NO Valores: YES o NO Esta variable de registro controla el lugar en el que puede utilizarse la cláusula SELECTIVITY. Consulte el manual Consulta de SQL, Elementos de lenguaje, Condiciones de búsqueda para obtener detalles completos sobre la cláusula SELECTIVITY. Cuando esta variable de registro se establezca en YES, la cláusula SELECTIVITY puede especificarse cuando el predicado sea un predicado básico en el que al menos una expresión contenga variables de sistema principal. DB2_UPDATE_PART_KEY ALL Valor por omisión=YES Valores: YES o NO Para el FixPak 3 y posteriores, el valor por omisión es YES. Esta variable de registro especifica si se permite la actualización o no de la clave de particionamiento. DB2_BLOCK_ON_LOG_DISK_FULL ALL Valor por omisión=NO Valores: YES o NO Esta variable de registro de DB2 puede establecerse para impedir la generación de errores de "disco lleno" cuando DB2 no puede crear un nuevo archivo de anotación cronológica en la vía de acceso de anotación cronológica activa. En su lugar, DB2 intenta crear el archivo de anotación cronológica cada 5 minutos hasta que lo consigue. Después de cada intento, DB2 escribe un mensaje en el archivo db2diag.log. El único modo de confirmar que la aplicación se cuelga debido a una condición de disco lleno de registro cronológico es supervisar el archivo db2diag.log. Hasta que no se crea satisfactoriamente el archivo de anotación cronológica, cualquier aplicación de usuario que intente actualizar datos de tabla no podrá confirmar las transacciones. Las consultas de sólo lectura pueden no verse afectadas directamente; sin embargo, si una consulta necesita acceder a datos que están bloqueados por una petición de actualización o una página de datos que está fijada en la agrupación de almacenamiento intermedio por la aplicación de actualización, también parecerá que las consultas de sólo lectura se cuelgan. DB2_INDEX_2BYTEVARLEN Todos Valor por omisión=NO Valores: YES o NO Esta variable de registro permite que columnas con una longitud mayor a 255 bytes se especifiquen como parte de una clave de índice. Los índices ya creados antes de convertir a esta variable de registro en YES continuarán teniendo la restricción de límite clave 255. Los índices creados después de convertir esta variable de registro en YES se comportarán como un índice de dos bytes incluso cuando la variable de registro se cambie de nuevo a NO. Varias sentencias de SQL se ven afectadas por los cambios realizados en esta variable de registro, incluyendo CREATE TABLE, CREATE INDEX y ALTER TABLE. Si desea obtener más información sobre estas sentencias, consulte los cambios que se documentan en el manual Consulta de SQL. DB2_FORCE_FCM_BP AIX Valor por omisión=NO Valores: YES o NO Especifica desde dónde se asignan los recursos del gestor de comunicaciones rápidas (FCM). Los recursos pueden asignarse desde el segmento de memoria compartida del gestor de bases de datos o desde otro independiente. Con varios nodos lógicos en la misma máquina, debe utilizarse esta variable de registro. En un sistema de base de datos particionada con multiproceso simétrico (SMP) habilitado, el establecimiento de esta variable de registro no tiene ningún efecto sobre el modo en que tiene lugar la comunicación. En este caso, la comunicación siempre es a través de memoria compartida. Sin embargo, afecta al número de segmentos de memoria compartida que DB2 utilizará. DB2_AWE Windows 2000 Valor por omisión=Null Valores: [; ;...] donde =, , Permite a DB2 UDB en Windows 2000 asignar agrupaciones de almacenamiento intermedio que utilizan hasta 64 GB de memoria. Windows 2000 debe configurarse correctamente para que dé soporte a agrupaciones de almacenamiento intermedio de AWE (Address Windowing Extensions). Esto incluye la asociación del derecho "bloquear páginas en memoria" con el usuario en Windows 2000 y el establecimiento de esta variable de registro en DB2. Al establecer esta variable es necesario conocer el ID de agrupación de almacenamiento intermedio que debe utilizarse para el soporte de AWE. También es necesario determinar el número de páginas físicas que se deberán asignar y el número de ventanas de dirección. Para obtener información sobre la determinación del número de páginas físicas que se deberán asignar y el número de ventanas de dirección, consulte la sección sobre "Gestión de la agrupación de almacenamiento intermedio de la base de datos" que se encuentra en el "Capítulo 8. Rendimiento operativo" que aparece anteriormente en esta sección. Nota: Si el soporte de AWE está habilitado, no se puede utilizar el almacenamiento ampliado (ESTORE) para ninguna de las agrupaciones de almacenamiento intermedio de la base de datos. Las agrupaciones de almacenamiento intermedio a las que hace referencia esta variable ya deben existir en SYSIBM.SYSBUFFERPOOLS. DB2_STPROC_LOCKUP_FIRST Todos Valor por omisión=NO Valores: YES o NO Esta variable de registro se ha renombrado desde DB2_DARI_LOOKUP_ALL. DB2MEMDISCLAIM AIX Valor por omisión=YES Valores: YES o NO En AIX, la memoria que utilizan los procesos de DB2 puede tener algún espacio de paginación asociado. Este espacio de paginación puede permanecer reservado, incluso cuando se ha liberado la memoria asociada. La reserva del espacio de paginación depende de la política de asignación de la gestión de memoria virtual ajustable del sistema AIX. Esta variable de registro controla si los agentes de DB2 solicitan explícitamente que AIX desasocie el espacio de paginación reservado de la memoria liberada. Un valor "YES" hace que los requisitos de espacio de paginación sean menores y, posiblemente, la actividad del disco sea menor en la paginación. Un valor "NO" hace que los requisitos de espacio de paginación sean mayores y, posiblemente, la actividad del disco sea mayor en la paginación. En algunas situaciones, por ejemplo si el espacio de paginación es abundante y si la memoria real es tan abundante que nunca se produce la paginación, un valor de NO proporcionará una pequeña mejora en el rendimiento. DB2MEMMAXFREE Todos Valor por omisión=8 388 608 bytes Valores: de 0 a 232-1 bytes Esta variable de registro controla la cantidad máxima de memoria no utilizada en bytes retenida por los procesos de DB2. DB2_ANTIJOIN Todos Valor por omisión=NO en un entorno EEE Valor por omisión=YES en un entorno no EEE Valores: YES o NO Para entornos EEE de DB2 Universal Database: cuando se especifica YES, el optimizador buscará oportunidades para transformar subconsultas NOT EXISTS en antiuniones que DB2 pueda procesar más eficazmente. Para entornos no EEE: Cuando se especifica NO, el optimizador limitará las oportunidades de transformar subconsultas NOT EXISTS en antiuniones. NEWLOGPATH2 UNIX Valor por omisión=NO Valores: YES o NO Este parámetro permite especificar si debe utilizarse una vía de acceso secundaria para implementar la anotación cronológica dual. La vía de acceso que se utilizará se genera añadiendo el carácter '2' al valor actual de 'LOGPATH'. DB2DOMAINLIST Windows NT Valor por omisión=Null Valores: uno o más dominios válidos de Windows NT (con una coma separando cada uno de ellos) Define uno o más dominios de Windows NT. Sólo los usuarios que pertenecen a estos dominios verán aceptadas sus peticiones de conexión o unión. Esta variable de registro sólo debe utilizarse bajo un entorno de dominio Windows NT puro con servidores y clientes DB2 que ejecuten DB2 Universal Database Versión 7.1 (o superior). DB2_LIKE_VARCHAR Todos Valor por omisión=Y,N Valores: Y, N, S, constante de coma flotante entre 0 y 6,2 Controla la recogida y utilización de estadísticas de subelementos. Se trata de estadísticas sobre el contenido de los datos de las columnas cuando los datos tienen una estructura en forma de una serie de subcampos o subelementos delimitados por espacios en blanco. Esta variable de registro afecta al modo en que el optimizador trata un predicado del tipo: COLUMN LIKE '%xxxxxx%' donde xxxxxx es cualquier serie de caracteres. La sintaxis que muestra el modo en que se utiliza esta variable de registro es: db2set DB2_LIKE_VARCHAR=[Y|N|S|num1] [,Y|N|S|num2] donde * El término que precede a la coma o el único término a la derecha del predicado significa lo siguiente pero sólo para columnas que no tienen estadísticas de subelementos positivas: o S - El optimizador calcula la longitud de cada elemento en una serie de elementos concatenados unos con otros para formar una columna basada en la longitud de la serie encerrada entre los caracteres %. o Y - Valor por omisión. Utilizar un valor por omisión de 1,9 para el parámetro de algoritmo. Utilizar un algoritmo de subelementos de longitud variable con el parámetro de algoritmo. o N - Utilizar un algoritmo de subelementos de longitud fija. o num1 - Utilizar el valor de num1 como parámetro de algoritmo con el algoritmo de subelementos de longitud variable. * El término que sigue a la coma significa lo siguiente: o N - Valor por omisión. No recoger o utilizar estadísticas de subelementos. o Y - Recoger estadísticas de subelementos. Utilizar un algoritmo de subelementos de longitud variable que utiliza las estadísticas recogidas conjuntamente con el valor por omisión 1,9 para el parámetro de algoritmo en el caso de columnas con estadísticas de subelementos positivas. o num2 - Recoger estadísticas de subelementos. Utilizar un algoritmo de subelementos de longitud variable que utiliza las estadísticas recogidas conjuntamente con el valor de num2 como parámetro de algoritmo en el caso de columnas con estadísticas de subelementos positivas. DB2_PINNED_BP AIX, HP-UX Valor por omisión=NO Valores: YES o NO Esta variable se utiliza para contener la memoria global de la base de datos (incluyendo las agrupaciones de almacenamiento intermedio) asociada con la base de datos de la memoria principal en algunos sistemas operativos AIX. El mantenimiento de esta memoria global de la base de datos en la memoria principal del sistema permite que el rendimiento de la base de datos sea más coherente. Si, por ejemplo, la agrupación de almacenamiento intermedio se intercambiase fuera de la memoria principal del sistema, el rendimiento de la base de datos se deterioraría. La reducción de la E/S del disco teniendo las agrupaciones de almacenamiento intermedio en la memoria del sistema mejora el rendimiento de la base de datos. Si tiene otras aplicaciones que requieren más de la memoria principal, deseará permitir que la memoria global de la base de datos, dependiendo de los requisitos de memoria principal del sistema, se intercambie fuera de la memoria principal. Cuando trabaje con HP-UX en un entorno de 64 bits, además de modificar esta variable de registro, se debe otorgar al grupo de instancias de DB2 el privilegio MLOCK. Esto se lleva a cabo haciendo que un usuario con derechos de acceso root realice lo siguiente: 1. Añadir el grupo de instancias de DB2 al archivo /etc/privgroup. Por ejemplo, si el grupo de instancias de DB2 pertenece al grupo db2iadm1, debe añadirse la línea siguiente al archivo /etc/privgroup: db2iadm1 MLOCK 2. Emita el mandato siguiente: setprivgrp -f /etc/privgroup DB2_RR_TO_RS Todos Valor por omisión=NO Valores: YES o NO Bloqueo siguiente clave garantiza un nivel de aislamiento de Lectura repetible (RR) al bloquear automáticamente la siguiente clave para todas las sentencias INSERT y DELETE y el siguiente valor de clave más alto que esté por encima del grupo de resultados para sentencias SELECT. Para sentencias UPDATE que modifiquen partes de clave de un índice, la clave del índice original se suprime y se inserta el nuevo valor de clave. El bloqueo de siguiente clave se realiza en la inserción de clave y en la supresión de clave. El bloque de siguiente clave es necesario para garantizar RR estándar de ANSI y SQL92 y es el valor por omisión de DB2. Si la aplicación parece que se detiene o se bloquea, debe examinar la información de instantánea correspondiente a la aplicación. Si el problema parece ser con el bloqueo de siguiente clave, puede definir la variable de registro DB2_RR_TO_RS según dos condiciones. Puede activar DB2_RR_TO_RS si ninguna de las aplicaciones confían en el comportamiento de Lectura repetible (RR) y se acepta que las exploraciones se salten las supresiones no confirmadas. El comportamiento de salto afecta a los niveles de aislamiento RR, Estabilidad de lectura (RS) y Estabilidad del cursor (CS). (No hay bloqueo de filas para el nivel de aislamiento Lectura no confirmada (UR).) Cuando DB2_RR_TO_RS está activado, el comportamiento RR no se puede garantizar para exploraciones en tablas de usuarios porque el bloqueo de siguiente clave no se realiza durante la inserción y supresión de clave de índice. Las tablas de catálogo no se ven afectadas por esta opción. El otro cambio en el comportamiento es que, cuando DB2_RR_TO_RS está activado, las exploraciones se saltan las filas que se han suprimido pero no se han confirmado, aunque la fila se haya cualificado para la exploración. ------------------------------------------------------------------------ 8.9 Apéndice C. Herramientas de SQL Explain En la sección titulada "Ejecución de db2expln y dynexpln" debe sustituirse el último párrafo por el siguiente: Para ejecutar db2expln, debe tener el privilegio SELECT para las vistas de catálogo del sistema así como la autorización EXECUTE para el paquete db2expln. Para ejecutar dynexpln, debe tener autorización BINDADD para la base de datos, el esquema que está utilizando para conectarse a la base de datos debe existir o debe tener la autorización EXPLICIT_SCHEMA para la base de datos y debe tener los privilegios necesarios para las sentencias SQL que se explican. (Tenga en cuenta que si tiene la autorización SYSADM o DBADM, automáticamente tendrá todos estos niveles de autorización.) ------------------------------------------------------------------------ Administering Satellites Guide and Reference ------------------------------------------------------------------------ 9.1 Configuración de la Versión 7.2 de DB2 Personal Edition y DB2 Workgroup Edition como satélites Las siguientes secciones describen cómo configurar la Versión 7.2 de los sistemas DB2 Personal Edition y DB2 Workgroup Edition basados en Windows de modo que se puedan utilizar como satélites con funcionalidad completa en un entorno de satélites. Para obtener información sobre los términos y conceptos utilizados en la siguiente información, consulte el manual Administering Satellites Guide and Reference. Encontrará este manual en el siguiente URL: http://www-4.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/v6pubs.d2w/en_main Para ver notas técnicas que complementan la información del manual Administering Satellites Guide and Reference, consulte el siguiente URL: http://www-4.ibm.com/cgi-bin/db2www/data/db2/udb/winos2unix/support/browse.d2w/ report?type=tech5udb&tech5udb=Y 9.1.1 Requisitos previos Para configurar DB2 Personal Edition o DB2 Workgroup Edition como satélites, necesita: 1. Un servidor de control de DB2 El servidor de control de DB2 es un sistema DB2 Enterprise Edition que se ejecuta en Windows NT o AIX y que tiene instalado el componente Servidor de control. El sistema DB2 Enterprise Edition que utilice debe estar al nivel de la Versión 6 con FixPak 2 o superior o de la Versión 7 con cualquier nivel de FixPak. o Si tiene un sistema Versión 6 Enterprise Edition que desea utilizar como servidor de control de DB2, consulte 9.1.3, Instalación del FixPak 2 o superior en un sistema Versión 6 Enterprise Edition. o Si utiliza la Versión 7 y no tiene el componente Servidor de control instalado, instale este componente, vuelva a instalar los FixPaks que ya ha instalado y luego cree la instancia del servidor de control de DB2 y la base de datos de control de satélites. Consulte el manual Administering Satellites Guide and Reference para ver instrucciones sobre cómo crear estos objetos. Nota: Si está instalando un sistema Versión 7.2 Enterprise Edition en Windows NT para utilizarlo como servidor de control de DB2 y desea realizar una instalación de archivo de respuestas, consulte la nota técnica denominada Palabras clave del servidor de control de DB2 para obtener información sobre las palabras clave a especificar en el archivo de respuestas. 2. La instancia del servidor de control de DB2 y la base de datos de control de satélites La instancia del servidor de control de DB2 se suele llamar DB2CTLSV y la base de datos de control de satélites se llama SATCTLDB. La instancia del servidor de control de DB2 y la base de datos de control de satélites están en el sistema Enterprise Edition y, on Windows NT, se crean automáticamente cuando instala DB2 con el componente Servidor de control. Si instala DB2 en AIX, consulte el manual Administering Satellites Guide and Reference para obtener información sobre cómo crear la instancia del servidor de control de DB2 y la base de datos de control de satélites. 3. El Centro de administración de satélites El Centro de administración de satélites es un grupo de herramientas de GUI que puede utilizar para configurar y administrar el entorno de satélites. Puede acceder a este grupo de herramientas desde el Centro de control. Para obtener más información sobre el Centro de administración de satélites y el entorno de satélites, consulte el manual Administering Satellites Guide and Reference y la ayuda en línea disponible desde el Centro de administración de satélites. Si está ejecutando un Centro de control de la Versión 6, consulte el tema 9.1.4, Actualización de una Versión 6 del Centro de control y del Centro de administración de satélites. Si aún no ha utilizado el Centro de administración de satélites para configurar el entorno de satélites y para crear el objeto que representa el nuevo satélite en el Centro de administración de satélites, debe hacerlo antes de instalar el satélite. Para obtener más información, consulte la descripción sobre cómo configurar y probar un entorno de satélites en el manual Administering Satellites Guide and Reference. 4. Un sistema Versión 7.2 Personal Edition o Workgroup Edition que desea utilizar como satélite. 9.1.1.1 Consideraciones sobre la instalación Cuando instala DB2 Personal Edition o DB2 Workgroup Edition, no tiene que seleccionar ningún componente especial para habilitar un sistema a sincronizar. Si tiene intención de realizar una instalación de archivo de respuestas, consulte Cómo realizar una instalación de archivo de respuestas para ver las palabras clave que tiene que especificar al instalar el sistema Versión 7.2. Si está realizando una instalación interactiva del sistema Versión 7.2, consulte 9.1.2, Configuración del sistema Versión 7.2 para la sincronización cuando haya terminado de instalar DB2 para ver los valores que debe definir en el sistema Versión 7.2 para habilitarlo para sincronizar. Cómo realizar una instalación de archivo de respuestas Si está realizando una instalación de archivo de respuestas de la Versión 7.2 de DB2 Personal Edition o DB2 Workgroup Edition, puede definir las siguientes palabras clave en el archivo de respuestas. Si decide no especificar una o más palabras clave durante la instalación de archivo de respuestas, consulte 9.1.2, Configuración del sistema Versión 7.2 para la sincronización para ver los pasos adicionales a seguir después de instalar DB2 para habilitar el sistema Versión 7.2 a sincronizar. también puede seguir las instrucciones de esta sección si desea cambiar cualquiera de los valores especificados durante la instalación de archivo de respuestas. db2.db2satelliteid Define el ID del satélite en el sistema. Nota: Si no especifica esta palabra clave, el ID del satélite se define automáticamente como el ID de usuario utilizado para instalar DB2. Si desea utilizar este ID de usuario como ID del satélite, no tiene que especificar ningún valor para esta palabra clave. db2.db2satelliteappver Define la versión de la aplicación en el sistema. Nota: Si no especifica esta palabra clave, la versión de la aplicación en el satélite se establece automáticamente en V1R0M00. Si desea utilizar este valor como la versión de la aplicación, no tiene que especificar ningún valor para esta palabra clave. db2.satctldb_username Define el nombre de usuario a utilizar para que el sistema se conecte a la base de datos de control de satélites. db2.satctldb_password Define la contraseña que el nombre de usuario pasa al servidor de control de DB2 cuando el nombre de usuario se conecta a la base de datos de control de satélites. Una vez finalizada la instalación de archivo de respuestas, el sistema Versión 7.2 está listo para sincronizar. Debe emitir el mandato db2sync -t en el satélite para verificar que los valores especificados en el satélite son correctos y que el satélite se puede conectar a la base de datos de control de satélites. Para obtener más información sobre cómo realizar una instalación de archivo de respuestas, consulte el manual Administering Satellites Guide and Reference. Notas: 1. En la Versión 7, se necesitan ID de usuario y contraseñas para la creación de todos los servicios en Windows NT y Windows 2000. Estos ID de usuario y contraseñas se especifican en el archivo de respuestas mediante pares de palabras clave. El primer par de palabras clave del archivo de respuestas se convierte en el ID de usuario y contraseña correspondientes a todos los servicios, a no ser que altere temporalmente estos valores para un servicio, especificando el par específico de palabras clave para dicho servicio. En la Versión 6, las palabras clave admin.userid y admin.password se pueden especifican durante una instalación de archivo de respuestas de DB2 Satellite Edition para especificar el ID de usuario y contraseña que utilizaría el Servicio de mandatos remoto. Para la Versión 7.2 de Personal Edition y Workgroup Edition, si especifica estas palabras clave, se utilizan para la instancia de DB2DAS00 en el sistema Versión 7.2. Para un sistema DB2 Versión 7.2, el Servicio de mandatos remoto utilizará el ID de usuario y contraseña que utiliza la instancia de DB2 en el sistema. Si no especifica valores para db2.userid y db2.password, se aplica la regla de valores por omisión descrita anteriormente. 2. En la Versión 6, podía crear una base de datos al instalar DB2 Satellite Edition utilizando una instalación de archivo de respuestas. No puede crear una base de datos durante una instalación de archivo de respuestas en la Versión 7.2 de Personal Edition o Workgroup Edition que tiene intención de utilizar como un satélite. Las siguientes palabras clave (que se describen en el manual Administering Satellites Guide and Reference) no reciben soporte: o db2.userdb_name o db2.userdb_recoverable o db2.userdb_rep_src 9.1.2 Configuración del sistema Versión 7.2 para la sincronización Si instala el sistema versión 7.2 de forma interactiva, debe establecer varios valores en el sistema DB2 Personal Edition o DB2 Workgroup Edition después de instalar DB2 para que el sistema pueda sincronizar. Nota: Puede ejecutar un script del sistema operativo en el sistema para establecer todos los valores en el satélite, excepto el ID de usuario y contraseña que utiliza el satélite para conectar con la base de datos de control de satélites (consulte el paso 4). 1. Establezca el ID del satélite mediante el mandato db2set. Si instala DB2 Personal Edition o DB2 Workgroup Edition de forma interactiva, el ID de satélite se establece automáticamente en el ID de usuario que se utilizó para instalar DB2. Si desea utilizar este ID de usuario como el ID del satélite, no tiene que llevar a cabo este paso. Para obtener información sobre cómo establecer el ID del satélite, consulte el manual Administering Satellites Guide and Reference. 2. Establezca la versión de la aplicación en el satélite mediante el mandato db2sync -s. Si instala DB2 Personal Edition o DB2 Workgroup Edition de forma interactiva, la versión de la aplicación en el satélite se establece automáticamente en V1R0M00. Si desea utilizar este valor como la versión de la aplicación, no tiene que llevar a cabo este paso. Puede utilizar el mandato db2sync -g en el satélite para ver el valor actual de la versión de la aplicación. Si desea cambiar este valor, emita el mandato db2sync -s. Se le solicitará que proporcione un nuevo valor para la versión de la aplicación. Para obtener más información sobre cómo establecer la versión de la aplicación, consulte el manual Administering Satellites Guide and Reference. 3. Emita los mandatos catalog node y catalog database en el satélite para catalogar la instancia del servidor de control de DB2 y la base de datos de control de satélites, SATCTLDB, en el satélite. También puede utilizar el mandato db2sync -t en el satélite para abrir la aplicación DB2 Synchronizer en modalidad de prueba. Si la base de datos SATCTLDB no está catalogada en el satélite cuando emite el mandato, se abre la ventana Catalogar base de datos de control. Puede utilizar la característica de descubrimiento de DB2 disponible en la ventana Catalogar base de datos de control para catalogar el servidor de control de DB2 y la base de datos SATCTLDB o bien puede escribir el nombre del sistema principal y el nombre del servidor en esta ventana. También se le solicitará que especifique el ID de usuario y contraseña que utilizará el satélite para conectar con la base de datos de control de satélites, tal como se describe en el paso 4. Nota: Después de instalar la Versión 7.2 de DB2 Personal Edition o DB2 Workgroup Edition de forma interactiva, el programa DB2 Synchronizer no se inicia automáticamente en modalidad de prueba (que era el caso de la Versión 6 de DB2 Satellite Edition). 4. Emita el mandato db2sync -t en el satélite para: o Especificar el ID de usuario y la contraseña que utilizará el satélite para conectar con la base de datos de control de satélites. Si las credenciales de sincronización aún no están almacenadas en el satélite, se abre la ventana Conectar con base de datos de control. Debe utilizar esta ventana para especificar el ID de usuario y contraseña que utilizará el satélite para conectar con la base de datos de control de satélites. o Verifique que los valores establecidos en el satélite son correctos o Verifique que el satélite se puede conectar con la base de datos de control de satélites Una vez realizadas estas tareas de configuración, el sistema Versión 7.2 está listo para sincronizar. 9.1.3 Instalación del FixPak 2 o superior en un sistema Versión 6 Enterprise Edition Las secciones siguientes describen las tareas que debe llevar a cabo para actualizar un sistema Versión 6 Enterprise Edition en Windows NT o AIX para utilizarlo como servidor de control de DB2. Si está utilizando un Centro de control Versión 6, realice también los pasos del tema 9.1.4, Actualización de una Versión 6 del Centro de control y del Centro de administración de satélites para verificar que tiene el nivel correcto del Centro de control y del Centro de administración de satélites para administrar el entorno de satélites. 9.1.3.1 Actualización de la Versión 6 de DB2 Enterprise Edition para utilizarlo como servidor de control de DB2 Para poder utilizar un sistema Versión 6 de DB2 Enterprise Edition como servidor de control de DB2, se debe instalar con el componente Servidor de control y DB2 Enterprise Edition debe estar al nivel de servicio FixPak 2 o superior. En función de si está instalado el componente Servidor de control de DB2 y del nivel de servicio de DB2 Enterprise Edition, tendrá que llevar a cabo una de las siguientes tareas: * Instale el componente Servidor de control de DB2 en un sistema DB2 Enterprise Edition V6.1 existente e instale el FixPak 2 o superior. Luego actualice la base de datos de control de satélites (SATCTLDB) en el sistema. * Actualice un servidor de control de DB2 ya instalado al nivel del FixPak 2 o superior. Utilice la siguiente información para identificar cuál de las dos tareas anteriores tiene que llevar a cabo y los pasos que se aplican a la situación. A continuación se muestra un resumen de los pasos que llevará a cabo. 1. En primer lugar, evalúe el estado actual de la instalación de DB2 Enterprise Edition. Determinará si el componente Servidor de control está instalado y el nivel de servicio de DB2. 2. En segundo lugar, según la información de estado obtenida, determinará lo que se tiene que hacer. 3. En tercer lugar, llevará a cabo los pasos necesarios para actualizar DB2 Enterprise Edition. El servidor de control de DB2 sólo se puede ejecutar en DB2 Enterprise Edition para Windows NT y AIX. Continúe con las instrucciones adecuadas para su plataforma: * Actualización de DB2 Enterprise Edition en Windows NT * Actualización de DB2 Enterprise Edition en AIX Actualización de DB2 Enterprise Edition en Windows NT Utilice la información de las secciones siguientes para determinar el nivel de servicio actual del sistema Versión 6 de DB2 Enterprise Edition y los pasos que tiene que llevar a cabo para actualizar el sistema al nivel de servicio del FixPak o superior. Tendrá que llevar a cabo los pasos de una o más de las siguientes secciones: * Evaluación de DB2 Enterprise Edition en Windows NT * Determinación de lo que se tiene que llevar a cabo * Instalación del componente Servidor de control en Windows NT * Instalación del FixPak 2 o superior en Windows NT * Actualización de la base de datos SATCTLDB en Windows NT Evaluación de DB2 Enterprise Edition en Windows NT Si tiene DB2 Enterprise Edition instalado en Windows NT, siga los pasos siguientes: 1. Compruebe si el componente Servidor de control está instalado. Utilice el Editor de registros para visualizar la lista de componentes instalados: a. Entre regedit en un indicador de mandatos. b. Bajo la clave de registro HKEY_LOCAL_MACHINE\SOFTWARE\IBM\DB2\Components, compruebe si aparece el Servidor de control. Si no aparece, significa que el servidor de control no está instalado. 2. Determine el nivel de servicio de DB2 Enterprise Edition. Emita el mandato db2level desde un indicador de mandatos. Utilice la tabla siguiente para interpretar la salida: Valores de campos clave de la salida de db2level El sistema DB2 Release Nivel Símbolos informativos está al nivel: SQL06010 01010104 db2_v6, n990616 Versión 6.1 base SQL06010 01020104 DB2 V6.1.0.1, n990824, Versión 6.1 WR21136 más FixPak 1 SQL06010 01030104 DB2 V6.1.0.6, s991030, Versión 6.1 WR21163 o DB2 V6.1.0.9, más FixPak 2 s000101, WR21173 Nota: Si el nivel es superior a 01030104, el sistema tiene instalado un FixPak superior al FixPak 2. 3. Anote la información encontrada y continúe en Determinación de lo que se tiene que llevar a cabo. Determinación de lo que se tiene que llevar a cabo Con la información obtenida, busque la fila de la siguiente tabla que se aplica a su situación y siga los pasos necesarios para preparar el sistema DB2 Enterprise Edition para que dé soporte al servidor de control de DB2 al nivel del FixPak 2 o superior. Las secciones que hay después de la tabla proporcionan instrucciones para llevar a cabo los pasos necesarios. Si lo desea, puede marcar cada paso después de llevarlo a cabo. Sólo lleve a cabo los pasos que se apliquen a su situación. Componente Servidor de Nivel de servicio del Pasos que hay que seguir control instalado sistema DB2 Enterprise para preparar el sistema Edition DB2 Enterprise Edition No Versión 6.1 base, Realice los pasos Versión 6.1 más FixPak 1 siguientes: o Versión 6.1 más FixPak 2 o superior 1. Instalación del componente Servidor de control en Windows NT 2. Instalación del FixPak 2 o superior en Windows NT 3. Actualización de la base de datos SATCTLDB en Windows NT Sí Versión 6.1 base o Realice los pasos Versión 6.1 más FixPak 1 siguientes: 1. Instalación del FixPak 2 o superior en Windows NT 2. Actualización de la base de datos SATCTLDB en Windows NT Sí Versión 6.1 más FixPak 2 Realice el paso o superior siguiente: 1. Actualización de la base de datos SATCTLDB en Windows NT Instalación del componente Servidor de control en Windows NT Para instalar el componente Servidor de control en Windows NT: 1. Asegúrese de que ha finalizado toda la actividad de bases de datos en el sistema antes de continuar. 2. Inserte el CD de DB2 Universal Database Enterprise Edition Versión 6.1 en la unidad de CD. Si el programa de instalación no se inicia automáticamente, ejecute el mandato setup que hay en la raíz del CD para comenzar el proceso de instalación. 3. Cuando se le solicite, cierre todos los procesos que estén utilizando DB2. 4. En la ventana de bienvenida, seleccione Siguiente. 5. En la ventana Seleccionar productos, asegúrese de que DB2 Enterprise Edition está seleccionado. 6. En el panel Seleccionar tipo de instalación, pulse Personalizada. 7. En el panel Seleccionar componentes, asegúrese de que el Servidor de control está seleccionado y pulse Siguiente. Nota: Si si selecciona otros componentes que aún no están instalados en el sistema, dichos componentes también se instalarán. No puede modificar la unidad ni directorio en el que se instala DB2. 8. En los paneles Configurar servicios de DB2, puede modificar los valores de protocolo y las opciones de arranque correspondientes a la instancia del Servidor de control o puede aceptar los valores por omisión. Modifique los valores por omisión y pulse Siguiente o pulse Siguiente para utilizar los valores por omisión. 9. Pulse Siguiente en la ventana Empezar a copiar archivos para comenzar el proceso de instalación. 10. Cuando finalice el proceso de copia de archivo, tiene la opción de volver a arranca el sistema. Debe volverlo a arrancar ahora. Los cambios realizados en el sistema correspondientes al Servidor de control no entran en vigor hasta que se vuelve a arrancar el sistema. Cuando haya finalizado el proceso de instalación y haya vuelto a arrancar el sistema, la base de datos de control de satélites (SATCTLDB) creada como parte de la instalación del Servidor de control se debe catalogar en la instancia de DB2 si desea utilizar el Centro de control y el Centro de administración de satélites de forma local en el sistema. Para catalogar la base de datos SATCTLDB: 1. Abra una ventana de mandatos de DB2 seleccionando Inicio>Programas>DB2 para Windows NT>Ventana de mandatos 2. Asegúrese de que está en la instancia de db2. Emita el mandato set y compruebe el valor de db2instance. Si el valor no es db2, emita el siguiente mandato: set db2instance=db2 3. Catalogue la instancia db2ctlsv entrando el siguiente mandato: db2 catalog local node db2ctlsv instance db2ctlsv 4. Catalogue la base de datos SATCTLDB entrando el siguiente mandato: db2 catalog database satctldb at node db2ctlsv 5. Confirme las acciones de catalogación entrando el siguiente mandato: db2 terminate 6. Cierre la Ventana de mandatos de DB2. Instalación del FixPak 2 o superior en Windows NT Para actualizar un sistema Versión 6 de DB2 Enterprise Edition existente en Windows NT al FixPak 2 o superior, puede: * Bajar el último FixPak para DB2 Enterprise Edition para Windows NT V6.1 de la Web, junto con el archivo readme que le acompaña. El FixPak se puede bajar siguiendo las instrucciones del URL: http://www-4.ibm.com/software/data/db2/db2tech/version61.html Instalar el FixPak siguiendo las instrucciones del archivo readme.txt. * Utilizar un CD FixPak de DB2 Universal Database, Versión 6.1 para Windows NT que esté al nivel del FixPak 2 o superior y seguir las instrucciones del archivo readme.txt del directorio WINNT95 del CD para completar la instalación. Actualización de la base de datos SATCTLDB en Windows NT Para actualizar la base de datos SATCTLDB en Windows NT 1. Determine el nivel de la base de datos SATCTLDB: a. Inicie una sesión con un ID de usuario que tenga autorización administrativa local en el sistema Windows NT. b. Abra una ventana de mandatos de DB2 seleccionando Inicio>Programas>DB2 para Windows NT>Ventana de mandatos. c. Conéctese a SATCTLDB entrando el siguiente mandato: db2 connect to satctldb d. Determine si el desencadenante I_BATCHSTEP_TRGSCR existe en la base de datos emitiendo la siguiente consulta: db2 select name from sysibm.systriggers where name='I_BATCHSTEP_TRGSCR' Anote el número de filas que se devuelven. e. Entre el siguiente mandato para cerrar la conexión con la base de datos: db2 connect reset Si el paso 1d ha devuelto una fila, significa que la base de datos está al nivel correcto. En este caso, sáltese el paso 2 y continúe en el paso 3. Si se devuelven cero (0) filas, significa que la base de datos no está al nivel correcto y se tiene que actualizar, tal como se describe en el paso 2, antes de poder llevar a cabo el paso 3. 2. Para actualizar la base de datos SATCTLDB, siga los pasos siguientes. Entre todos los mandatos en la Ventana de mandatos de DB2: a. Vaya al directorio \misc, donde es la unidad y vía de acceso de instalación, por ejemplo c:\sqllib. b. Asegúrese de que está en la instancia db2ctlsv. Emita el mandato set y compruebe el valor de db2instance. Si el valor no es db2ctlsv, emita el siguiente mandato: set db2instance=db2ctlsv c. Elimine la base de datos SATCTLDB entrando el siguiente mandato: db2 drop database satctldb d. Cree la nueva base de datos SATCTLDB entrando el siguiente mandato: db2 -tf satctldb.ddl -z satctldb.log e. Emita el mandato siguiente: db2 terminate 3. Vincule el procedimiento almacenado db2satcs.dll a la base de datos SATCTLDB. Realice los pasos siguientes: a. Conéctese a la base de datos SATCTLDB entrando el siguiente mandato: db2 connect to satctldb b. Vaya al directorio \bnd, donde es la unidad y vía de acceso de instalación, por ejemplo c:\sqllib. c. Emita el mandato bind del siguiente modo: db2 bind db2satcs.bnd 4. Entre el siguiente mandato para cerrar la conexión con la base de datos: db2 connect reset 5. Cierre la Ventana de mandatos de DB2. Actualización de DB2 Enterprise Edition en AIX Utilice la información de las secciones siguientes para determinar el nivel de servicio actual del sistema Versión 6 de DB2 Enterprise Edition y los pasos que tiene que llevar a cabo para actualizar el sistema al nivel de servicio del FixPak o superior. Tendrá que llevar a cabo los pasos de una o más de las siguientes secciones: * Evaluación de DB2 Enterprise Edition en AIX * Determinación de lo que se tiene que llevar a cabo * Instalación del componente Servidor de control en AIX * Instalación del FixPak 2 o superior en AIX * Actualización de la base de datos SATCTLDB en AIX Evaluación de DB2 Enterprise Edition en AIX Si tiene la Versión 6 de DB2 Enterprise Edition instalada en AIX, lleve a cabo los pasos siguientes: 1. Compruebe si el componente Servidor de control está instalado. Entre el mandato siguiente: lslpp -l | grep db2_06_01.ctsr Si no se devuelve ningún dato, significa que el componente Servidor de control no está instalado. 2. Determine el nivel de servicio de DB2 Enterprise Edition. Inicie una sesión como propietario de la instancia de DB2 y emita el mandato db2level. Utilice la tabla siguiente para interpretar la salida: Valores de campos clave de la salida de db2level El sistema DB2 Release Nivel Símbolos informativos está al nivel: SQL06010 01010104 db2_v6, n990616 Versión 6.1 base SQL06010 01020104 DB2 V6.1.0.1, n990824, Versión 6.1 U465423 más FixPak 1 SQL06010 01030104 DB2 V6.1.0.6, s991030, Versión 6.1 U468276 o DB2 V6.1.0.9, más FixPak 2 s000101, U469453 Nota: Si el nivel es superior a 01030104, el sistema tiene instalado un FixPak superior al FixPak 2. 3. Anote la información encontrada y continúe en Determinación de lo que se tiene que llevar a cabo. Determinación de lo que se tiene que llevar a cabo Con la información obtenida, busque la fila de la siguiente tabla que se aplica a su situación y siga los pasos necesarios para preparar el sistema Versión 6 de DB2 Enterprise Edition para que dé soporte al servidor de control de DB2 al nivel del FixPak 2. Las secciones que hay después de la tabla proporcionan instrucciones para llevar a cabo los pasos necesarios. Si lo desea, puede marcar cada paso después de llevarlo a cabo. Sólo lleve a cabo los pasos que se apliquen a su situación. Componente Servidor de Nivel de servicio del Pasos que hay que seguir control instalado sistema DB2 Enterprise para preparar el sistema Edition DB2 Enterprise Edition No Versión 6.1 base, Realice los pasos Versión 6.1 más FixPak 1 siguientes: o Versión 6.1 más FixPak 2 o superior 1. Instalación del componente Servidor de control en AIX 2. Instalación del FixPak 2 o superior en AIX 3. Actualización de la base de datos SATCTLDB en AIX Sí Versión 6.1 base o Realice los pasos Versión 6.1 más FixPak 1 siguientes: 1. Instalación del FixPak 2 o superior en AIX 2. Actualización de la base de datos SATCTLDB en AIX Sí Versión 6.1 más FixPak 2 Realice el paso o superior siguiente: 1. Actualización de la base de datos SATCTLDB en AIX Instalación del componente Servidor de control en AIX Para instalar el componente Servidor de control en AIX 1. Inicie una sesión como usuario con autorización root. 2. Inserte el CD de DB2 Universal Database Enterprise Edition Versión 6.1 en la unidad de CD. 3. Cambie al directorio en el que está montado el CD, por ejemplo cd /cdrom. 4. Escriba el siguiente mandato para iniciar el programa de instalación de DB2: ./db2setup 5. Cuando se abra la ventana del programa de instalación de DB2, utilice la tecla tabuladora para seleccionar la opción Instalar y pulse Intro. 6. Busque la línea Enterprise Edition y utilice la tecla tabuladora para seleccionar la opción Personalizar que hay junto a la misma. Pulse Intro. 7. Seleccione el componente Servidor de control de DB2, vaya a OK y pulse Intro. 8. Siga las instrucciones de las demás ventanas para completar la instalación del componente Servidor de control de DB2. Una vez finalizado el proceso de instalación, cree la instancia DB2CTLSV y la base de datos SATCTLDB. Para llevar a cabo estas tareas, siga las instrucciones detalladas del tema "Configuración del Servidor de control de DB2 en AIX" del Capítulo 13 del manual Administering Satellites Guide and Reference. Instalación del FixPak 2 o superior en AIX Para actualizar un sistema DB2 Enterprise Edition en AIX al FixPak 2 o superior, puede: * Bajar el último FixPak para DB2 Enterprise Edition para AIX V6.1 de la Web, junto con el archivo Readme del Fixpak que le acompaña. El FixPak se puede bajar siguiendo las instrucciones del URL: http://www-4.ibm.com/software/data/db2/db2tech/version61.html Instalar el FixPak siguiendo las instrucciones del archivo Readme del Fixpak. * Utilizar un CD FixPak de DB2 Universal Database, Versión 6.1 para AIX que esté al nivel del FixPak 2 o superior y seguir las instrucciones del directorio readme del CD para completar la instalación. Asegúrese de haber actualizado la instancia DB2CTLSV ejecutando el mandato db2iupdt tal como se indica en el archivo Readme del FixPak. Actualización de la base de datos SATCTLDB en AIX Para actualizar la base de datos SATCTLDB en AIX: 1. Determine el nivel de la base de datos SATCTLDB: a. Inicie una sesión como db2ctlsv. b. Asegúrese de que el servidor de bases de datos se ha iniciado. Si el servidor no se ha iniciado, emita el mandato db2start. c. Conéctese a la base de datos SATCTLDB entrando el siguiente mandato: db2 connect to satctldb d. Determine si el desencadenante I_BATCHSTEP_TRGSCR existe en la base de datos emitiendo la siguiente consulta: db2 "select name from sysibm.systriggers where name='I_BATCHSTEP_TRGSCR'" Anote el número de filas que se devuelven. e. Entre el siguiente mandato para cerrar la conexión con la base de datos: db2 connect reset Si el paso 1d ha devuelto una fila, significa que la base de datos está al nivel correcto. En este caso, sáltese el paso 2 y continúe en el paso 3. Si se devuelven cero (0) filas, significa que la base de datos no está al nivel correcto y se tiene que actualizar, tal como se describe en el paso 2, antes de poder llevar a cabo el paso 3. 2. Para actualizar la base de datos SATCTLDB al nivel del FixPak 2, siga los pasos siguientes. Entre todos los mandatos en la Ventana de mandatos de DB2: a. Cambie al directorio $HOME/sqllib/misc. b. Elimine la base de datos SATCTLDB entrando el siguiente mandato: db2 drop database satctldb c. Cree la nueva base de datos SATCTLDB entrando el siguiente mandato: db2 -tf satctldb.ddl -z $HOME/satctldb.log d. Emita el mandato siguiente: db2 terminate 3. Vincule el procedimiento almacenado db2satcs.dll a la base de datos SATCTLDB. Realice los pasos siguientes: a. Conéctese a la base de datos SATCTLDB entrando el siguiente mandato: db2 connect to satctldb b. Cambie al directorio $HOME/sqllib/bnd. c. Emita el mandato bind del siguiente modo: db2 bind db2satcs.bnd 4. Entre el siguiente mandato para cerrar la conexión con la base de datos: db2 connect reset 9.1.4 Actualización de una Versión 6 del Centro de control y del Centro de administración de satélites Para utilizar una Versión 6 del Centro de control y del Centro de administración de satélites con una Versión 6 del centro de control de DB2 y de la base de datos de control de satélites (SATCTLDB) que se han actualizado al FixPak 2 o superior, las herramientas también se tienen que actualizar al FixPak 2 o superior. Si el Centro de control y el Centro de administración de satélites se están ejecutando en el mismo sistema que el servidor de control de DB2, se actualizaron cuando se actualizó el sistema DB2 Enterprise Edition al FixPak 2. Sin embargo, si ejecuta estas herramientas en otro sistema, debe actualizar dicho sistema al nivel del FixPak 2 o superior. Para actualizar este sistema al FixPak 2 o superior: * Baje el último FixPak correspondiente a su producto al nivel V6.1 de la Web, junto con el archivo readme que le acompaña. Los FixPaks se puede bajar siguiendo las instrucciones del URL: http://www-4.ibm.com/software/data/db2/db2tech/version61.html Instale el FixPak siguiendo las instrucciones del archivo readme. * Utilice un CD FixPak de DB2 Universal Database, Versión 6.1 correspondiente al sistema operativo que está ejecutando que está al nivel del FixPak 2 o superior y siga las instrucciones del archivo readme para completar la instalación. ------------------------------------------------------------------------ Consulta de mandatos ------------------------------------------------------------------------ 10.1 db2batch - Herramienta Benchmark La última frase de la descripción del parámetro PERF_DETAIL debe ser: Un valor mayor que 1 sólo es válido en servidores DB2 Versión 2 y DB2 UDB, y actualmente no está soportado en máquinas de sistema principal. ------------------------------------------------------------------------ 10.2 db2cap (nuevo mandato) db2cap - Herramienta de vinculación de paquetes estáticos CLI/ODBC Vincula un archivo de captura para generar uno o varios paquetes estáticos. Un archivo de captura se genera durante una sesión de perfil estático de una aplicación CLI/ODBC/JDBC y contiene las sentencias de SQL que se hayan capturado durante la ejecución de la aplicación. Este programa de utilidad procesa el archivo de captura de modo que lo puede utilizar el controlador CLI/ODBC/JDBC para ejecutar SQL estático para la aplicación. Para obtener más información sobre cómo utilizar SQL estático en aplicaciones CLI/ODBC/JDBC, consulte el tema sobre perfiles estáticos en CLI Guide and Reference. Autorización * Privilegios de acceso a cualquier objeto de base de datos referido por sentencias SQL registradas en el archivo de captura. * Autorización suficiente para establecer opciones de vinculación tales como OWNER y QUALIFIER si son distintas del ID de conexión utilizado para invocar al mandato db2cap. * Autorización BINDADD si el paquete se vincula por primera vez; de lo contrario, se requiere autorización BIND. Sintaxis del mandato >>-db2cap----+----+--bind--archivo-captura----------------------> +--h-+ '--?-' >-----d--alias_basedatos----------------------------------------> >-----+-------------------------------------+------------------>< '--u--idusuario--+-----------------+--' '--p--contraseña--' Parámetros del mandato -h/-? Visualiza texto de ayuda para la sintaxis del mandato. bind archivo-captura Vincula las sentencias desde el archivo de captura y crea uno o más paquetes. -d alias_basedatos Especifica el alias de base de datos para la base de datos que contendrá uno o más paquetes. -u idusuario Especifica el ID de usuario que debe utilizarse para conectar con la fuente de datos. Nota: Si no se especifica ningún ID de usuario, se obtiene un ID de autorización fiable desde el sistema. -p contraseña Especifica la contraseña que debe utilizarse para conectar con la fuente de datos. Notas sobre uso El mandato debe entrarse en minúsculas en plataformas UNIX, pero se puede entrar en mayúsculas o minúsculas en sistemas operativos Windows y OS/2. Este programa de utilidad soporta varias opciones de vinculación especificadas por el usuario que se pueden encontrar en el archivo de captura. Por motivos de rendimiento y seguridad, el archivo se puede examinar y editar con un editor de texto para cambiar estas opciones. Las opciones de vinculación SQLERROR(CONTINUE) y VALIDATE(RUN) se pueden utilizar para crear un paquete. Cuando se utiliza este programa de utilidad para crear un paquete, el perfil estático debe inhabilitarse. El número de paquetes que se cree depende de los niveles de aislamiento utilizados para las sentencias SQL que se registren en el archivo de captura. El nombre del paquete está formado por hasta siete de los primeros caracteres de la palabra clave del paquete del archivo de captura más uno de los siguientes sufijos de un solo carácter: * 0 - Lectura no comprometida (UR) * 1 - Estabilidad del cursor (CS) * 2 - Estabilidad de la lectura (RS) * 3 - Lectura repetible (RR) * 4 - Sin compromiso (NC) Para obtener información específica acerca de los paquetes, el usuario puede: * Consultar las tablas de catálogos SYSIBM adecuadas utilizando las palabras clave COLLECTION y PACKAGE que se hallan en el archivo de captura. * Visualizar los archivos de captura. ------------------------------------------------------------------------ 10.3 db2ckrst (nuevo mandato) db2ckrst - Comprobar secuencia de imágenes de restauración incremental Consulta el historial de la base de datos y genera una lista de indicaciones de la hora para las imágenes de copia de seguridad necesarias para una restauración incremental. También se genera una sintaxis de restauración simplificada para una restauración incremental manual. Autorización Ninguna Conexión necesaria Ninguna Sintaxis del mandato >>-db2ckrst----d--nombre basedatos----t--indicación horaria-----> >-----+---------------------+-----------------------------------> | .-database---. | '--r--+-tablespace-+--' >-----+---------------------------------+---+----+------------->< | .------------------------. | +--h-+ | V | | +--u-+ '--n-----nombre espaciotabla---+--' '--?-' Parámetros del mandato -d nombre basedatos nombre-archivo Especifica el nombre de alias para la base de datos que se restaurará. -t indicación horaria Especifica la indicación de la hora para una imagen de copia de seguridad que se restaurará de forma incremental. -r Especifica el tipo de restauración que se ejecutará. El valor por omisión es base de datos. Nota: Si se elige un espacio de tabla y no se dan nombres de espacios de tabla, el programa de utilidad busca en la entrada de historial de la imagen especificada y utiliza los nombres de espacios de tabla que se listan para efectuar la restauración. -n nombre espaciotabla Especifica el nombre de uno o más espacios de tabla que se restaurarán. Nota: Si se selecciona un tipo de restauración de base de datos y se especifica una lista de nombres de espacios de tabla, el programa de utilidad continuará como restauración de espacios de tabla utilizando los nombres de espacios de tabla proporcionados. -h/-u/-? Muestra información de ayuda. Al especificar esta opción, se pasarán por alto todas las demás opciones y sólo se visualizará la información de ayuda. Ejemplos db2ckrst -d mr -t 20001015193455 -r database db2ckrst -d mr -t 20001015193455 -r tablespace db2ckrst -d mr -t 20001015193455 -r tablespace -n tbsp1 tbsp2 > db2 backup db mr Copia de seguridad satisfactoria. La indicación horaria para esta imagen de copia de seguridad es : 20001016001426 > db2 backup db mr incremental Copia de seguridad satisfactoria. La indicación horaria para esta imagen de copia de seguridad es : 20001016001445 > db2ckrst -d mr -t 20001016001445 Orden de restauración sugerido para imágenes que utilizan la indicación horaria 20001016001445 para la base de datos mr. =================================================================== db2 restore db mr incremental taken at 20001016001445 db2 restore db mr incremental taken at 20001016001426 db2 restore db mr incremental taken at 20001016001445 =================================================================== > db2ckrst -d mr -t 20001016001445 -r tablespace -n userspace1 Orden de restauración sugerido para imágenes que utilizan la indicación horaria 20001016001445 para la base de datos mr. =================================================================== db2 restore db mr tablespace ( USERSPACE1 ) incremental taken at 20001016001445 db2 restore db mr tablespace ( USERSPACE1 ) incremental taken at 20001016001426 db2 restore db mr tablespace ( USERSPACE1 ) incremental taken at 20001016001445 =================================================================== Notas sobre uso Debe existir el historial de la base de datos para poder utilizar este programa de utilidad. Si el historial de la base de datos no existe, especifique la opción HISTORY FILE en el mandato RESTORE antes de utilizar este programa de utilidad. Si se utiliza la opción FORCE del mandato PRUNE HISTORY, será posible suprimir entradas que son necesarias para la recuperación la partir de la imagen de copia de seguridad de la base de datos completa más reciente. La operación por omisión del mandato PRUNE HISTORY c impide la supresión de las entradas necesarias. Se recomienda no utilizar la opción FORCE del mandato PRUNE HISTORY. Se recomienda realizar un buen seguimiento de las copias de seguridad efectuadas y utilizar este programa de utilidad como guía. ------------------------------------------------------------------------ 10.4 db2gncol (nuevo mandato) db2gncol - Actualizar valores de columnas generadas Actualiza las columnas generadas en tablas que están en modalidad de pendiente y tienen un espacio de anotación cronológica limitado. Esta herramienta se utiliza para prepararse para una sentencia SET INTEGRITY en una tabla que tiene columnas generadas mediante expresiones. Autorización Una de las siguientes * sysadm * dbadm Sintaxis del mandato >>-db2gncol----d--basedatos----s--nombre_esquema----------------> >-----t--nombre_tabla----c--cuenta_confirmación-----------------> >-----+--------------------------------+---+-----+------------->< '--u--idusuario---p--contraseña--' '--h--' Parámetros del mandato -d basedatos Especifica un nombre de alias para la base de datos en la que está ubicada la tabla. -s nombre_esquema Especifica el nombre de esquema para la tabla. El nombre de esquema es sensible a las mayúsculas y minúsculas. -t nombre_tabla Especifica la tabla para la que deben calcularse los nuevos valores de columnas generadas mediante expresiones. El nombre de tabla es sensible a las mayúsculas y minúsculas. -c cuenta_confirmación Especifica el número de filas actualizadas entre confirmaciones. Este parámetro influye sobre el tamaño del espacio de registro necesario para generar los valores nuevos de columna. -u idusuario Especifica un ID de usuario con privilegios de administrador de sistema o administrador de base de datos. Si se omite esta opción, se asume el usuario actual. -p contraseña Especifica la contraseña para el ID de usuario especificado. -h Muestra información de ayuda. Al especificar esta opción, se pasarán por alto todas las demás opciones y sólo se visualizará la información de ayuda. Notas sobre uso La utilización de esta herramienta en lugar de la opción FORCE GENERATED en la sentencia SET INTEGRITY puede ser necesaria si una tabla es grande y se dan las condiciones siguientes: * Deben regenerarse todos los valores de columna después de modificar la expresión de generación de una columna generada. * Se ha modificado una UDF externa utilizada en una columna generada, lo que ha causado que cambien muchos valores de la columna. * Se ha añadido una columna generada a la tabla. * Se ha realizado una carga grande o adición de carga que no ha proporcionado valores para las columnas generadas. * El espacio de anotaciones cronológicas es demasiado pequeño debido a transacciones simultáneas que tardan mucho en ejecutarse o al tamaño de la tabla. Esta herramienta regenerará todos los valores de columna que se han creado basándose en las expresiones. Mientras la tabla se actualiza, se realizan confirmaciones intermitentes para evitar utilizar todo el espacio de anotaciones cronológicas. Después de ejecutar db2gncol, la tabla puede salir de la modalidad de pendiente de comprobación utilizando la sentencia SET INTEGRITY. ------------------------------------------------------------------------ 10.5 db2inidb - Inicializar una base de datos reflejada En un entorno de división de reflejo, este mandato sirve para inicializar una base de datos reflejada con diferentes finalidades. Autorización Debe ser una de las siguientes: o sysadm o sysctrl o sysmaint Conexión necesaria Ninguna Sintaxis del mandato >>-db2inidb----alias_basedatos----AS----+-SNAPSHOT-+----------->< +-STANDBY--+ '-MIRROR---' Parámetros del mandato alias_basedatos Especifica el alias de la base de datos que ha de inicializarse. SNAPSHOT Especifica que la base de datos reflejada se inicializará como un clon de la base de datos primaria. Esta base de datos es de sólo lectura. STANDBY Especifica que la base de datos se colocará en estado pendiente de recuperación en avance. Pueden buscarse y cargarse anotaciones cronológicas nuevas de la base de datos primaria y aplicarse a la base de datos en espera. La base de datos en espera se puede utilizar en lugar de la base de datos primaria si esta se desactiva. MIRROR Especifica que la base de datos reflejada se debe utilizar como imagen de copia de seguridad, que se puede utilizar para restaurar la base de datos primaria. ------------------------------------------------------------------------ 10.6 db2look - Herramienta de extracción de estadísticas de DB2 El diagrama de sintaxis debe ser como sigue: >>-db2look---d--nombreBD----+--------------+---+-----+----------> '--u--Creador--' '--s--' >-----+-----+---+-----+---+-----+---+-----+---+-----+---+-----+-> '--g--' '--a--' '--h--' '--r--' '--c--' '--p--' >-----+--------------+---+---------------------+----------------> '--o--nombreF--' '--e--+------------+--' '--t nombreT-' >-----+---------------------+---+-----+---+-----+---------------> '--m--+------------+--' '--l--' '--x--' '--t nombreT-' >-----+--------------------------------+---+-----+------------->< '--i--idusuario---w--contraseña--' '--f--' Se ha añadido el parámetro -td x a continuación del parámetro -c. Su definición es la siguiente: Especifica el delimitador de sentencia para sentencias de SQL generadas por db2look. Si no se especifica esta opción, el valor por omisión es el punto y coma ';'. Se recomienda la utilización de esta opción si se especifica la opción -e. En este caso, los objetos extraídos pueden contener activadores o rutinas de SQL. También se añadirá el ejemplo siguiente: Genere las sentencias DDL para objetos creados por todos los usuarios en DEPARTMENT de la base de datos. La salida de db2look se envía al archivo db2look.sql: db2look -d department -a -e -td % -o db2look.sql db2 -td% -f db2look.sql ------------------------------------------------------------------------ 10.7 db2updv7 - Actualizar la base de datos al nivel de arreglo actual de la versión 7 Este mandato actualiza los catálogos del sistema de una base de datos para dar soporte al FixPak actual de los modos siguientes: * Permite utilizar las nuevas funciones incorporadas (ABS, DECRYPT_BIN, DECRYPT_CHAR, ENCRYPT, GETHINT, MULTIPLY_ALT y ROUND). * Permite utilizar los procedimientos incorporados nuevos (GET_ROUTINE_SAR y PUT_ROUTINE_SAR). * Añade o aplica correcciones a las funciones WEEK_ISO y DAYOFWEEK_ISO en bases de datos Windows y OS/2. * Aplica una corrección a los descriptores empaquetados de tabla para tablas migradas de la Versión 2 a la Versión 6. * Crea la vista SYSCAT.SEQUENCES. Autorización sysadm Conexión necesaria Base de datos. Este mandato establece automáticamente una conexión con la base de datos especificada. Sintaxis del mandato >>-db2updv7----d---nombre_basedatos-----------------------------> >-----+--------------------------------+---+-----+------------->< '--u--idusuario---p--contraseña--' '--h--' Parámetros del mandato -d nombre-basedatos Especifica el nombre de la base de datos que se va a actualizar. -u idusuario Especifica el ID de usuario. -p contraseña Especifica la contraseña del usuario. -h Muestra información de ayuda. Al especificar esta opción, se pasarán por alto todas las demás opciones y sólo se visualizará la información de ayuda. Ejemplo Después de instalar el FixPak, actualice el catálogo del sistema en la base de datos de ejemplo emitiendo el mandato siguiente: db2updv7 -d ejemplo Notas de utilización Esta herramienta sólo puede utilizarse en una base de datos que ejecuta DB2 Versión 7.1 o Versión 7.2 en la que se haya instalado al menos el FixPak 2. Si se emite el mandato más de una vez, no se comunica ninguno de los errores y cada una de las actualizaciones de catálogo sólo se aplica una vez. Para habilitar las funciones incorporadas nuevas, todas las aplicaciones deben desconectarse de esta base de datos y la base de datos debe desactivarse en el caso de que se hubiera activado. ------------------------------------------------------------------------ 10.8 Nueva opción del procesador de línea de mandatos (-x, Suprimir impresión de cabeceras de columna) Una nueva opción, -x, indica al procesador de línea de mandatos que devuelva datos sin ninguna cabecera, incluyendo los nombres de columna. El valor por omisión para esta opción de mandato es OFF. ------------------------------------------------------------------------ 10.9 Requisito de font True Type para DB2 CLP Para visualizar correctamente los caracteres nacionales para idiomas de un único byte (SBCS) correctamente desde la ventana del procesador de línea de mandatos de DB2 (CLP), cambie el font a True Type. ------------------------------------------------------------------------ 10.10 ADD DATALINKS MANAGER El nivel de autorización para este mandato es uno de los siguientes: * sysadm * sysctrl * sysmaint Debe añadirse la siguiente nota sobre el uso: Este mandato es efectivo sólo después de haber desconectado todas las aplicaciones de la base de datos. El DB2 Data Links Manager que se añade debe estar completamente configurado y ejecutándose para que este mandato sea satisfactorio. La base de datos también debe registrarse en el DB2 Data Links Manager utilizando el mandato dlfm add_db. El número máximo de DB2 Data Links Managers que se pueden añadir a una base de datos es 16. ------------------------------------------------------------------------ 10.11 ARCHIVE LOG (nuevo mandato) Archive Log Cierra y trunca el archivo de anotaciones cronológicas activas para una base de datos recuperable. Si la salida de usuario está habilitada, emite una petición de archivado. Autorización Una de los siguientes: * sysadm * sysctrl * sysmaint * dbadm Conexión necesaria Este mandato establece automáticamente una conexión con la base de datos especificada. Si ya existe una conexión, se devuelve un error. Sintaxis del mandato >>-ARCHIVE LOG FOR----+-DATABASE-+--alias-basedatos-------------> '-DB-------' >-----+----------------------------------------------+----------> '-USER--nombreusuario--+--------------------+--' '-USING--contraseña--' >-------| Cláusula On Node |----------------------------------->< Cláusula On Node |---ON----+-| Cláusula Node List |-------------------------+----| '-ALL NODES--+---------------------------------+-' '-EXCEPT--| Cláusula Node List |--' Cláusula Node List .-,-----------------------------------. V | |---+-NODE--+--(-----número nodo--+------------------+--+---)---| '-NODES-' '-TO--número nodo--' Parámetros del mandato DATABASE alias-basedatos Especifica el alias de la base de datos cuya anotación cronológica activa ha de archivarse. USER nombreusuario Identifica el nombre de usuario bajo el que se intentará realizar una conexión. USING contraseña Especifica la contraseña para autentificar el nombre de usuario. ON ALL NODES Especifica que el mandato debe emitirse en todos los nodos del archivo db2nodes.cfg. Este es el valor por omisión si no se especifica una cláusula de nodo. EXCEPT Especifica que el mandato debe emitirse en todos los nodos del archivo db2nodes.cfg, excepto los especificados en la lista de nodos. ON NODE/ON NODES Especifica que las anotaciones cronológicas deben archivarse para la base de datos especificada en un conjunto de nodos. número nodo Especifica un número de nodo de la lista de nodos. TO número nodo Se utiliza al especificar un rango de nodos para el que deben archivarse las anotaciones cronológicas. Todos los nodos desde el primer número de nodo especificado hasta el segundo número, inclusive, de nodo especificado se incluyen en la lista de nodos. Notas sobre uso Se puede utilizar este mandato para recopilar una serie completa de archivos de anotaciones cronológicas hasta un punto conocido. Luego los archivos de anotaciones cronológicas se pueden utilizar para actualizar una base de datos en espera. Esta función sólo puede ejecutarse cuando no hay conexión de base de datos con la base de datos especificada. Esto impide que un usuario ejecute el mandato con transacciones no confirmadas. Por tanto, el mandato ARCHIVE LOG no necesariamente confirmará las transacciones incompletas del usuario. Si ya hay una conexión de base de datos con la base de datos especificada y se ejecuta este mandato, el mandato se interrumpirá y devolverá un error. Si otra aplicación tiene transacciones en proceso con la base de datos especificada cuando se ejecuta este mandato, tendrá lugar una ligera disminución en el rendimiento, puesto que el mandato pasa el almacenamiento intermedio al disco. Cualquier otra transacción que intente grabar registros de anotación cronológica en el almacenamiento intermedio tendrá que esperar hasta que se haya terminado de pasar a disco. Si se utiliza en un entorno MPP, puede especificarse un subconjunto de nodos utilizando una cláusula de nodo. Si no se especifica la cláusula de nodo, el comportamiento por omisión para este mandato es cerrar y archivar la anotación cronológica activa en todos los nodos. La utilización de este mandato ocasionará que una base de datos pierda una parte de su espacio LSN, con lo que se precipita el agotamiento de LSN válidos. ------------------------------------------------------------------------ 10.12 BACKUP DATABASE 10.12.1 Diagrama de sintaxis El diagrama de sintaxis para BACKUP DATABASE se actualizará para reflejar el nuevo parámetro INCREMENTAL y el argumento DELTA opcional. La especificación sólo de la opción INCREMENTAL producirá una imagen de copia de seguridad cumulativa. El argumento DELTA opcional se puede utilizar para especificar la producción de una imagen de copia de seguridad no cumulativa. >>-BACKUP----+-DATABASE-+---alias-basedatos---------------------> '-DB-------' >-----+----------------------------------------------+----------> '-USER--nombreusuario--+--------------------+--' '-USING--contraseña--' >-----+------------------------------------------------+--------> | .-,----------------------. | | V | | '-TABLESPACE--(-----nombre-espaciotabla---+---)--' >-----+---------+---+--------------------------+----------------> '-ONLINE--' '-INCREMENTAL--+--------+--' '-DELTA--' >-----+------------------------------------------------------------+> +-USE TSM--+-------------------------------+-----------------+ | '-OPEN--núm-sesiones--SESSIONS--' | | .-,---------. | | V | | +-TO----+-dir--+--+------------------------------------------+ | '-disp-' | '-LOAD--nombre-biblioteca--+-------------------------------+-' '-OPEN--núm-sesiones--SESSIONS--' >-----+-----------------------------------+---------------------> '-WITH--núm-almac.interm.--BUFFERS--' >-----+-------------------------------+---+-----------------+---> '-BUFFER--tamaño-almac.interm.--' '-PARALLELISM--n--' >----+-------------------+------------------------------------->< '-WITHOUT PROMPTING-' 10.12.2 Consideraciones sobre DB2 Data Links Manager Si se configuran uno o más servidores Data Links para la base de datos, la operación de copia de seguridad será satisfactoria, incluso si un servidor Data Links no está disponible. Cuando se reinicie el servidor Data Links, se completará el proceso de copia de seguridad en ese servidor Data Links antes de que se convierta de nuevo en disponible para la base de datos. Nota: si hay el doble de copias de seguridad todavía esperando un servidor Data Links no disponible mientras se retienen en el archivo de historial para la base de datos (parámetro de configuración de base de datos num_db_backups), la operación de copia de seguridad será anómala. ------------------------------------------------------------------------ 10.13 BIND La sintaxis del mandato para DB2 debería modificarse para mostrar el parámetro federado del siguiente modo: FEDERATED--+--NO--+-- '-YES--' FEDERATED Especifica si una sentencia de SQL estático de un paquete hace referencia a un apodo en una vista federada. Si no se especifica esta opción y una sentencia de SQL estático del paquete hace referencia a un apodo o a una vista federada, se devuelve un aviso y se crea el paquete. NO No se hace referencia a un apodo o vista federada en las sentencias de SQL estático del paquete. Si se encuentra un apodo o vista federada en una sentencia de SQL estático durante la preparación o vinculación de este paquete, se devuelve un error y no se crea el paquete. YES Puede hacerse referencia a un apodo o vista federada en las sentencias de SQL estático del paquete. Si no se encuentra ningún apodo o vista federada en sentencias de SQL estático durante la preparación o vinculación del paquete, no se devuelve ningún error o aviso y se crea el paquete. Nota: En la Versión 7 del FixPak 2, el servidor genera un mensaje de aviso SQL1179W al precompilar un archivo de origen o al vincular un archivo de vinculación lógica sin especificar un valor para la opción FEDERATED. El mismo mensaje se genera cuando el archivo de origen o archivo de vinculación incluye referencias de SQL estático a un apodo. Hay dos excepciones: o Para los clientes que estén en un FixPak anterior a la Versión 7 del FixPak 2 o para clientes de nivel inferior, la API de sqlaprep() no comunica este aviso SQL1179W en el archivo de mensajes. El mandato PRECOMPILE del Procesador de línea de mandatos no emite tampoco la salida en este caso. o Para los clientes que estén en un FixPak anterior a la Versión 7 del FixPak 2 o para clientes de nivel inferior, la API sqlabndx si que comunica este aviso SQL1179W en el archivo de mensajes. Sin embargo, este archivo de mensajes incluye también de modo incorrecto un mensaje SQL0092N que indica que no se ha creado ningún paquete. Este mensaje no es correcto ya que el paquete ya se ha creado. El mandato BIND del Procesador de línea de mandatos devuelve el mismo aviso erróneo. ------------------------------------------------------------------------ 10.14 CALL La sintaxis para el mandato CALL debe aparecer del modo siguiente: .-,----------------. V | >>-CALL--nombre-proc---(-----+------------+--+---)------------->< '-argumento--' La descripción del parámetro argumento se ha cambiado por: Especifica uno o más argumentos para el procedimiento almacenado. Todos los parámetros de entrada y salida deben especificarse en el orden definido por el procedimiento. Los argumentos de salida se especifican utilizando el carácter "?". Por ejemplo, un procedimiento almacenado foo con un parámetro de entrada de tipo entero y un parámetro de salida se invoca como "call foo (4, ?)". Notas: 1. Cuando se invoca este programa de utilidad desde un indicador del sistema operativo, puede que sea necesario delimitar el mandato de la siguiente manera: "call DEPT_MEDIAN (51)" También se puede utilizar una marca de comillas simples ('). 2. El procedimiento almacenado al que se llama debe nombrarse exclusivamente en la base de datos. 3. El procedimiento almacenado debe catalogarse. Si se llama a un procedimiento no catalogado, se devuelve un mensaje de error DB21036. 4. Se devuelve un mensaje DB21101E si no se especifican suficientes parámetros en la línea de mandatos o si los parámetros de línea de mandatos no están en el orden correcto (entrada, salida), de acuerdo con la definición de procedimiento almacenado. 5. Existe un máximo de 1023 caracteres para una columna de resultados. 6. Los LOBS y los datos binarios (FOR BIT DATA, VARBINARY, LONGVARBINARY, GRAPHIC, VARGAPHIC o LONGVARGRAPHIC) no están soportados. 7. CALL da soporte a conjuntos de resultados. 8. Si se llama a un SP con una variable OUTPUT de un tipo no soportado, la llamada (CALL) falla y se devuelve el mensaje DB21036. 9. La longitud máxima para un parámetro de entrada (INPUT) para CALL es 1024. ------------------------------------------------------------------------ 10.15 DROP DATALINKS MANAGER (nuevo mandato) DROP DATALINKS MANAGER Descarta un DB2 Data Links Manager de la lista de DB2 Data Links Managers registrados para una base de datos especificada. Autorización Una de las siguientes: * sysadm * sysctrl * sysmaint Sintaxis del mandato >>-DROP DATALINKS MANAGER FOR----+-DATABASE-+--nombrebd---------> '-DB-------' >----USING---nombre-------------------------------------------->< Parámetros del mandato DATABASE nombredb Especifica un nombre de base de datos. USING nombre Especifica el nombre del servidor DB2 Data Links Manager tal como lo muestra el mandato LIST DATALINKS MANAGER. Ejemplos Ejemplo 1 Descartar un DB2 Data Links Manager micky.almaden.ibm.com de la base de datos TEST bajo la validación de instancia que reside en el sistema principal bramha.almaden.ibm.com cuando algunas tablas de base de datos tienen enlaces con micky.almaden.ibm.com. Es de vital importancia que se lleven a cabo los pasos siguientes cuando se descarte un DB2 Data Links Manager. 1. Realice una copia de seguridad de la base de datos TEST. 2. Si hay enlaces con micky.almaden.ibm.com, desenlácelos: a. Inicie una sesión con un ID de usuario que pertenezca a SYSADM_GROUP y obtenga una conexión de modalidad exclusiva con la base de datos TEST. connect to test in exclusive mode Asegúrese de que esta sea la única conexión que se deberá probar utilizando ese ID de usuario. Esto impedirá la creación de nuevos enlaces. b. Obtenga una lista de todas las columnas FILE LINK CONTROL DATALINK y las tablas que las contienen en la base de datos. select tabname, colname from syscat.columns where substr(dl_features, 2, 1) = 'F' c. Para cada columna FILE LINK CONTROL DATALINK de la lista, emita SQL SELECT para determinar si los enlaces con micky.almaden.ibm.com existen. Por ejemplo, para una columna c DATALINK en la tabla t, la sentencia SELECT sería: select count(*) from t where dlurlserver(t.c) = 'MICKY.ALMADEN.IBM.COM' d. Para cada columna FILE LINK CONTROL DATALINK que contenga dichos enlaces, emita SQL UPDATE para desenlazar los valores que sean enlaces con micky.almaden.ibm.com. Por ejemplo, para una columna c DATALINK en la tabla t, la sentencia UPDATE sería: update t set t.c = null where dlurlserver(t.c) = 'MICKY.ALMADEN.IBM.COM' Si t.c no puede ser nula, puede utilizarse lo siguiente en su lugar: update t set t.c = dlvalue('') where dlurlserver(t.c) = 'MICKY.ALMADEN.IBM.COM' e. Confirme este SQL UPDATE: commit 3. Emita el mandato DROP DATALINKS MANAGER: drop datalinks manager for db test using node micky.almaden.ibm.com 4. Interrumpa la conexión en modalidad exclusiva para hacer que los cambios surtan efecto y permitir otras conexiones con la base de datos: terminate 5. Inicie el proceso de desenlace y de recogida de desechos de información de copia de seguridad para TEST en micky.almaden.ibm.com. Como Administrador de DB2 Data Links Manager, emita el mandato siguiente en micky.almaden.ibm.com: dlfm drop_dlm test validate bramha.almaden.ibm.com Esto desenlazará los archivos que todavía estén enlazados a la base de datos TEST, por si el usuario ha olvidado desenlazarlos antes de invocar el paso 3. Si micky.almaden.ibm.com tiene información de copia de seguridad (por ejemplo, archivos de archivador, metadatos) para archivos previamente enlazados a la base de datos TEST, este mandato iniciará la recogida de desechos de dicha información. El desenlace y la recogida de desechos reales se realizaran asíncronamente. Ejemplo 2 Supresión de valores DATALINK que son enlaces a archivos de un DB2 Data Links Manager llamado micky.almaden.ibm.com, cuando el Manager ya se ha descartado de la base de datos TEST. Esto puede ser necesario si los pasos del Ejemplo 1 no se han seguido al descartar micky.almaden.ibm.com. Las sentencias SQL DELETE, SELECT y UPDATE no serán satisfactorias para dichos valores DATALINK (SQL0368). El usuario debe ejecutar una operación de reconciliación para cada tabla que contiene dichos valores DATALINK. Cada valor DATALINK que era un enlace con micky.almaden.ibm.com se actualizará a un valor NULL o DATALINK de longitud cero. Cualquier fila que contenga dicho valor se insertará en la tabla de excepción (si ésta se ha especificado). Sin embargo, el valor DATALINK no incluirá el nombre de prefijo. El nombre de prefijo del valor DATALINK original ya no puede ser obtenido por el sistema, puesto que se ha descartado micky.almaden.ibm.com. Por ejemplo, si el valor DATALINK original era 'http://host.com/dlfs/x/y/a.b' y '/dlfs' es el nombre de prefijo, el valor DATALINK de la tabla de excepción contendrá 'http://host.com/x/y/a.b'. Los archivos a los que hacen referencia estos valores DATALINK permanecerán en estado enlazado en el DB2 Data Links Manager. El mandato dlfm drop_dlm se puede emitir en micky.almaden.ibm.com para iniciar el proceso de desenlace para estos archivos. Si micky.almaden.ibm.com tiene información de copia de seguridad (por ejemplo, archivos de archivador, metadatos) para archivos previamente enlazados a la base de datos TEST, este mandato iniciará la recogida de desechos de dicha información. El desenlace y la recogida de desechos reales se realizaran asíncronamente. Ejemplo 3 Varias encarnaciones de un DB2 Data Links Manager micky.almaden.ibm.com para una base de datos TEST. Este marco hipotético demuestra que se puede volver a registrar un DB2 Data Links Manager después de ser descartado y que luego es tratado como un DB2 Data Links Manager completamente nuevo. Los pasos siguientes son sólo ilustrativos de un marco hipotético que es posible. Si, como se recomienda, se siguen los pasos del Ejemplo 1 para descartar micky.almaden.ibm.com, los enlaces con la encarnación antigua de micky.almaden.ibm.com no existirán; es decir, uno no verá el error SQL0368 del paso 7 que se encuentra más abajo. 1. Registre micky.almaden.ibm.com en la base de datos TEST: add datalinks manager for db test using node micky.almaden.ibm.com port 14578 2. Cree enlaces con archivos en micky.almaden.ibm.com: connect to test create table t(c1 int, c2 datalink linktype url file link control mode db2options) insert into t values(1, dlvalue('file://micky.almaden.ibm.com/pictures/yosemite.jpg')) commit terminate 3. Descarte micky.almaden.ibm.com de la base de datos TEST: drop datalinks manager for db test using micky.almaden.ibm.com 4. Seleccione los valores DATALINK: connect to test select * from t terminate El usuario verá: SQL0368 El DB2 Data Links Manager "MICKY.ALMADEN.IBM.COM" no está registrado en la base de datos. SQLSTATE=55022. 5. Registre micky.almaden.ibm.com de nuevo en la base de datos TEST: add datalinks manager for db test using node micky.almaden.ibm.com port 14578 6. Inserte más valores DATALINK: connect to test insert into t values(2, dlvalue('file://micky.almaden.ibm.com/pictures/tahoe.jpg')) commit 7. Seleccione los valores DATALINK: select c2 from t where c1 = 2 es satisfactorio porque el valor que se selecciona es un enlace con la encarnación registrada actualmente de micky.almaden.ibm.com. select c2 from t where c1 = 1 devuelve: SQL0368 El DB2 Data Links Manager "MICKY.ALMADEN.IBM.COM" no está registrado en la base de datos. SQLSTATE=55022. porque el valor que se selecciona es un enlace con la encarnación de micky.almaden.ibm.com que se ha descartado en el paso 3 anterior. Notas sobre uso Los efectos del mandato DROP DATALINKS MANAGER no se pueden retrotraer. Es muy importante seguir los pasos perfilados en el Ejemplo 1 cuando utilice el mandato DROP DATALINKS MANAGER. Este mandato es efectivo sólo después de haber desconectado todas las aplicaciones de la base de datos. Al completarse satisfactoriamente el mandato, se informa al usuario (DB210201I) de que no se ha realizado ningún proceso en el DB2 Data Links Manager. Antes de descartar un DB2 Data Links Manager, el usuario debe asegurarse de que la base de datos no tenga enlaces con archivos de dicho DB2 Data Links Manager. Si hay enlaces en la base de datos después de descartar un DB2 Data Links Manager, el usuario debe ejecutar el programa de utilidad de reconciliación para deshacerse de ellos. El programa de utilidad de reconciliación establecerá estos enlaces en NULL (si la columna DATALINK puede ser nula) o en un valor DATALINK de longitud cero. Los archivos correspondientes a enlaces entre una base de datos y un DB2 Data Links Manager descartado permanecen en estado enlazado. Es decir, no están accesibles para operaciones tales como lectura, grabación, renombrar, suprimir, cambio de permisos o cambio de propiedad. Las copias archivadas de archivos no enlazados en el DB2 Data Links Manager no serán recogidas por este mandato como desechos. Sin embargo, los usuarios pueden iniciar explícitamente el proceso de desenlace y la recogida de desechos utilizando el mandato dlfm drop_dlm en el DB2 Data Links Manager. Se recomienda la realización de una copia de seguridad de la base de datos antes de descartar un DB2 Data Links Manager. Además, asegúrese de que todos los abonos de duplicación han duplicado todos los cambios que implican a este DB2 Data Links Manager. Si se ha realizado una copia de seguridad antes de descartar el DB2 Data Links Manager de una base de datos y esta imagen de copia de seguridad se utiliza para la restauración después de descartar dicho DB2 Data Links Manager, el proceso de restauración o de recuperación de avance puede poner a ciertas tablas en estado pendiente de reconciliación de enlace de datos (DRP). ------------------------------------------------------------------------ 10.16 EXPORT En el apartado "Consideraciones sobre DB2 Data Links Manager", Paso 3 del procedimiento para asegurar que una copia coherente de la tabla y de los archivos correspondientes referidos por columnas DATALINK se copien para exportación: 3. Ejecute el programa de utilidad dlfm_export en cada servidor Data Links. La entrada para el programa de utilidad dlfm_export es el nombre de archivo de control, que se genera mediante el programa de utilidad. Esto produce un archivo tar (o equivalente) de los archivos listados dentro del archivo de control. Para Distributed File Systems (DFS), el programa de utilidad dlfm_export obtendrán las credenciales de root de la red DCE antes de archivar los archivos listados en el archivo de control. dlfm_export no captura la información de ACL de los archivos que ha archivado. En la misma sección, los puntos gruesos que siguen a "Resultados de ejecución satisfactoria de EXPORT en la generación de los archivos siguientes" debe modificarse del modo siguiente: La segunda frase del primer punto grueso debe ser: Un valor de la columna DATALINK de este archivo tiene el mismo formato que el que utilizan los programas de utilidad de importación y de carga. La primera frase del segundo punto grueso debe ser: Nombre_servidor de los archivos de control, que se generan para cada servidor Data Links. (En el sistema operativo Windows NT, todos los servidores Data Links utilizan un único archivo de control, ctrlfile.lst. Para DFS, existe un archivo de control para cada celda.) La frase siguiente debe añadirse al párrafo anterior a la Tabla 5: Para obtener más información sobre dlfm_export, consulte "Data Movement Utilities Guide and Reference" bajo "Using Export to move DB2 Data Links Manager Data". ------------------------------------------------------------------------ 10.17 GET DATABASE CONFIGURATION La descripción del parámetro de configuración DL_TIME_DROP debe cambiarse por la siguiente: Sólo se aplica al DB2 Data Links Manager. Este parámetro especifica el número de días que los archivos se deben retener en un servidor de archivar (como un servidor TSM) después de que se emita un mandato DROP DATABASE. Se añadirá el nuevo parámetro TRACKMOD al mandato GET DATABASE CONFIGURATION. La sintaxis tendrá el aspecto siguiente: >>-GET----+-DATABASE-+---+-CONFIGURATION-+--FOR-----------------> '-DB-------' +-CONFIG--------+ '-CFG-----------' .-NO--. >----alias-basedatos---TRACKMOD--+-YES-+----------------------->< Se añadirá la descripción del parámetro del modo siguiente: TRACKMOD Indica si DB2 debe realizar el seguimiento de las páginas modificadas de la base de datos para permitir la realización de copias de seguridad incrementales. OFF Especifica que no se debe realizar un seguimiento de las páginas cambiadas. Este es el valor por omisión para las bases de datos creadas anteriormente a la Versión 7.1, FixPak 3. ON Especifica que se debe realizar un seguimiento de las páginas cambiadas. Cuando se establece este parámetro, pueden realizarse copias incrementales de la base de datos. Este es el valor por omisión para las bases de datos creadas con la Versión 7.1, FixPak 3 o posterior. ------------------------------------------------------------------------ 10.18 GET ROUTINE (nuevo mandato) GET ROUTINE Recupera un archivo archivador de SQL (SAR) de rutina para una rutina de SQL especificada. Autorización dbadm Conexión necesaria Base de datos. Si se habilita la conexión implícita, se establece una conexión con la base de datos por omisión. Sintaxis del mandato >>-GET ROUTINE--INTO---file_name----FROM----+-----------+-------> '-SPECIFIC--' >-------PROCEDURE----routine_name------------------------------>< Parámetros del mandato INTO nombre-archivo Da nombre al archivo en el que se almacena el archivador de SQL (SAR) de rutina. FROM Indica el comienzo de la especificación de la rutina que ha de recuperarse. SPECIFIC El routine-name especificado se proporciona como nombre específico. PROCEDURE La rutina es un procedimiento de SQL. routine-name El nombre del procedimiento. Si se especifica SPECIFIC, ese es el nombre específico del procedimiento. Si el nombre no está calificado con un nombre de esquema, se utiliza CURRENT SCHEMA como nombre de esquema de la rutina. El nombre-rutina debe ser un procedimiento ya existente que esté definido como procedimiento de SQL. Ejemplos GET ROUTINE INTO procs/proc1.sar FROM PROCEDURE myappl.proc1; ------------------------------------------------------------------------ 10.19 GET SNAPSHOT La descripción para el parámetro FCM FOR ALL NODES debe aparecer del modo siguiente: Proporciona estadísticas de FCM (Fast Communication Manager) entre el nodo contra el que se ha emitido el mandato GET SNAPSHOT y los otros nodos de la instancia EEE. ------------------------------------------------------------------------ 10.20 IMPORT En el apartado "Consideraciones sobre DB2 Data Links Manager", debe añadirse la frase siguiente al Paso 3: Para Distributed File Systems (DFS), actualice la información de nombre de celda en las URL (de las columnas DATALINK) de los datos exportados para la tabla SQL, si es necesario. La frase siguiente debe añadirse al Paso 4: Para DFS, defina las celdas en la configuración de destino del archivo de configuración de DB2 Data Links Manager. El párrafo que sigue al Paso 4 debe ser: Cuando el programa de importación se ejecuta en la base de datos de destino, los archivos a los que se hace referencia en los datos de columna DATALINK se enlazan en los servidores Data Links apropiados. ------------------------------------------------------------------------ 10.21 LIST HISTORY Se añadirá el parámetro CREATE TABLESPACE al mandato LIST HISTORY. El diagrama de sintaxis tendrá el aspecto siguiente: >>-LIST HISTORY----+-------------------+------------------------> +-BACKUP------------+ +-ROLLFORWARD-------+ +-ALTER TABLESPACE--+ +-DROPPED TABLE-----+ +-LOAD--------------+ +-RENAME TABLESPACE-+ '-CREATE TABLESPACE-' >-----+-ALL-----------------------------------+-----------------> +-SINCE--indicación horaria-------------+ '-CONTAINING--+-_esquema.nombreobjeto-+-' '-_nombreobjeto---------' >----FOR--+----------+---alias-basedatos----------------------->< +-DATABASE-+ '-DB-------' Se añadirá la descripción del parámetro del modo siguiente: CREATE TABLESPACE Lista todas las operaciones CREATE TABLESPACE y DROP TABLESPACE. Las Notas sobre el uso se actualizarán del modo siguiente: Los símbolos siguientes se añadirán a la sección Funcionamiento del informe: * A - Crear espacio de tabla * O - Descartar espacio de tabla * U - Descargar Los símbolos bajo la sección Tipo del informe se reorganizarán del modo siguiente: * Tipos de copia de seguridad o F - Fuera de línea o N - En línea o I - Fuera de línea incremental o O - En línea incremental o D - Fuera de línea delta o E - En línea delta * Tipos de recuperación de avance o E - Fin de anotaciones cronológicas o P - Punto en el tiempo * Tipos de carga o I - Insertar o R - Sustituir * Tipos de modificación de espacio de tabla o C - Añadir contenedores o R - Reequilibrar * Tipos de inmovilización o S - Inmovilización compartida o U - Inmovilización actualizada o X - Inmovilización exclusiva o Z - Inmovilización restablecida ------------------------------------------------------------------------ 10.22 LOAD En la sección "Consideraciones sobre el DB2 Data Links Manager", añada la frase siguiente al Paso 1 del procedimiento que debe realizarse antes de invocar el programa de utilidad, si se están cargando datos en una tabla con una columna DATALINK definida con FILE LINK CONTROL: Para Distributed File Systems (DFS), asegúrese de que los DB2 Data Links Manager dentro de la celda de destino estén registrados. La frase siguiente debe añadirse al Paso 5: Para DFS, registre las celdas en la configuración de destino a la que hacen referencia los datos de DATALINK (que deben cargarse) en el archivo de configuración de DB2 Data Links Manager. En la sección "Representación de la información de DATALINK en un archivo de entrada", la primera nota después de la descripción del parámetro para urlname debe ser: Actualmente se permiten "http", "file", "unc" y "dfs" como nombre de esquema. La primera frase de la segunda nota debe ser: El prefijo (esquema, sistema principal y puerto) del nombre de URL es opcional. Para DFS, el prefijo hace referencia a la parte esquema nombrecelda unión-espacioarchivo. En los ejemplos de datos de DATALINK para el formato de archivo ASCII (DEL) delimitado y el formato de archivo ASCII (ASC) no delimitado, el tercer ejemplo debe eliminarse. Los ejemplos de datos de DATALINK en los que la especificación de carga o importación para la columna se supone que es DL_URL_DEFAULT_PREFIX deben eliminarse y sustituirse por los siguientes: A continuación se proporcionan los ejemplos de datos de DATALINK en los que la especificación de carga o importación para la columna se supone que es DL_URL_REPLACE_PREFIX ("http://qso"): * http://www.almaden.ibm.com/mrep/intro.mpeg Este URL de ejemplo se almacena con las partes siguientes: o esquema = http o servidor = qso o vía de acceso = /mrep/intro.mpeg o comentario = serie NULA * /u/me/myfile.ps Se almacena con las partes siguientes: o esquema = http o servidor = qso o vía de acceso = /u/me/myfile.ps o comentario = serie NULA ------------------------------------------------------------------------ 10.23 PING (nuevo mandato) PING Comprueba el tiempo de respuesta en la red de la conectividad subyacente entre un cliente y un servidor de bases de datos en el que se utiliza DB2 Connect para establecer la conexión. Autorización Ninguna Conexión necesaria Base de datos Sintaxis del mandato .-time-. .-1--+------+---------------------. >>-PING---alias_db----+-+-----------------------------+-+------>< '-número_de_veces--+-------+--' +-times-+ '-time--' Parámetros del mandato alias_bd Especifica el alias de base de datos para la base de datos de un servidor DRDA a la que se envía el ping. Nota: Este parámetro, aunque obligatorio, no se utiliza actualmente. Está reservado para su utilización en el futuro. Puede especificarse cualquier nombre de alias de base de datos. número de veces Especifica el número de iteraciones para esta comprobación. El valor debe estar entre 1 y 32767, ambos inclusive. El valor por omisión es 1. Se devolverá un número para cada iteración. Ejemplos Para comprobar el tiempo de respuesta en la red de la conexión al servidor de bases de datos principal hostdb una vez: db2 ping hostdb 1 o: db2 ping hostdb El mandato mostrará una salida parecida a la siguiente: Tiempo transcurrido: 7221 microsegundos Para comprobar el tiempo de respuesta en la red de la conexión al servidor de bases de datos principal hostdb 5 veces: db2 ping hostdb 5 o: db2 ping hostdb 5 times El mandato mostrará una salida parecida a la siguiente: Tiempo transcurrido: 8412 microsegundos Tiempo transcurrido: 11876 microsegundos Tiempo transcurrido: 7789 microsegundos Tiempo transcurrido: 10124 microsegundos Tiempo transcurrido: 10988 microsegundos Notas sobre uso Debe existir una conexión a la base de datos antes de llamar a este mandato. En caso contrario, se produce un error. El tiempo transcurrido que se devuelve hace referencia a la conexión entre el cliente y una base de datos del servidor de DRDA mediante DB2 Connect. ------------------------------------------------------------------------ 10.24 PUT ROUTINE (nuevo mandato) PUT ROUTINE Utiliza el archivo archivador de SQL (SAR) de la rutina especificada para definir una rutina en la base de datos. Autorización dbadm Conexión necesaria Base de datos. Si se habilita la conexión implícita, se establece una conexión con la base de datos por omisión. Sintaxis del mandato >>-PUT ROUTINE----FROM----nombre-archivo------------------------> >-----+---------------------------------------+---------------->< '-OWNER--new-owner--+----------------+--' '-USE REGISTERS--' Parámetros del mandato FROM nombre-archivo Da nombre al archivo en el que se almacena el archivador de SQL (SAR) de rutina. OWNER new-owner Especifica un authorization-name (nombre de autorización) nuevo para la rutina que se utilizará para la comprobación de autorizaciones de la rutina. El new_owner (propietario-nuevo) debe tener los privilegios necesarios para que se defina la rutina. Si no se especifica la cláusula OWNER, se utiliza el authorization-name (nombre de autorización) que definió originalmente la rutina. USE REGISTERS Indica que los registros especiales CURRENT SCHEMA y CURRENT PATH se utilizan para definir la rutina. Si no se especifica esta cláusula, los valores para el esquema por omisión y la vía de acceso de SQL son los valores que se utilizaron en el momento en que se definió originalmente la rutina. CURRENT SCHEMA se utiliza como nombre de esquema para nombres de objeto no calificados en la definición de rutina (incluyendo el nombre de la rutina) y CURRENT PATH se utiliza para resolver los tipos de datos y las rutinas no calificadas en la definición de rutinas. Ejemplos PUT ROUTINE FROM procs/proc1.sar; Notas sobre uso No puede instalarse más de un procedimiento de modo simultáneo bajo un determinado esquema. ------------------------------------------------------------------------ 10.25 RECONCILE Debe añadirse la siguiente nota sobre el uso a la descripción del mandato: Durante la reconciliación, se realizan intentos de enlazar archivos que existen de acuerdo con los datos de tabla, pero que no existen de acuerdo a los metadatos de Data Links Manager, si no hay ningún otro conflicto. Un DB2 Data Links Manager necesario es aquel que tiene un valor DATALINK referenciado en la tabla. La reconciliación tolera la no disponibilidad de un DB2 Data Links Manager necesario, así como también de los que están configurados en la base de datos pero no forman parte de los datos de tabla. Si no se especifica una tabla de excepción, el archivo de informe de excepción (nombrearchivo.exp) tendrá el nombre de sistema principal, nombre de archivo, ID de columna y código de razón para cada uno de los valores de columna DATALINK para los que no se han podido restablecer las referencias a archivos. Si la referencia a un archivo no se ha podido restablecer porque se ha descartado el DB2 Data Links Manager mismo de la base de datos utilizando el mandato DROP DATALINKS MANAGER, el nombre de archivo anotado en el archivo de informe de excepción no es el nombre de archivo completo; es decir, falta el prefijo. En la tabla de excepción para los valores DATALINK cuyo DB2 Data Links Manager se ha descartado o no está disponible, el nombre de archivo del valor DATALINK no es el nombre de archivo completo. Falta el prefijo. Por ejemplo, si el valor DATALINK original era 'http://host.com/dlfs/x/y/a.b', el valor anotado en la tabla de excepción será 'http://host.com/x/y/a.b'; es decir, el nombre del prefijo 'dlfs' no se incluirá. El archivo de informe de excepción en este caso tendrá 'x/y/a.b'; es decir, no se incluirá el nombre del prefijo 'dlfs'. Al final del proceso de reconciliación, se saca la tabla del estado pendiente de reconciliación de enlace de datos (DRP) sólo si el proceso de reconciliación se ha completado en todos los DB2 Data Links Managers necesarios. Si el proceso de reconciliación está pendiente en cualquiera de los DB2 Data Links Managers necesarios (porque no estaban disponibles), la tabla permanecerá, o se colocará, en estado DRP. Debe añadirse lo siguiente a la lista de violaciones posibles: 00010-El DB2 Data Links Manager referenciado por el valor DATALINK se ha descartado de la base de datos utilizando el mandato DROP DATALINKS MANAGER. En este caso, el valor DATALINK correspondiente de la tabla de excepción no contendrá el nombre de prefijo. Por ejemplo, si el valor DATALINK original era 'http://host.com/dlfs/prfx/x/y/a.b' y '/dlfs/prfx' es el nombre de prefijo, la tabla de excepción contendrá 'http://host.com/x/y/a.b'. ------------------------------------------------------------------------ 10.26 REORGANIZE TABLE Se añadirá la frase siguiente a las Notas sobre el uso: REORGANIZE TABLE no puede utilizar un índice que está basado en una extensión de índice. ------------------------------------------------------------------------ 10.27 RESTORE DATABASE 10.27.1 Sintaxis Se añadirá la opción siguiente a la sintaxis del mandato RESTORE DATABASE después de las opciones TABLESPACE/TABLESPACE ONLINE/HISTORY FILE: >>-+-------------------------+--------------------------------->< '-INCREMENTAL--+-------+--' '-ABORT-' Se añadirán las descripciones del parámetro del modo siguiente: INCREMENTAL Ocasiona una restauración cumulativa manual de la base de datos. El usuario emitirá cada uno de los mandatos de restauración. ABORT Este parámetro debe utilizarse para terminar una restauración incremental antes de la finalización de la misma. También se añadirán los ejemplos siguientes: A continuación se encuentra una estrategia de copia de seguridad incremental semanal de ejemplo con una base de datos recuperable. Se planifica una copia de seguridad completa una vez por semana, una delta cada día, además de una incremental a mediados de semana: (Sun) backup db kdr use adsm (Mon) backup db kdr online incremental delta use adsm (Tue) backup db kdr online incremental delta use adsm (Wed) backup db kdr online incremental use adsm (Thu) backup db kdr online incremental delta use adsm (Fri) backup db kdr online incremental delta use adsm (Sat) backup db kdr online incremental use adsm Para una restauración de base de datos manual de imágenes creadas anteriormente el Viernes por la mañana, emita los mandatos siguientes: restore db kdr incremental taken at (Thu) restore db kdr incremental taken at (Sun) restore db kdr incremental taken at (Wed) restore db kdr incremental taken at (Thu) Nota: Cualquier mandato RESTORE del formato db2 restore db realizará una restauración completa de la base de datos, independientemente de si la imagen que se restaura es una imagen de base de datos o una imagen de espacio de tabla. Cualquier mandato RESTORE del formato db2 restore db tablespace realizará una restauración de espacio de tabla de los espacios de tabla hallados en la imagen. Cualquier mandato RESTORE en el que se proporcione una lista de espacios de tabla realizará una restauración de los espacios de tabla que se listen de forma explícita. 10.27.2 Consideraciones sobre DB2 Data Links Manager El segundo párrafo de la sección titulada "Consideraciones sobre DB2 Data Links Manager", debe sustituirse por: Si se configuran uno o más servidores Data Links para la base de datos, la operación de restauración será satisfactoria, incluso si un servidor Data Links no está disponible. Cuando se reinicia el servidor Data Links, se completará el proceso de restauración en ese servidor Data Links antes de que se convierta de nuevo en disponible para la base de datos. NOTA: si una operación de restauración de base de datos todavía está esperando un servidor Data Links que no está disponible, las operaciones de restauración de base de datos o espacio de tabla subsiguientes serán anómalas. ------------------------------------------------------------------------ 10.28 ROLLFORWARD DATABASE El segundo párrafo de la sección titulada "Consideraciones sobre DB2 Data Links Manager", debe sustituirse por: Si se configuran uno o más servidores Data Links para la base de datos, la operación de recuperación de avance será satisfactoria, incluso si un servidor Data Links no está disponible. Cuando se reinicia el servidor Data Links, se completará el proceso de recuperación de avance en ese servidor Data Links antes de que se convierta de nuevo en disponible para la base de datos. ------------------------------------------------------------------------ 10.29 Error de la documentación sobre los códigos de retorno CLP En la sección Códigos de retorno del procesador de línea de mandatos del Capítulo 2, el segundo párrafo debe aparecer del modo siguiente: Por ejemplo, el siguiente script de shell Bourne ejecuta el mandato GET DATABASE MANAGER CONFIGURATION y luego examina el código de retorno de CLP: db2 get database manager configuration if [ "$?" = "0" ] then echo "OK!" fi ------------------------------------------------------------------------ Data Movement Utilities Guide and Reference ------------------------------------------------------------------------ 11.1 Capítulo 2. Importación 11.1.1 Utilización de la importación con inserciones en almacenamiento intermedio La nota que se encuentra al final de esta sección debe decir: Nota: En todos los entornos excepto EEE, la característica de inserciones en almacenamiento intermedio se inhabilita durante las operaciones de importación en las que se especifica el parámetro INSERT_UPDATE. ------------------------------------------------------------------------ 11.2 Capítulo 3. Carga 11.2.1 Estados de pendiente después de una operación de carga Las dos primeras frases del último párrafo de esta sección se han cambiado por las siguientes: El cuarto estado posible asociado al proceso de carga (estado pendiente de comprobación) está relacionado con las limitaciones referenciales y de comprobación, las limitaciones de DATALINKS, las limitaciones de AST o las limitaciones de columnas generadas. Por ejemplo, si una tabla existente es una tabla padre que contiene una clave primaria a la que hace referencia una clave foránea de una tabla dependiente, al sustituir datos en la tabla padre ambas tablas (no el espacio de tablas) se ponen en estado pendiente de comprobación. 11.2.2 Limitaciones y restricciones de carga Se aplican las restricciones siguientes a las columnas generadas y al programa de utilidad de carga: * No es posible cargar una tabla que tiene una columna generada en un índice exclusivo a menos que dicha columna sea una "columna de inclusión" del índice o se utilice el modificador de tipo de archivo generatedoverride. Si se utiliza este modificador, es de esperar que todos los valores para la columna se suministrarán en el archivo de datos de entrada. * No es posible cargar una tabla que tiene una columna generada en la clave de particionamiento a menos que se utilice el modificador de tipo de archivo generatedoverride. Si se utiliza este modificador, es de esperar que todos los valores para la columna se suministrarán en el archivo de datos de entrada. 11.2.3 Modificador de tipo de archivo totalfreespace El modificador de tipo de archivo totalfreespace (LOAD) se ha modificado para que acepte un valor entre 0 y 2 147 483 647. ------------------------------------------------------------------------ 11.3 Capítulo 4. AutoLoader 11.3.1 rexecd necesario para ejecutar AutoLoader cuando la autentificación se establece en YES En la sección Opciones de Autoloader se añadirá la nota siguiente a la descripción de los parámetros AUTHENTICATION y PASSWORD: En un entorno Linux, si se está ejecutando Autoloader con la opción de autentificación establecida en YES, rexecd debe habilitarse en todas las máquinas. Si rexecd no está habilitado, se generará el mensaje de error siguiente: openbreeze.torolab.ibm.com: Conexión rechazada SQL6554N Se ha producido un error al intentar ejecutar remotamente un proceso. Se generarán los siguientes mensajes de error en el archivo db2diag.log: 2000-10-11-13.04.16.832852 Instance:svtdbm Node:000 PID:19612(db2atld) Appid: oper_system_services sqloRemoteExec Probe:31 ------------------------------------------------------------------------ Replication Guide and Reference ------------------------------------------------------------------------ 12.1 Duplicación y servidores que no son IBM Para duplicar datos a o desde servidores no IBM tales como Informix, Microsoft SQL Server, Oracle, Sybase y Sybase SQL Anywhere, debe utilizar DataJoiner Versión 2 o posteriores. No puede utilizar la función de conexión relacional para este tipo de duplicación porque DB2 Relational Connect Versión 7 no tiene capacidad de actualización. Asimismo, debe utilizar DJRA (DataJoiner Replication Administration) para administrar una de estas duplicaciones heterogéneas en todas las plataformas (AS/400, OS/2, OS/390, UNIX y Windows) para todas las versiones existentes de DB2 y DataJoiner. ------------------------------------------------------------------------ 12.2 Duplicación en Windows 2000 DB2 DataPropagator Versión 7 es compatible con el sistema operativo Windows 2000. ------------------------------------------------------------------------ 12.3 Error conocido al guardar archivos de SQL Si utiliza el Centro de control de DB2 Connect Personal Edition, no puede guardar archivos de SQL. Si intenta guardar archivos de SQL, obtiene un mensaje de error que indica que el Servidor de administración de bases de datos (DAS) no está activo, cuando en realidad el DAS no está disponible porque no se suministra con DB2 Connect PE. ------------------------------------------------------------------------ 12.4 Mantenimiento de DB2 Se recomienda instalar el último nivel de mantenimiento de DB2 para los diversos productos DB2 que utilice en su entorno de duplicación. ------------------------------------------------------------------------ 12.5 Programa de utilidad de diferencia de datos en la Web No puede bajar el Programa de utilidad de diferencia de datos (DDU) de la Web de la dirección ftp://ftp.software.ibm.com/ps/products/datapropagator/fixes/. El DDU es un programa de utilidad de ejemplo que puede utilizar para comparar dos versiones del mismo archivo y generar un archivo de salida que muestre las diferencias. Consulte el archivo README que viene con el programa de utilidad de ejemplo para ver detalles. ------------------------------------------------------------------------ 12.6 Capítulo 3. Escenario de duplicación de datos 12.6.1 Escenarios de duplicación Consulte la página de biblioteca del sitio web de DataPropagator (http://www.ibm.com/software/data/dpropr/) para conseguir un escenario de duplicación de datos heterogéneo. Siga los pasos de este escenario para copiar las modificaciones desde una tabla fuente de duplicación de una base de datos Oracle en AIX a una tabla destino de una base de datos de DB2 para Windows NT. Este marco hipotético utiliza la herramienta DB2 DataJoiner Replication Administration (DJRA), desencadenantes de capturas, el programa Apply y DB2 DataJoiner. En la página 44 del manual, las instrucciones del paso 6 para crear un archivo de contraseña dicen lo siguiente: Paso 6: Creación de un archivo de contraseña Como el programa Apply necesita conectarse con el servidor fuente, debe crear un archivo de contraseña para la autentificación del usuario. Asegúrese de que el ID de usuario que ejecute el programa Apply pueda leer el archivo de contraseña. Para crear un archivo de contraseña: 1. Desde la ventana de solicitud de mandatos de Windows NT vaya al directorio C:\scripts. 2. Cree un archivo nuevo en este directorio que se llame DEPTQUAL.PWD. Puede crear este archivo utilizando cualquier editor de textos, como por ejemplo Notepad. El convenio de denominación para el archivo de contraseñas es applyqual.pwd; donde applyqual es una serie sensible a las mayúsculas que debe coincidir en mayúsculas/minúsculas y valor con el cualificador Apply que se utilice al crear el conjunto de suscripciones. Para este escenario, el cualificador de Apply es DEPTQUAL. Nota: También se da soporte al convenio de denominación de la versión 5 de DB2 DataPropagator. 3. El contenido del archivo de contraseña tiene el formato siguiente: SERVER=servidor USER=id_usuario PWD=contraseña Donde: servidor El nombre del servidor fuente, de destino o de control, exactamente tal como aparece en la tabla del conjunto de suscripciones. Para este escenario, estos nombres son SAMPLE y COPYDB. idusuario El ID de usuario que piensa utilizar para administrar esta base de datos en concreto. Este valor es sensible a mayúsculas para los sistemas operativos Windows NT y UNIX. contraseña La contraseña que está asociada con este ID de usuario. Este valor es sensible a mayúsculas para los sistemas operativos Windows NT y UNIX. No deje líneas en blanco ni líneas para comentarios en este archivo. Añada sólo el nombre del servidor, el ID de usuario y la información de la contraseña. 4. El contenido del archivo de contraseña debe ser algo así: SERVER=SAMPLE USER=subina PWD=subpw SERVER=COPYDB USER=subina PWD=subpw Para obtener más información acerca de la autentificación y seguridad en DB2, consulte la publicación IBM DB2 Administration Guide. ------------------------------------------------------------------------ 12.7 Capítulo 5. Planificación de la duplicación 12.7.1 Nombres de tabla y de columna La duplicación no da soporte a espacios en blanco en nombres de tabla y de columna. 12.7.2 Duplicación de DATALINK La duplicación DATALINK está disponible en Solaris como parte de la versión 7.1 FixPak 1. Necesita un daemon de FTP que se ejecute en el sistema de archivos DATALINK fuente y destino y da soporte al mandato MDTM (modtime), que visualiza la hora de la última modificación de un archivo determinado. Si utiliza la versión 2.6 del sistema operativo Solaris o cualquier otra versión que no incluya el soporte de FTP para MDTM, necesitará software adicional, como por ejemplo WU-FTPD. No se pueden duplicar columnas DATALINK entre bases de datos DB2 en bases de datos AS/400 y DB2 que se encuentran en otras plataformas. En la plataforma AS/400, no hay soporte de duplicación del atributo "comment" de los valores DATALINK. Si está ejecutando AIX 4.2, antes de ejecutar el programa de salida de usuario por omisión (ASNDLCOPY) debe instalar el PTF para el APAR IY03101 (AIX 4210-06 RECOMMENDED MAINTENANCE FOR AIX 4.2.1). Este PTF contiene un arreglo Y2K para el mandato "modtime/MDTM" en el daemon FTP. Para verificar el arreglo, compruebe la hora de la última modificación devuelta por el mandato "modtime ", en que es un archivo modificado después del 1 de enero de 2000. Si la tabla de destino es una tabla CCD externa, DB2 DataPropagator llama a la rutina ASNDLCOPY para duplicar archivos DATALINK. Para conocer la información más reciente sobre la utilización de los programas ASNDLCOPY y ASNDLCOPYD, consulte el prólogo del código fuente de cada programa. Se aplican las limitaciones siguientes: * Las tablas CCD internas pueden contener indicadores DATALINK, pero no valores DATALINK. * Las tablas CCD externas condensadas pueden contener valores DATALINK. * Las tablas de destino CCD no condensadas no pueden contener ninguna columna DATALINK. * Cuando los servidores fuente y destino son el mismo, el conjunto de suscripciones no debe contener ningún miembro con columnas DATALINK. 12.7.3 Restricciones de LOB Las tablas CCD internas condensadas no pueden contener referencias a columnas LOB ni a indicadores LOB. 12.7.4 Planificación de la duplicación En la página 65, "Conectividad" debe incluir el hecho siguiente: Si el programa Apply no puede conectar con el servidor de control, el programa Apply termina. Cuando utilice bloqueo de datos para AS/400, debe asegurarse de que la cantidad total de datos a duplicar durante el intervalo no exceda de "4 millones de filas", y no de "4 MB" tal como se indica en la página 69 de la publicación. ------------------------------------------------------------------------ 12.8 Capítulo 6. Configuración del entorno de duplicación 12.8.1 Requisito previo a una actualización en cualquier parte (update-anywhere) Si desea configurar una duplicación de actualización en cualquier parte (update-anywhere) con detección de conflictos y más de 150 miembros abonados en un conjunto de abonados, debe ejecutar el DDL siguiente para crear la tabla ASN.IBMSNAP_COMPENSATE en el servidor de control: CREATE TABLE ASN.IBMSNAP_COMPENSATE ( APPLY_QUAL char(18) NOT NULL, MEMBER SMALLINT, INTENTSEQ CHAR(10) FOR BIT DATA, OPERATION CHAR(1)); 12.8.2 Configuración del entorno de duplicación En la página 95, "Personalización de los nombres de espacio de tabla, índice y tabla de CD" se indica que el archivo DPREPL.DFT se encuentra en el directorio \sqllib\bin o en el directorio \sqllib\java. Esto es incorrecto, DPREPL.DFT está en el directorio \sqllib\cc. En la página 128, la descripción del límite de retención debería indicar que el límite de retención se utiliza para recortar filas sólo cuando Capture se inicia en caliente o cuando utiliza el mandato prune de Capture. Si ha iniciado Capture con la opción de recorte automático, no utilizará el límite de retención para recortar filas. ------------------------------------------------------------------------ 12.9 Capítulo 8. Determinación de problemas El Replication Analyzer se ejecuta en sistemas Windows de 32 bits y AIX. Para ejecutar el Analyzer en AIX, asegúrese de que el directorio sqllib/bin aparece delante de /usr/local/bin en la variable de entorno PATH para evitar conflictos con /usr/local/bin/analyze. El Replication Analyzer tiene dos palabras clave opcionales adicionales: CT y AT. CT=n Mostrar únicamente aquellas entradas de la tabla de rastreo de Capture cuya antigüedad es inferior a n días. Esta palabra clave es opcional. Si no se especifica, el valor por omisión es de 7 días. AT=n Mostrar únicamente aquellas entradas de la tabla de seguimiento de Apply cuya antigüedad es inferior a n días. Esta palabra clave es opcional. Si no se especifica, el valor por omisión es de 7 días. Ejemplo: analyze mydb1 mydb2 f=mydirectory ct=4 at=2 deepcheck q=applyqual1 Para el Replication Analyzer, se actualiza la información de palabras clave siguiente: deepcheck Especifica que el Analyzer realiza un análisis más completo, incluyendo la información siguiente: información de poda de tablas CD y UOW, detalles de compresión y particionamiento de espacios de tablas de DB2 para OS/390, análisis de índices de destino con respecto a errores en sentencias SQL establecidas para tablas de suscripción, líneas de tiempo de suscripción y suscripciones. El análisis incluye a todos los servidores. Esta palabra clave es opcional. lightcheck Especifica que se excluirá del informe la información siguiente: detalles de todas las columnas de la tabla ASN.IBMSNAP_SUBS_COLS, errores de suscripción o anomalías y omisiones, e índices incorrectos o ineficaces. Esta reducción en la información ahorra recursos y produce un archivo de salida HTML más pequeño. Esta palabra clave es opcional y mutuamente exclusiva con la palabra clave deepcheck. Se dispone de herramientas del Analyzer en los PTF para duplicación en plataformas AS/400. Estas herramientas recopilan información sobre el entorno de duplicación y producen un archivo HTML que se puede enviar al representante del servicio IBM para ayudar en la determinación de problemas. Para obtener las herramientas de AS/400, baje el PTF adecuado (por ejemplo, para el producto 5769DP2 se debe bajar el PTF SF61798 o su versión más reciente). Añada el problema y la solución siguiente al apartado "Resolución de problemas": Problema: El programa Apply entra en un bucle con los cambios efectuados en la duplicación; la tabla de seguimiento de Apply indica STATUS=2. El conjunto de suscripciones incluye varias tablas fuente. Para mejorar el manejo de zonas activas para una de las tablas fuente del conjunto, se define una tabla CCD interna para dicha tabla fuente, pero en otro conjunto de suscripciones. Las actualizaciones se realizan sobre la tabla fuente, pero el proceso Apply que llena la tabla CCD interna se ejecuta de forma asíncrona (por ejemplo, es posible que no se haya iniciado el programa Apply o que no se haya desencadenado un suceso, etc.). El programa Apply que duplica actualizaciones de la tabla fuente en la tabla de destino entra en un bucle porque está esperando a que se actualice la tabla CCD interna. Para detener el bucle, inicie el programa Apply (o desencadene el suceso que ocasiona la duplicación) para la tabla CCD interna. El programa Apply llenará la tabla CCD interna y permitirá que el programa Apply que está en un bucle procese los cambios de todas las tablas fuente. Se puede producir una situación parecida para un conjunto de suscripciones que contenga tablas fuente con tablas CCD internas que se llenen mediante varios programas Apply. ------------------------------------------------------------------------ 12.10 Capítulo 9. Capture y Apply para AS/400 En la página 178, "Nota sobre la gestión de trabajos" debe decir: Puede alterar las definiciones por omisión o proporcionar las suyas propias. Si crea su propia descripción de subsistema, debe denominar el subsistema QZSNDPR y crearlo en una biblioteca distinta de QDPR. Para obtener más información sobre cómo cambiar estas definiciones, consulte la publicación "OS/400 Work Management V4R3", SC41-5306. Añada la información siguiente a la página 178, "Verificación y personalización de la instalación de DB2 DataPropagator para AS/400": Si tiene problemas con la contención del bloqueo debido a un gran volumen de transacciones, puede aumentar el valor de tiempo de espera por omisión pasándolo de 30 a 120. Puede cambiar el trabajo cada vez que se inicie el trabajo Capture o puede utilizar el procedimiento siguiente para cambiar el tiempo de espera por omisión para todos los trabajos que se ejecuten en el subsistema: 1. Emita el mandato siguiente para crear un nuevo objeto de clase duplicando QGPL/QBATCH: CRTDUPOBJ OBJ(QBATCH) FROMLIB(QGPL) OBJTYPE(*CLS) TOLIB(QDPR) NEWOBJ(QZSNDPR) 2. Cambie el valor de tiempo de espera para la clase recién creada (por ejemplo, por 300 segundos): CHGCLS CLS(QDPR/QZSNDPR) DFTWAIT(300) 3. Actualice la entrada de direccionamiento en la descripción de subsistema QDPR/QZSNDPR para utilizar la clase recién creada: CHGRTGE SBSD(QDPR/QZSNDPR) SEQNBR(9999) CLS(QDPR/QZSNDPR) En la página 194, "Utilización de la rutina de salida de supresión del receptor de diario", se debería incluir esta frase: Si ha eliminado el registro de la rutina de salida de supresión del receptor de diario, asegúrese de que todos los diarios utilizados para tablas fuente tienen DLTRCV(*NO). En la página 195, los parámetros del mandato ADDEXITPGM deben decir: ADDEXITPGM EXITPNT(QIBM_QJO_DLT_JRNRCV) FORMAT(DRCV0100) PGM(QDPR/QZSNDREP) PGMNBR(*LOW) CRTEXITPNT(*NO) PGMDTA(65535 10 QSYS) ------------------------------------------------------------------------ 12.11 Capítulo 10. Capture y Apply para OS/390 En el Capítulo 10, se han actualizado los siguientes párrafos: 12.11.1 Requisitos previos para DB2 DataPropagator para OS/390 Debe tener DB2 para OS/390 Versión 5, DB2 para OS/390 Versión 6 o DB2 para OS/390 Versión 7 para poder ejecutar DB2 DataPropagator para OS/390 Versión 7 (V7). 12.11.2 Esquemas de codificación UNICODE y ASCII en OS/390 DB2 DataPropagator para OS/390 V7 da soporte a los esquemas de codificación UNICODE y ASCII. Para aprovechar los nuevos esquemas de codificación, debe tener DB2 para OS/390 V7 y debe crear o convertir de forma manual la fuente, el destino y las tablas de control de DB2 DataPropagator tal como se describe en las siguientes secciones. Sin embargo, el entorno de duplicación existente funcionará con DB2 DataPropagator para OS/390 V7 aunque no modifique ningún esquema de codificación. 12.11.2.1 Elección de un esquema de codificación Si sus tablas fuente, CD y destino utilizan el mismo esquema de codificación, puede minimizar la necesidad de convertir datos en su entorno de duplicación. Cuando elija esquemas de codificación para las tablas, siga la única regla de CCSID: los datos de caracteres de un espacio de tabla se pueden modificar en ASCII, UNICODE o EBCDIC. Todas las tablas de un espacio de tabla deben utilizar el mismo esquema de codificación. El esquema de codificación de todas las tablas de una sentencia de SQL debe ser el mismo. Además, todas las tablas que utilice en vistas y uniones deben utilizar el mismo esquema de codificación. Si no sigue la única regla de CCSID, DB2 detectará la violación y devolverá SQLCODE -873 durante la vinculación o ejecución. Qué tablas deben estar en ASCII o UNICODE depende de la configuración de cliente/servidor. En concreto, siga estas reglas cuando elija los esquemas de codificación para tablas: * Las tablas fuente o destino en DB2 para OS/390 pueden estar en EBCDIC, ASCII o UNICODE. Se pueden copiar de tablas o en tablas que tengan el mismo u otro esquema de codificación en cualquier DBMS soportado (familia DB2 o no DB2 con DataJoiner). * En un servidor fuente DB2 para OS/390, todas las tablas CD, UOW, de registros y de control de recortes del mismo servidor deben utilizar el mismo esquema de codificación. Para asegurar esta coherencia, especifique siempre el esquema de codificación de forma explícita. * Todas las tablas de control (ASN.IBMSNAP_SUBS_xxxx) del mismo servidor de control deben utilizar el mismo esquema de codificación. * Otras tablas de control pueden utilizar cualquier esquema de codificación; sin embargo, se recomienda que la tabla ASN.IBMSNAP_CRITSEC permanezca en EBCDIC. 12.11.2.2 Establecimiento de esquemas de codificación Para especificar el esquema de codificación adecuado para tablas, modifique el SQL que se utiliza para generar las tablas: * Cree nuevas tablas fuente o destino con el esquema de codificación adecuado o cambie los esquemas de codificación de las tablas destino y fuente existentes. Se recomienda detener los programas Capture y Apply antes de cambiar el esquema de codificación de tablas existentes; después puede iniciar en frío el programa Capture y reiniciar el programa Apply. Para cambiar el esquema de codificación de tablas existentes: 1. Utilice el programa de utilidad Reorg para copiar la tabla existente. 2. Elimine la tabla existente. 3. Vuelva a crear la tabla especificando el nuevo esquema de codificación. 4. Utilice el programa de utilidad Load para cargar los datos antiguos en la nueva tabla. Consulte el manual DB2 Universal Database for OS/390 Utility Guide and Reference para obtener más información sobre los programas de utilidad Load y Reorg. * Cree nuevas tablas de control con el esquema de codificación adecuado o modifique el esquema de codificación correspondiente a las existentes. DPCNTL.MVS se suministra con DB2 para OS/390 en sqllib\samples\repl y contiene varias sentencias CREATE TABLE que crean los archivos de control. Para las tablas que tienen que estar en ASCII o UNICODE (por ejemplo, ASN.IBMSNAP_REGISTER y ASN.IBMSNAP_PRUNCNTL), añada el teclado CCSID ASCII o CCSID UNICODE, tal como se muestra en el ejemplo siguiente. CREATE TABLE ASN.IBMSNAP_PRUNCNTL ( TARGET_SERVER CHAR( 18) NOT NULL, TARGET_OWNER CHAR( 18) NOT NULL, TARGET_TABLE CHAR( 18) NOT NULL, SYNCHTIME TIMESTAMP, SYNCHPOINT CHAR( 10) FOR BIT DATA, SOURCE_OWNER CHAR( 18) NOT NULL, SOURCE_TABLE CHAR( 18) NOT NULL, SOURCE_VIEW_QUAL SMALLINT NOT NULL, APPLY_QUAL CHAR( 18) NOT NULL, SET_NAME CHAR( 18) NOT NULL, CNTL_SERVER CHAR( 18) NOT NULL, TARGET_STRUCTURE SMALLINT NOT NULL, CNTL_ALIAS CHAR( 8) ) CCSID UNICODE DATA CAPTURE CHANGES IN TSSNAP02; Para modificar las tablas de control o las tablas CD existentes, utilice los programas de utilidad Reorg y Load. * Cuando cree nuevas fuentes de duplicación o grupos de suscripciones, modifique el archivo SQL generado por la herramienta de administrador para especificar el esquema de codificación adecuado. El SQL tiene varias sentencias CREATE TABLE que sirven para crear las tablas de CD y destino para la fuente de duplicación y el grupo de suscripciones, respectivamente. Añada el teclado CCSID ASCII o CCSID UNICODE cuando sea necesario. Por ejemplo: CREATE TABLE user1.cdtable1 ( employee_name varchar, employee_age decimal ) CCSID UNICODE; El manual DB2 UDB para OS/390 Consulta de SQL contiene más información sobre CCSID. ------------------------------------------------------------------------ 12.12 Capítulo 11. Capture y Apply para plataformas UNIX 12.12.1 Establecimiento de variables de entorno para Capture y Apply en UNIX y Windows Si ha creado la base de datos fuente con una página de códigos que no corresponde con el valor de página de códigos por omisión, establezca la variable de entorno DB2CODEPAGE en dicha página de códigos. Consulte el manual DB2 Administration Guide para obtener información sobre cómo obtener valores de páginas de códigos antes de establecer DB2CODEPAGE. Capture se debe ejecutar en la misma página de códigos que la base de datos para la que está capturando datos. DB2 obtiene la página de códigos de Capture a partir del entorno activo en el que se está ejecutando Capture. Si la variable de entorno DB2CODEPAGE no está establecida, DB2 obtiene el valor de página de códigos a partir del sistema operativo. El valor que se obtiene del sistema operativo es correcto para Capture si ha utilizado la página de códigos por omisión al crear la base de datos. ------------------------------------------------------------------------ 12.13 Capítulo 14. Estructuras de tabla En la página 339, añada la sentencia siguiente a la descripción de la columna STATUS para el valor "2": Si utiliza tablas CCD internas y obtiene repetidamente un valor de "2" en la columna de estado de la tabla de seguimiento de Apply, diríjase al "Capítulo 8: Determinación de problemas" y consulte el "Problema: El programa Apply entra en bucle sin cambios de duplicación, la tabla de seguimiento de Apply muestra STATUS=2". ------------------------------------------------------------------------ 12.14 Capítulo 15. Mensajes de Capture y Apply El mensaje ASN0017E debería decir: ASN0017E El programa Capture ha encontrado un error interno grave y no ha podido emitir el mensaje de error correcto. El nombre de la rutina es "rutina". El código de retorno es "código_retorno". Se debe añadir el mensaje ASN1027S: ASN1027S Se han especificado demasiadas columnas de objetos grandes (LOB). El código de error es "". Explicación: Se han especificado demasiadas columnas de objetos grandes (BLOB, CLOB o DBCLOB) para un miembro de un grupo de suscripciones. El número máximo de columnas permitido es 10. Respuesta del usuario: Elimine las columnas de objetos grandes sobrantes del miembro del grupo de suscripciones. El mensaje ASN1048E debe decir lo siguiente: ASN1048E Ha fallado la ejecución de un ciclo de Apply. Consulte la tabla de seguimiento de Apply para ver más detalles: "" Explicación: Ha fallado un ciclo de Apply. En el mensaje "" se identifica "", "" y "". Respuesta del usuario: Compruebe los campos APPERRM de la tabla de seguimiento de auditoría para determinar por qué ha fallado el ciclo de Apply. ------------------------------------------------------------------------ 12.15 Apéndice A. Inicio de los programas Capture y Apply desde dentro de una aplicación En la página 399 de la publicación, aparecen algunos errores en los comentarios de la rutina de ejemplo que inicia los programas Capture y Apply; sin embargo, el código del ejemplo es correcto. La última parte del ejemplo hace referencia a los parámetros de Apply, a pesar del hecho de que los comentarios indican que hace referencia a los parámetros de Capture. Puede obtener ejemplos de la API de Apply y Capture, así como de los makefiles respectivos, en los directorios siguientes: Para NT - sqllib\samples\repl Para UNIX - sqllib/samples/repl ------------------------------------------------------------------------ System Monitor Guide and Reference ------------------------------------------------------------------------ 13.1 db2ConvMonStream En las Notas de uso, la estructura del tipo de corriente de datos variable instantánea SQLM_ELM_SUBSECTION debe ser sqlm_subsección. ------------------------------------------------------------------------ Troubleshooting Guide ------------------------------------------------------------------------ 14.1 Inicio de DB2 en Windows 95, Windows 98 y Windows ME cuando el usuario no tiene iniciada una sesión Para que un mandato db2start se ejecute satisfactoriamente en un entorno Windows 95, Windows 98 o Windows Millenium Edition (ME), debe: * Iniciar una sesión utilizando la ventana de inicio de sesión de Windows o la ventana de inicio de sesión de Microsoft Networking * Emita el mandato db2logon (vea la nota (NOTE_1) para obtener información sobre el mandato db2logon). Además, el ID de usuario que se especifique durante el inicio de sesión o para el mandato db2logon se debe ajustar a los requisitos de DB2 (vea la nota (NOTA2)). Cuando se inicia el mandato db2start, en primer lugar comprueba si el usuario tiene iniciada una sesión. Si la tiene iniciada, el mandato db2start utiliza el ID de dicho usuario. Si no la tiene iniciada, el mandato db2start comprueba si se ha ejecutado un mandato db2logon y, de ser así, el mandato db2start utiliza el ID de usuario que se ha especificado para el mandato db2logon. Si el mandato db2start no puede encontrar un ID de usuario válido, el mandato termina. Durante la instalación de DB2 Universal Database Versión 7 en Windows 95, Windows 98 y Windows ME, el software de instalación, por omisión, añade un atajo a la carpeta Arranque que ejecuta el mandato db2start cuando se arranca el sistema (vea la nota (NOTE_1) si desea obtener más información). Si el usuario del sistema no tiene iniciada una sesión ni ha emitido el mandato db2logon, el mandato db2start se interrumpirá. Si usted o sus usuarios no inician normalmente sesiones con Windows o con una red, puede ocultar el requisito de que se emita el mandato db2logon antes que un mandato db2start ejecutando desde un archivo de proceso por lotes, tal como sigue: 1. Cree un archivo de proceso por lotes que emita el mandato db2logon seguido del mandato db2start.exe. Por ejemplo: @echo off db2logon db2local /p:contraseña db2start cls exit 2. Asigne al archivo de proceso por lotes el nombre db2start.bat y almacénelo en el directorio /bin que se encuentra bajo la unidad y vía de acceso en que ha instalado DB2. El archivo de proceso por lotes se almacena en esta ubicación para asegurarse de que el sistema operativo pueda encontrar la vía de acceso al archivo. La unidad y vía de acceso en que se ha instalado DB2 están almacenadas en la variable de registro DB2PATH de DB2. Para averiguar la unidad y vía de acceso en que se ha instalado DB2, emita el mandato siguiente: db2set -g db2path Suponga que el mandato db2set devuelve el valor c:\sqllib. En este caso, almacenará el archivo de proceso por lotes de la manera siguiente: c:\sqllib\bin\db2start.bat 3. Para iniciar DB2 cuando se arranque el sistema, debe ejecutar el archivo de proceso por lotes desde un atajo de la carpeta Arranque. Tiene dos posibilidades: o Modificar el atajo creado por el programa de instalación de DB2 para ejecutar el archivo de proceso por lotes en lugar de db2start.exe. En el ejemplo precedente, el atajo ejecutaría ahora el archivo de proceso por lotes db2start.bat. El atajo creado por el programa de instalación de DB2 tiene por nombre DB2 - DB2.lnk y, en la mayoría de sistemas, está ubicado en c:\WINDOWS\Menú Inicio\Programas\Inicio\DB2 - DB2.lnk. o Añada su propio atajo para ejecutar el archivo de proceso por lotes y suprima el atajo añadido por el programa de instalación de DB2. Utilice el mandato siguiente para suprimir el atajo de DB2: del "C:\WINDOWS\Menú Inicio\Programas\Arranque\DB2 - DB2.lnk" Si decide utilizar su propio atajo, debe establecer el atributo close on exit para el atajo. Si no lo establece, el indicador de mandatos de DOS se queda en la barra de tareas aún después de que el mandato db2start se haya completado satisfactoriamente. Para evitar que la ventana de DOS se abra durante el proceso de db2start, puede crear este atajo (y la ventana de DOS en la que se ejecuta) de forma que se ejecute minimizado. Nota: Como alternativa a iniciar DB2 durante el arranque del sistema, se puede iniciar DB2 antes de ejecutar cualquier aplicación que utilice DB2. Para conocer más detalles, vea la nota (NOTA5). Si utiliza un archivo de proceso por lotes para emitir el mandato db2logon antes de que se ejecute el mandato db2start, y si los usuarios inician sesiones ocasionalmente, el mandato db2start seguirá funcionando, con la única diferencia de que DB2 utilizará el ID de usuario del usuario que ha iniciado una sesión. Para conocer más detalles, vea la nota (NOTE_1). Notas: 1. El mandato db2logon simula un inicio de sesión de un usuario. El formato del mandato db2logon es: db2logon idusuario /p:contraseña El ID de usuario que se especifique para el mandato se debe ajustar a los requisitos de denominación de DB2 (para obtener más información, vea la nota (NOTA2)). Si se emite el mandato sin ID de usuario y contraseña, se abre una ventana para solicitar al usuario esta información. Si el único parámetro que se proporciona es un ID de usuario, no se solicita la contraseña al usuario; en determinadas condiciones se requiere una contraseña, tal como se describe más adelante. Los valores de ID de usuario y contraseña establecidos por el mandato db2logon sólo se utilizan si el usuario no ha iniciado una sesión utilizando la ventana de inicio de sesión de Windows ni la ventana de inicio de sesión de Microsoft Networking. Si el usuario ha iniciado una sesión y se ha emitido un mandato db2logon, se utiliza el ID de usuario del mandato db2logon para todas las acciones de DB2, pero se ignora la contraseña especificada en el mandato db2logon. Si el usuario no ha iniciado una sesión utilizando la ventana de inicio de sesión de Windows ni la ventana de inicio de sesión de Microsoft Networking, se utilizan el ID de usuario y la contraseña proporcionados mediante el mandato db2logon, de la manera siguiente: o El mandato db2start utiliza el ID de usuario al iniciarse y no necesita contraseña. o En ausencia de un calificador de alto nivel para acciones tales como crear una tabla, se utiliza el ID de usuario como calificador de alto nivel. Por ejemplo: 1. Si emite el mandato siguiente: db2logon db2local 2. Emita también el siguiente: create table tab1 La tabla se crea con un calificador de alto nivel como db2local.tab1. Debe utilizar un ID de usuario que sea igual al nombre de esquema de las tablas y otros objetos. o Cuando el sistema actúa como cliente de un servidor, y el usuario emite una sentencia CONNECT sin ID de usuario ni contraseña (por ejemplo, CONNECT TO TEST) y la autentificación se establece en servidor, se utilizan el ID de usuario y la contraseña del mandato db2logon para validar el usuario en el servidor remoto. Si el usuario se conecta con un ID de usuario y una contraseña explícitos (por ejemplo, CONNECT TO TEST USER IDusuario USING contraseña), se utilizan los valores especificados para la sentencia CONNECT. 2. En la Versión 7, el ID de usuario que se utiliza para iniciar sesiones o que se especifica para el mandato db2logon se debe ajustar a los siguientes requisitos de DB2: o No puede ser ninguno de los siguientes: USERS, ADMINS, GUESTS, PUBLIC, LOCAL o cualquier palabra reservada de SQL que esté listada en la publicación Consulta de SQL. o No puede empezar por: SQL, SYS ni IBM o Los caracteres pueden incluir: + De la A a la Z (Windows 95, Windows 98 y Windows ME dan soporte a los ID de usuario sensibles a mayúsculas y minúsculas). + Del 0 al 9 + @, # o $ 3. Puede evitar la creación del atajo de db2start en la carpeta Arranque durante una instalación interactiva personalizada o, si está realizando una instalación mediante archivo de respuestas, si especifica la opción DB2.AUTOSTART=NO. Si utiliza estas opciones, no existirá ningún atajo de db2start en la carpeta Arranque y deberá añadir su propio atajo para ejecutar el archivo db2start.bat. 4. En Windows 98 y Windows ME, se dispone de una opción que se puede utilizar para especificar un ID de usuario con el que se inicie una sesión siempre que se arranque Windows 98 o Windows ME. En este caso, no aparecerá la ventana de inicio de sesión de Windows. Si utiliza esta opción, se iniciará una sesión de un usuario y el mandato db2start se ejecutará satisfactoriamente si el ID de usuario se ajusta a los requisitos de DB2 (vea más detalles en la nota (NOTA2)). Si no utiliza esta opción, siempre se presentará al usuario una ventana de inicio de sesión. Si el usuario cancela esta ventana sin iniciar una sesión, el mandato db2start fallará a menos que previamente se haya emitido el mandato db2logon o se le haya invocado desde el archivo de proceso por lotes, tal como se ha descrito anteriormente. 5. Si no se inicia DB2 durante un arranque del sistema, lo puede iniciar una aplicación. Puede ejecutar el archivo db2start.bat formando parte de la inicialización de aplicaciones que utilizan DB2. Utilizando este método, sólo se iniciará DB2 cuando se inicie la aplicación que lo va a utilizar. Cuando el usuario sale de la aplicación, se puede emitir un mandato db2stop para detener DB2. Las aplicaciones comerciales pueden iniciar DB2 de esta manera, en caso de que no se inicie DB2 durante el arranque del sistema. Para utilizar la aplicación DB2 Synchronizer o llamar a las API de sincronización desde la aplicación, se debe iniciar DB2 si los scripts que se bajen para ejecutarlos contienen mandatos que funcionan con una instancia local o una base de datos local. Estos mandatos pueden estar en los scripts de la base de datos, en los scripts de la instancia o incorporados en los scripts del sistema operativo (OS). Si un script del OS no contiene mandatos de Procesador de línea de mandatos ni ninguna API de DB2 que utilicen una instancia o una base de datos, se puede ejecutar sin que se inicie DB2. Debido a la posible dificultad de saber por adelantado qué mandatos se ejecutarán desde los scripts durante el proceso de sincronización, normalmente se iniciará DB2 antes de que comience la sincronización. Si llama al mandato db2sync o a las API de sincronización desde la aplicación, deberá iniciar DB2 durante la inicialización de la aplicación. Si los usuarios van a utilizar el atajo de DB2 Synchronizer en la carpeta DB2 para Windows para comenzar la sincronización, el atajo de DB2 Synchronization se debe modificar de forma que ejecute un archivo db2sync.bat. El archivo de proceso por lotes debe contener los mandatos siguientes para asegurarse de que DB2 esté en ejecución antes de que empiece la sincronización: @echo off db2start.bat db2sync.exe db2stop.exe cls exit En este ejemplo, se supone que el archivo db2start.bat invoca a los mandatos db2logon y db2start descritos anteriormente. Si decide iniciar DB2 cuando se inicie la aplicación, cerciórese de que la instalación de DB2 no añade ningún atajo para iniciar DB2 a la carpeta Arranque. Para conocer más detalles, vea la nota (NOTA3). ------------------------------------------------------------------------ 14.2 Capítulo 2. Resolución de problemas de DB2 Universal Database Server Bajo la sección "Bloqueo y puntos muertos", en la subsección "Aplicaciones lentas o que parece que se han bloqueado", se debe cambiar la descripción que aparece bajo "Las esperas de bloqueo o los puntos muertos no se deben al bloqueo de la siguiente clave" por: Bloqueo siguiente clave garantiza un nivel de aislamiento de Lectura repetible (RR) al bloquear automáticamente la siguiente clave para todas las sentencias INSERT y DELETE y el siguiente valor de clave más alto que esté por encima del grupo de resultados para sentencias SELECT. Para sentencias UPDATE que modifiquen partes de clave de un índice, la clave del índice original se suprime y se inserta el nuevo valor de clave. El bloqueo de siguiente clave se realiza en la inserción de clave y en la supresión de clave. Esto es necesario para garantizar RR estándar de ANSI y SQL92 y es el valor por omisión de DB2. Examine la información de instantánea correspondiente a la aplicación. Si el problema parece encontrarse con el bloqueo de siguiente clave, puede activar la opción DB2_RR_TO_RS si ninguna de las aplicaciones confía en el comportamiento de Lectura repetible (RR) y se acepta que las exploraciones se salten las supresiones no confirmadas. Cuando DB2_RR_TO_RS está activado, el comportamiento RR no se puede garantizar para exploraciones en tablas de usuarios porque el bloqueo de siguiente clave no se realiza durante la inserción y supresión de clave de índice. Las tablas de catálogo no se ven afectadas por esta opción. El otro cambio en el comportamiento es que, cuando DB2_RR_TO_RS está activado, las exploraciones se saltan las filas que se han suprimido pero no se han confirmado, aunque la fila se haya cualificado para la exploración. Por ejemplo, supongamos que tenemos un escenario en el que la transacción A suprime la fila con column1=10 y la transacción B realiza una exploración donde column1>8 y column1<12. Con DB2_RR_TO_RS desactivado, la transacción B esperará a que la transacción A se confirme o retrotraiga. Si se retrotrae, la fila con column1=10 se incluirá en el grupo de resultados de la consulta de la transacción B. Con DB2_RR_TO_RS activado, la transacción B no esperará a que la transacción A se confirme o retrotraiga. Recibirá inmediatamente los resultados de la consulta que no incluyan la fila suprimida. No utilice esta opción si necesita RR estándar ANSI y SQL92 o si no desea que las exploraciones se salten las supresiones no confirmadas. ------------------------------------------------------------------------ Utilización de DB2 Universal Database en plataformas de 64 bits ------------------------------------------------------------------------ 15.1 Capítulo 5. Configuración 15.1.1 LOCKLIST Debe añadirse la información siguiente a la Tabla 2. Parámetro Límite superior anterior Límite superior actual LOCKLIST 60000 524288 15.1.2 shmsys:shminfo_shmmax Los usuarios de DB2 en el sistema operativo Solaris de 64 bits deberían aumentar el valor de "shmsys:shminfo_shmmax" en /etc/system, si es necesario, para poder asignar un conjunto grande de memoria compartida de la base de datos. El manual DB2 para UNIX Guía rápida de iniciación recomienda establecer este parámetro en el "90% de la RAM física de la máquina, en bytes". Esta recomendación también es válida para implementaciones de 64 bits. Sin embargo, existe un problema con la recomendación siguiente en el manual DB2 para UNIX Guía rápida de iniciación: Para los sistemas de 32 bits con más de 4 GB de RAM (es posible un máximo de 64 GB en total en el sistema operativo Solaris), si un usuario establecer el valor shmmax en un número mayor que 4 GB y utiliza un kernel de 32 bits, el kernel sólo mira los 32 bits inferiores del número, lo que a veces comporta un valor para shmmax muy pequeño. ------------------------------------------------------------------------ 15.2 Capítulo 6. Restricciones Actualmente no se proporciona soporte a LDAP en sistemas operativos de 64 bits. No pueden crearse bases de datos de 32 bits y de 64 bits en la misma vía de acceso. Por ejemplo, si existe una base de datos de 32 bits en , entonces: db2 create db on si se emite desde una instancia de 64 bits, se produce un error: "SQL10004C Se ha producido un error de E/S al acceder al directorio de la base de datos". ------------------------------------------------------------------------ Administración y programación del expansor de XML Encontrará las Notas sobre el release correspondientes a IBM DB2 XML Extender en el siguiente sitio Web de DB2 XML: http://www-4.ibm.com/software/data/db2/extenders/xmlext/library.html ------------------------------------------------------------------------ MQSeries Esta sección describe cómo se pueden utilizar DB2 y MQSeries para crear aplicaciones que combinen gestión de mensajes y acceso a bases de datos. Esta sección se centra en una serie de funciones, parecidas a Funciones definidas por el usuario (UDF), que se pueden habilitar opcionalmente en DB2 Universal Database, Versión 7.2. Utilizando estas funciones básicas, se puede dar soporte a una amplia gama de aplicaciones, desde una simple notificación de suceso a almacén de datos. Para obtener más información sobre aplicaciones de almacén de datos, consulte el tema 22.15, Integración de MQSeries con el Centro de depósito de datos ------------------------------------------------------------------------ 17.1 Instalación y configuración de DB2 MQSeries Functions Esta sección describe cómo configurar un entorno de DB2 para que utilice DB2 MQSeries Functions. Una vez realizado satisfactoriamente el siguiente procedimiento, podrá utilizar DB2 MQSeries Functions desde dentro de SQL. Encontrará una descripción de estas funciones en la sección Consulta de SQL de las Notas del release. Encontrará información adicional, que incluye la documentación más actualizada, consejos y sugerencias, en la dirección http://www.ibm.com/software/data/integration/MQSeries. El procedimiento básico para configurar y habilitar DB2 MQSeries Functions es: 1. Instalar MQSeries. 2. Instalar AMI de MQSeries. 3. Habilitar y configurar DB2 MQSeries Functions. Además, para poder utilizar las funciones de publicación y suscripción que suministra DB2 MQSeries Functions, también debe instalar MQSeries Integrator o las funciones de publicación y suscripción de MQSeries. Encontrará información sobre MQSeries Integrator en http://www.ibm.com/software/ts/mqseries/integrator. Encontrará información sobre la característica de publicación y suscripción de MQSeries en http://www.ibm.com/software/ts/mqseries/txppacs bajo la categoría 3. 17.1.1 Instalación de MQSeries El primer paso es asegurarse de que MQSeries Versión 5.2 está correctamente instalado en el servidor de DB2. Si esta versión de MQSeries ya está instalada, vaya al paso siguiente, "Instalación de AMI de MQSeries". DB2 Versión 7.2 incluye una copia del servidor de MQSeries que se va a utilizar con DB2. Encontrará instrucciones específicas para instalar MQSeries o para actualizar una instalación existente de MQSeries en el manual Guía rápida de iniciación de una plataforma específica en http://www.ibm.com/software/ts/mqseries/library/manuals. Asegúrese de configurar un gestor de colas por omisión a medida que avanza por el proceso de instalación. 17.1.2 Instalación de AMI de MQSeries El siguiente paso es instalar la Interfaz de gestión de mensajes de aplicaciones (AMI) de MQSeries. Es una extensión de las interfaces de programación de MQSeries que ofrece una separación clara de las tareas administrativas y de programación. Para poder utilizar DB2 MQSeries Functions hay que instalar esta interfaz. Si la AMI de MQSeries ya está instalada en el servidor de DB2, vaya al paso siguiente, "Habilitación de DB2 MQSeries Functions". Si la AMI de MQSeries no está instalada, puede hacerlo desde el paquete de instalación que se suministra con DB2 7.2 o bajando una copia de la AMI del sitio web MQSeries Support Pacs en http://www.ibm.com/software/ts/mqseries/txppacs. La AMI se encuentra bajo "Category 3 - Product Extensions". Para su comodidad, suministramos una copia de la AMI de MQSeries con DB2. Este archivo se encuentra en el directorio sqllib/cfg. El nombre del archivo depende del sistema operativo: AIX Versión 4.3 y superiores ma0f_ax.tar.Z HP-UX ma0f_hp.tar.Z Entorno operativo Solaris ma0f_sol7.tar.Z Windows de 32 bits ma0f_nt.zip Siga el proceso normal de instalación de la AMI que se describe en el archivo readme de la AMI contenido en la imagen de instalación comprimida. 17.1.3 Habilitación de DB2 MQSeries Functions Durante este paso, configurará y habilitará una base de datos para DB2 MQSeries Functions. El programa de utilidad enable_MQFunctions es un mandato flexible que en primer lugar comprueba que se ha configurado el entorno de MQSeries adecuado y luego instala y crea una configuración por omisión para DB2 MQSeries Functions, habilita la base de datos especificada con estas funciones y confirma que la configuración funciona. 1. Para Windows NT o Windows 2000, vaya al paso 5. 2. Definición de grupos en UNIX: si está habilitando estas funciones en UNIX, primero debe añadir el propietario de la instancia de DB2 (que suele ser db2inst1) y el id de usuario asociado a las UDF protegidas (que suele ser db2fenc1) al grupo de MQSeries mqm. Esto es necesario para que las funciones de DB2 puedan acceder a MQSeries. 3. Defina variables de entorno de DB2 en UNIX: añada la variable de entorno AMT_DATA_PATH a la lista que DB2 comprende. Puede editar el archivo $INSTHOME/sqllib/profile.env y añadir AMT_DATA_PATH a DB2ENVLIST. También se puede utilizar el mandato db2set. 4. En UNIX, vuelva a iniciar la instancia de la base de datos; para que los cambios en variables de entorno entren en vigor, se debe volver a iniciar la instancia de la base de datos. 5. Cambie al directorio $INSTHOME/sqllib/cfg para UNIX o %DB2PATH%/cfg en Windows. 6. Ejecute el mandato enable_MQFunctions para configurar y habilitar una base de datos para DB2 MQSeries Functions. Consulte 17.6, enable_MQFunctions para ver una descripción completa de este mandato. A continuación se muestran algunos ejemplos comunes. Tras finalizar satisfactoriamente esta tarea, la base de datos especificada se habrá habilitado y la configuración se habrá probado. 7. Para probar estas funciones utilizando el Procesador de línea de mandatos, emita los siguientes mandatos después de establecer conexión con la base de datos habilitada: values DB2MQ.MQSEND('a test') values DB2MQ.MQRECEIVE() La primera sentencia enviará el mensaje "a test" a la cola DB2MQ_DEFAULT_Q y la segunda lo volverá a recibir. Nota: Como resultado de ejecutar enable_MQFunctions, se establecerá un entorno de MQSeries por omisión. Se crearán el gestor de colas de MQSeries DB2MQ_DEFAULT_MQM y la cola por omisión DB2MQ_DEFAULT_Q. Los archivos amt.xml, amthost.xml y amt.dtd se crearán si aún no existen en el directorio al que apunta AMT_DATA_PATH. Si no existe un archivo amthost.xml y no contiene una definición para connectionDB2MQ, se añadirá una línea al archivo con la información adecuada. Se guardará una copia del archivo original como DB2MQSAVE.amthost.xml. ------------------------------------------------------------------------ 17.2 Estilos de gestión de mensajes de MQSeries DB2 MQSeries Functions da soporte a tres modelos de gestión de mensajes: datagramas, publicación y suscripción (p/s) y petición y respuesta (r/r). Los mensajes que se envían como datagramas se envían a un solo destino y no se espera respuesta. En el modelo p/s, uno o más publicadores envían un mensaje a un servicio de publicación que distribuye el mensaje a uno o más suscriptores. El modelo de petición y respuesta es parecido al de datagrama, pero el que envía el mensaje espera recibir una respuesta. ------------------------------------------------------------------------ 17.3 Estructura de mensajes MQSeries no obliga a utilizar ninguna estructura determinada de los mensajes que transporta. Otros productos, como MQSeries Integrator (MQSI), ofrecen soporte a mensajes formados como C o Cobol o como series XML. Los mensajes estructurados en MQSI se definen mediante un repositorio de mensajes. Los mensajes XML suelen tener una estructura de mensaje autoexplicativa y se pueden gestionar a través de un repositorio. Los mensajes también pueden no estar estructurados y necesitar un código de usuario para analizar o construir el contenido del mensaje. Estos mensajes suelen estar semiestructurados, es decir, utilizan posiciones de bytes o delimitadores fijos para separar los campos dentro de un mensaje. MQSeries Assist Wizard ofrece soporte para estos mensajes semiestructurados. Se ofrece soporte para mensajes XML a través de alguna características nuevas de DB2 XML Extender. ------------------------------------------------------------------------ 17.4 Visión general funcional de MQSeries Con DB2 UDB Versión 7.2 se ofrecen un grupo de funciones de MQSeries que permiten que las sentencias de SQL incluyan operaciones de gestión de mensajes. Esto significa que este soporte está disponible para las aplicaciones escritas en cualquier lenguaje soportado, por ejemplo C, Java, SQL utilizando cualquiera de las interfaces de bases de datos. Todos los ejemplos que se muestran a continuación están en SQL. Este SQL se puede utilizar desde otros lenguajes de programación de todas las formas estándares. Todos los estilos de gestión de mensajes de MQSeries descritos anteriormente reciben soporte. Para obtener más información sobre funciones de MQSeries, consulte la sección Consulta de SQL de las Notas del release. En una configuración básica, hay un servidor de MQSeries situado en la máquina servidor de bases de datos junto con DB2. Las funciones de MQSeries se instalan en DB2 y ofrecen acceso al servidor de MQSeries. Los clientes DB2 pueden estar en cualquier máquina a la que pueda acceder el servidor de DB2. Varios clientes pueden acceder simultáneamente a las funciones de MQSeries a través de la base de datos. Mediante las funciones suministradas, los clientes de DB2 pueden realizar operaciones de gestión de mensajes dentro de sentencias de SQL. Estas operaciones de gestión de mensajes permiten que las aplicaciones de DB2 se comuniquen entre sí o con otras aplicaciones de MQSeries. El mandato enable_MQFunctions sirve para habilitar una base de datos de DB2 para las funciones de MQSeries. Establecerá automáticamente una configuración sencilla por omisión que pueden utilizar las aplicaciones de clientes sin realizar ninguna acción administrativa adicional. Para ver una descripción, consulte enable_MQFunctions y disable_MQFunctions. La configuración por omisión ofrece a los programadores de aplicaciones un método rápido de comenzar y una interfaz sencilla para el desarrollo. Se pueden ir configurando de forma incrementan funciones adicionales a medida que se necesitan. Ejemplo 1: para enviar un mensaje sencillo utilizando la configuración por omisión, la sentencia de SQL sería la siguiente: VALUES DB2MQ.MQSEND('simple message') Esta sentencia enviará el mensaje simple message al gestor de colas de MQSeries y a la cola especificada por la configuración por omisión. La Interfaz de gestión de aplicaciones (AMI) de MQSeries ofrece una separación clara entre acciones de gestión de mensajes y las definiciones que indican cómo se deben llevar a cabo estas acciones. Estas definiciones se mantienen en un archivo de repositorio externo y se gestionan mediante la herramienta de administración de AMI. Esto facilita el desarrollo y el mantenimiento de las aplicaciones AMI. Las funciones de MQSeries que se suministran con DB2 se basan en la interfaz AMI de MQSeries. AMI da soporte al uso de un archivo de configuración externo, denominado Repositorio de AMI, para almacenar la información de configuración. La configuración por omisión incluye un Repositorio de AMI de MQSeries configurado para que se utilice con DB2. Hay dos conceptos de la AMI de MQSeries, puntos de servicio y políticas, que se transfieren en DB2 MQSeries Functions. Un punto de servicio es un punto final lógico desde el que se envía o en el que se recibe un mensaje. En el repositorio de AMI, cada punto de servicio se define con un nombre de cola de MQSeries y un gestor de colas. Las políticas definen las opciones de calidad de servicio que se deben utilizar para una determinada operación de gestión de mensajes. Las calidades clave de servicio incluyen prioridad y permanencia del mensaje. Se ofrecen puntos de servicio y definiciones de políticas por omisión que pueden utilizar los programadores para simplificar sus aplicaciones. El ejemplo 1 se puede reescribir del siguiente modo para especificar de forma explícita el nombre de política y punto de servicio por omisión: Ejemplo 2: VALUES DB2MQ.MQSEND('DB2.DEFAULT.SERVICE', 'DB2.DEFAULT.POLICY', 'simple message') Una o más aplicaciones pueden dar servicio a colas en el servidor en el que residen las colas y aplicaciones. En muchas configuraciones se definen varias colas para dar soporte a distintas aplicaciones y diferentes objetivos. Por este motivo, suele ser importante definir diferentes puntos de servicio cuando se realizan peticiones de MQSeries. Esto se demuestra en el siguiente ejemplo: Ejemplo 3: VALUES DB2MQ.MQSEND('ODS_Input', 'simple message') Nota: En este ejemplo, no se especifica ninguna política, por lo que se utilizará la política por omisión. 17.4.1 Limitaciones MQSeries ofrece la posibilidad de combinar operaciones de mensajes y operaciones de bases de datos en una sola unidad de trabajo como una transacción atómica. Esta característica inicialmente no recibe soporte de MQSeries Functions en Unix y Windows. Cuando se utilizan las funciones de envío y recepción, la longitud máxima de un mensaje es de 4000 caracteres. Este también es el tamaño máximo de mensaje para publicar un mensaje mediante MQPublish. 17.4.2 Códigos de error Los códigos de retorno que devuelve MQSeries Functions se encuentran en el Apéndice B del manual de la Interfaz de gestión de mensajes de aplicaciones de MQSeries. ------------------------------------------------------------------------ 17.5 Escenarios de aplicación MQSeries Functions se puede utilizar en una amplia variedad de escenarios. En esta sección se revisan algunos de los escenarios más comunes, que incluyen Gestión básica de mensajes, Conectividad de aplicaciones y Publicación de datos. 17.5.1 Gestión básica de mensajes La forma más básica de gestión de mensajes con MQSeries DB2 Functions se produce cuando todas las aplicaciones de bases de datos se conectan al mismo servidor de DB2. Los clientes pueden ser locales al servidor de bases de datos o pueden estar distribuidos en un entorno de red. En un escenario sencillo, el Cliente A invoca la función MQSEND para enviar una serie definida por el usuario a la ubicación de servicio por omisión. Luego las funciones de MQSeries se ejecutan dentro de DB2 en el servidor de bases de datos. Luego, el Cliente B invoca la función MQRECEIVE para eliminar el mensaje que hay al principio de la cola definida por el servicio por omisión y devolverlo al cliente. De nuevo, DB2 ejecuta las funciones de MQSeries que realizan esta tarea. Los clientes de bases de datos pueden utilizar la gestión sencilla de mensajes de varias formas. Algunas aplicaciones comunes de la gestión de mensajes son: * Recopilación de datos -- La información se recibe en forma de mensajes procedentes de una o más fuentes de información. Las fuentes de información pueden ser aplicaciones comerciales, como SAP, o aplicaciones desarrolladas por la empresa. Estos datos se pueden recibir de colas y almacenar en tablas de bases de datos para su futuro proceso y análisis. * Distribución de cargas de trabajo -- Las peticiones de trabajo se colocan en una cola compartida por varias instancias de la misma aplicación. Cuando una instancia está lista para realizar trabajo, recibe un mensaje del principio de la cola que contiene una petición de trabajo a realizar. Utilizando esta técnica, varias instancias pueden compartir la carga de trabajo representada por una sola cola de peticiones agrupadas. * Señalización de aplicaciones -- En una situación en la que colaboran varios procesos, se suelen utilizar mensajes para coordinar los esfuerzos. Estos mensajes pueden contener mandatos o peticiones de trabajo a realizar. Normalmente, este tipo de señalización es de una dirección; es decir, la parte que inicia el mensaje no espera una respuesta. Consulte el tema 17.5.4.1, Comunicaciones tipo petición y respuesta para obtener más información. * Notificación de aplicación -- La notificación es parecida a la señalización en que se envían datos de un iniciador sin que espere una respuesta. Sin embargo, normalmente las notificaciones contienen datos sobre los sucesos comerciales que han tenido lugar. 17.5.4.2, Publicación y suscripción constituye una forma más avanzada de notificación. El siguiente escenario amplía el escenario sencillo descrito anteriormente para incorporar la gestión remota de mensajes. Es decir, se envía un mensaje entre la Máquina A y la Máquina B. La secuencia de pasos es la siguiente: 1. El Cliente DB2 ejecuta una llamada a MQSEND, especificando un servicio de destino que se ha definido para representar una cola remota en la Máquina B. 2. MQSeries DB2 Functions realizan el trabajo real de MQSeries para enviar el mensaje. El servidor de MQSeries de la Máquina A acepta el mensaje y garantiza que lo distribuirá en su destino, definido por la definición del punto de servicio y por la configuración actual de MQSeries en la Máquina A. El servidor determina que se trata de una cola de la Máquina B. Luego intenta distribuir el mensaje al servidor de MQSeries de la Máquina B, reintentándolo de forma transparente tantas veces como son necesarias. 3. El servidor de MQSeries de la Máquina B acepta el mensaje procedente del servidor de la Máquina A y lo coloca en la cola de destino de la Máquina B. 4. Un cliente de MQSeries de la Máquina B solicita el mensaje que hay al principio de la cola. 17.5.2 Envío de mensajes Mediante MQSEND, un programador o usuario de DB2 elige los datos que desea enviar y dónde los desea enviar y se enviarán. En la industria esto se suele denominar "Enviar y olvidarse", que significa que el remitente se limita a enviar un mensaje, confiando en los protocolos de distribución garantizados de MQSeries para asegurar que el mensaje alcanza su destino. Los siguientes ejemplos lo ilustran. Ejemplo 4: Para enviar una serie definida por el usuario al punto de servicio myplace con la política highPriority: VALUES DB2MQ.MQSEND('myplace','highPriority','test') Aquí, la política highPriority hace referencia a una política definida en el Repositorio de AMI que establece la prioridad de MQSeries como la de más alto nivel y quizás ajuste otras calidades de servicio, como permanencia. El contenido del mensaje puede estar compuesto por cualquier combinación válida de datos específicos de usuario y SQL. Esto incluye funciones anidadas, operadores y conversiones. Por ejemplo, dada una tabla EMPLOYEE, con las columnas VARCHAR LASTNAME, FIRSTNAME y DEPARTMENT, para enviar un mensaje que contenga esta información a cada empleado de DEPARTMENT 5LGA debería hacer lo siguiente: Ejemplo 5: SELECT DB2MQ.MQSEND(LASTNAME || ' ' || FIRSTNAME || ' ' || DEPARTMENT) FROM EMPLOYEE WHERE DEPARTMENT = '5LGA' Si esta tabla también tuviera una columna AGE de enteros, se incluiría del siguiente modo: Ejemplo 6: SELECT DB2MQ.MQSEND(LASTNAME || ' ' || FIRSTNAME || ' ' || DEPARTMENT|| ' ' || char(AGE)) FROM EMPLOYEE WHERE DEPARTMENT = '5LGA' Finalmente, el siguiente ejemplo muestra cómo el contenido del mensaje se puede obtener mediante cualquier expresión de SQL válida. Dada una segunda tabla DEPT que contiene las columnas varchar DEPT_NO y DEPT_NAME, se pueden enviar mensajes que contengan LASTNAME y DEPT_NAME de los empleados: Ejemplo 7: SELECT DB2MQ.MQSEND(e.LASTNAME || ' ' || d.DEPTNAME) FROM EMPLOYEE e, DEPT d WHERE e.DEPARTMENT = d.DEPTNAME 17.5.3 Recuperación de mensajes MQSeries DB2 Functions permite recibir o leer mensajes. La diferencia entre leer y recibir es que al leer se devuelve el mensaje al principio de una cola sin eliminarlo de la misma, mientras que la operación de recibirlo hace que el mensaje se elimine de la cola. Un mensaje recuperado mediante una operación de recepción sólo se puede recuperar una vez, mientras que un mensaje recuperado mediante una operación de lectura permite recuperar el mismo mensaje varias veces. Los siguientes ejemplos lo demuestran: Ejemplo 8: VALUES DB2MQ.MQREAD() Este ejemplo devuelve una serie VARCHAR que contiene el mensaje que hay al principio de la cola definida por el servicio por omisión utilizando la política de calidad de servicio por omisión. Es importante observar que si no hay ningún mensaje disponible para su lectura, se devuelve un valor nulo. Esta operación no modifica la cola. Ejemplo 9: VALUES DB2MQ.MQRECEIVE('Employee_Changes') El ejemplo anterior muestra cómo se puede eliminar un mensaje del principio de la cola definida por el servicio Employee_Changes utilizando la política por omisión. Una característica muy potente de DB2 es la posibilidad de generar una tabla a partir de una función definida por el usuario (o suministrada por DB2). Puede aprovechar esta característica de función de tablas para permitir que el contenido de una cola se materialice como una tabla de DB2. El ejemplo siguiente muestra la forma más sencilla de esta función: Ejemplo 10: SELECT t.* FROM table ( DB2MQ.MQREADALL()) t Esa consulta devuelve una tabla que consta de todos los mensajes de la cola definida por el servicio por omisión y los metadatos sobre estos mensajes. Aunque la definición completa de la estructura de la tabla devuelta se define en el Apéndice, la primera columna refleja el contenido del mensaje y las demás columnas contienen los metadatos. Para devolver únicamente los mensajes, se podría reescribir el ejemplo: Ejemplo 11: SELECT t.MSG FROM table (DB2MQ.MQREADALL()) t La tabla que devuelve una función de tabla no difiere de una tabla recuperada directamente de la base de datos. Esto significa que puede utilizar esta tabla de varias formas. Por ejemplo, puede unir el contenido de la tabla con otra tabla o contar el número de mensajes de una cola: Ejemplo 12: SELECT t.MSG, e.LASTNAME FROM table (DB2MQ.MQREADALL() ) t, EMPLOYEE e WHERE t.MSG = e.LASTNAME Ejemplo 13: SELECT COUNT(*) FROM table (DB2MQ.MQREADALL()) t También puede ocultar el hecho de que la fuente de la tabla es una consulta, creando una vista sobre una función de tabla. Por ejemplo, el siguiente ejemplo crea una vista denominada NEW_EMP sobre la cola a la que hace referencia el servicio denominado NEW_EMPLOYEES: Ejemplo 14: CREATE VIEW NEW_EMP (msg) AS SELECT t.msg FROM table (DB2MQ.MQREADALL()) t En este caso, la vista se define con una sola columna que contiene un mensaje entero. Si los mensajes tienen una estructura simple, por ejemplo contienen dos campos de longitud fija, es más sencillo utilizar las funciones incorporadas de DB2 para analizar el mensaje en las dos columnas. Por ejemplo, si sabe que los mensajes que se envían a una determinada cola siempre contienen un apellido de 18 caracteres seguido de un nombre de 18 caracteres, puede definir una vista que contenga cada campo como una columna separada, del siguiente modo: Ejemplo 15: CREATE VIEW NEW_EMP2 AS SELECT left(t.msg,18) AS LNAME, right(t.msg,18) AS FNAME FROM table(DB2MQ.MQREADALL()) t Una nueva característica de DB2 Stored Procedure Builder, MQSeries Assist Wizard, permite crear nuevas funciones y vistas de tablas de DB2 que correlacionarán estructuras delimitadas de mensajes con columnas. Finalmente, suele resultar útil almacenar el contenido de uno o más mensajes en la base de datos. Esto se puede conseguir utilizando toda la potencia de SQL para manipular y almacenar contenido de mensajes. Quizás el ejemplo más sencillo es el siguiente: Ejemplo 16: INSERT INTO MESSAGES SELECT t.msg FROM table (DB2MQ.MQRECEIVEALL()) t Dada una tabla MESSAGES, con una sola columna de VARCHAR(2000), la sentencia anterior insertará los mensajes de la cola del servicio por omisión en la tabla. Esta técnica se puede mejorar para cubrir una amplia variedad de circunstancias. 17.5.4 Conectividad de aplicación a aplicación La integración de aplicaciones es un elemento común de muchas soluciones. Tanto si se integra una aplicación adquirida en una infraestructura existente como si se integra una aplicación recientemente desarrollada en un entorno existente, generalmente nos enfrentamos a la tarea de combinar un grupo heterogéneo de subsistemas para que funcionen conjuntamente. MQSeries se suele considerar la herramienta esencial para integrar aplicaciones. MQSeries, al que se puede acceder desde la mayoría de entornos de hardware, software y lenguajes, ofrece los métodos para interconectar un grupo muy heterogéneo de aplicaciones. Esta sección trata algunos escenarios de integración de aplicaciones y cómo se pueden utilizar con DB2. Puesto que el tema es muy amplio, el tratamiento de la integración de aplicaciones queda fuera del ámbito de este manual. Por lo tanto, nos centraremos en dos temas sencillos: las comunicaciones tipo petición y respuesta y MQSeries Integrator y publicación y suscripción. 17.5.4.1 Comunicaciones tipo petición y respuesta El método de comunicaciones de petición y respuesta (R/R) es una técnica muy común para que una aplicación solicite los servicios de otra. Un modo de hacerlo es que el peticionario envíe un mensaje al proveedor de servicio solicitando que realice un trabajo. Una vez realizado el trabajo, el proveedor puede decidir enviar los resultados (o simplemente una confirmación de que se ha realizado el trabajo) al peticionario. Pero utilizando las técnicas básicas de gestión de mensajes descritas anteriormente, no hay nada que conecte la petición del remitente con la respuesta del proveedor de servicio. A no ser que el peticionario espere una respuesta antes de continuar, se deben utilizar algunos mecanismos para asociar cada respuesta con su petición. En lugar de hacer que el programador cree dicho mecanismo, MQSeries ofrece un id de correlación que permite la correlación de mensajes de un intercambio. Aunque este mecanismo se puede utilizar de varias formas, el modo más sencillo consiste en que el peticionario marque un mensaje con un identificador de correlación conocido utilizando, por ejemplo, la siguiente sentencia: Ejemplo 17: DB2MQ.MQSEND ('myRequester','myPolicy','SendStatus:cust1','Req1') Esta sentencia añade un parámetro final Req1 a la sentencia MQSEND de arriba para indicar el id de correlación correspondiente a la petición. Para recibir una respuesta a esta petición específica, utilice la sentencia MQRECREIVE correspondiente para recuperar de forma selectiva el primer mensaje definido por el servicio indicado que coincida con este id de correlación, del siguiente modo: Ejemplo 18: DB2MQ.MQRECEIVE('myReceiver','myPolicy','Req1') Si la aplicación que da servicio a la petición está ocupada y el peticionario emite el mandato MQRECEIVE anterior antes de que se envíe la respuesta, no se encontrará ningún mensaje que coincida con este id de correlación. Para recibir la petición de servicio y el id de correlación, se utiliza una sentencia como la siguiente: Ejemplo 19: SELECT msg, correlid FROM table (DB2MQ.MQRECEIVEALL('aServiceProvider','myPolicy',1)) t Esto devuelve el mensaje y el identificador de correlación de la primera petición del servicio aServiceProvider. Una vez realizado el servicio, envía el mensaje de respuesta a la cola descrita por aRequester. Mientras tanto, el peticionario del servicio puede estar realizando otro trabajo. De hecho, no hay garantía de que la petición inicial de servicio se responda dentro de un periodo de tiempo definido. El programador debe gestionar los tiempos de espera a nivel de aplicación como este; el peticionario debe sondear para detectar la presencia de la respuesta. La ventaja de este proceso asíncrono que no depende del tiempo es que el peticionario y el proveedor de servicio se ejecutan de forma completamente independiente. Esto se puede utilizar para adaptar entornos en los que las aplicaciones sólo se conectan de forma intermitente y entornos con procesos por lotes en los que se agregan varias peticiones o respuestas antes del proceso. Este tipo de agregación se suele utilizar en entornos de almacén de datos para actualizar periódicamente un almacén de datos o almacén de datos operativos. 17.5.4.2 Publicación y suscripción Publicación de datos sencillos Otro escenario común en la integración de aplicaciones es que una aplicación notifique a otras aplicaciones sobre sucesos de interés. Esto se puede realizar fácilmente enviando un mensaje a una cola supervisada por otra aplicación. El contenido del mensaje puede ser una serie definida por el usuario o puede estar compuesto a partir de columnas de bases de datos. Normalmente, con la función MQSEND se envían mensajes sencillos. Cuando estos mensajes se tienen que enviar simultáneamente a varios receptores, se puede utilizar el recurso de Lista de distribución de la AMI de MQSeries. Una lista de distribución se define mediante la herramienta de administración de AMI. Una lista de distribución comprende una lista de servicios individuales. Se envía un mensaje enviado a una lista de distribución a cada uno de los servicios definidos dentro de la lista. Esto resulta especialmente útil cuando se sabe que unos cuantos servicios están siempre interesados en cada mensaje. El ejemplo siguiente muestra el envío de un mensaje a la lista de distribución interestedParties: Ejemplo 20: DB2MQ.MQSEND('interestedParties','information of general interest'); Cuando se necesita más control sobre los mensajes que deben recibir determinados servicios, se necesita la función de publicación y suscripción. Los sistemas de publicación y suscripción normalmente ofrecen un entorno seguro y escalable en el que varios suscriptores se pueden registrar para recibir mensajes procedentes de varios publicadores. Para dar soporte a esta función se puede utilizar la interfaz MQPublish junto con MQSeries Integrator o el recurso de publicación y suscripción de MQSeries. MQPublish permite a los usuarios especificar opcionalmente un tema que se asociará con un mensaje. Los temas permiten a un suscriptor especificar de forma más clara los mensajes que desea aceptar. La secuencia de pasos es la siguiente: 1. Un administrador de MQSeries configura las funciones de publicación y suscripción de MQSeries Integrator. 2. Las aplicaciones interesadas se suscriben a los puntos de suscripción definidos por la configuración de MQSI y pueden especificar si lo desean temas en los que están interesadas. Cada suscriptor selecciona temas relevantes y también puede utilizar las técnicas de suscripción basadas en contenido de MQSeries Integrator V2. Es importante observar que estas colas, tal como están representadas por nombres de servicios, definen al suscriptor. 3. Una aplicación de DB2 publica un mensaje en el punto de servicio Weather. El mensaje indica que el tiempo es Sleet con el tema Austin, con lo que notifica a los suscriptores interesados que el tiempo es Austin es Sleet. 4. Los mecanismos para publicar realmente el mensaje se manejan mediante las funciones de MQSeries que ofrece DB2. El mensaje se envía a MQSeries Integrator utilizando el servicio denominado Weather. 5. MQSI acepta el mensaje procedente del servicio Weather, realiza los procesos definidos por la configuración de MQSI y determina a qué suscripciones notifica. Luego MQSI envía el mensaje a las colas de suscriptores con cuyos criterios coincide. 6. Las aplicaciones suscritas al servicio Weather que han registrado un interés en Austin recibirán el mensaje Sleet en su servicio de recepción. Para publicar estos datos utilizando todos los valores por omisión y tema nulo, utilizaría la siguiente sentencia: Ejemplo 21: SELECT DB2MQ.MQPUBLISH(LASTNAME || ' ' || FIRSTNAME || ' ' || DEPARTMENT|| ' ' ||char(AGE)) FROM EMPLOYEE WHERE DEPARTMENT = '5LGA' Si se especifican por completo todos los parámetros y se simplifica el mensaje para que sólo contenga LASTNAME, la sentencia sería la siguiente: Ejemplo 22: SELECT DB2MQ.MQPUBLISH('HR_INFO_PUB', 'SPECIAL_POLICY', LASTNAME, 'ALL_EMP:5LGA', 'MANAGER') FROM EMPLOYEE WHERE DEPARTMENT = '5LGA' Esta sentencia publica mensajes en el servicio de publicación HR_INFO_PUB utilizando el servicio SPECIAL_POLICY. Los mensajes indican que el remitente es el tema MANAGER. La serie del tema muestra que se pueden especificar varios temas, concatenados mediante el signo ':'. En este ejemplo, el hecho de utilizar dos temas permite a los suscriptores registrarse para ALL_EMP o sólo 5LGA para recibir estos mensajes. Para recibir mensajes publicados, primero debe registrar su interés en los mensajes que contienen un determinado tema e indicar el nombre del servicio de suscriptor al que se deben enviar los mensajes. Es importante observar que un servicio de suscriptor AMI define un servicio intermediario y un servicio de recepción. El servicio intermediario es el modo en que el suscriptor se comunica con el intermediario de publicación y suscripción y el servicio de recepción es el lugar en el que se envían los mensajes que coinciden con la petición de suscripción. La siguiente sentencia registra un interés en el tema ALL_EMP. Ejemplo 23: DB2MQ.MQSUBSCRIBE('aSubscriber', 'ALL_EMP') Una vez suscrita una aplicación, los mensajes publicados con el tema ALL_EMP se enviarán al servicio de recepción definido por el servicio de suscripción. Una aplicación puede tener varias suscripciones simultáneas. Para obtener los mensajes que coinciden con su suscripción, puede utilizar cualquiera de las funciones estándares de recuperación de mensajes. Por ejemplo, si el servicio de suscripción aSubscriber define que el servicio de recepción sea aSubscriberReceiver, la siguiente sentencia leerá de forma no destructiva el primer mensaje: Ejemplo 24: DB2MQ.MQREAD('aSubscriberReceiver') Para determinar los mensajes y los temas bajo los que se han publicado, debe utilizar una de las funciones de tabla. La sentencia siguiente recibe los cinco primeros mensajes de aSubscriberReceiver y muestran el mensaje y el tema: Ejemplo 25: SELECT t.msg, t.topic FROM table (DB2MQ.MQRECEIVEALL('aSubscriberReceiver',5)) t Para leer todos los mensajes con el tema ALL_EMP, puede aprovechar la potencia de SQL para emitir: Ejemplo 26: SELECT t.msg FROM table (DB2MQ.MQREADALL('aSubscriberReceiver')) t WHERE t.topic = 'ALL_EMP' Nota: Es importante observar que, si se utiliza MQRECEIVEALL con una restricción, se consume toda la cola, no solo los mensajes publicados con el tema ALL_EMP. Esto se debe a que la función de tabla se realiza antes de que se aplique la restricción. Cuando deja de estar interesado en suscribirse a un determinado tema, debe anular de forma explícita la suscripción mediante una sentencia como la siguiente: Ejemplo 27: DB2MQ.MQUNSUBSCRIBE('aSubscriber', 'ALL_EMP') Una vez emitida esta sentencia, el intermediario de publicación y suscripción dejará de distribuir mensajes que coincidan con esta suscripción. Publicación automática Otra técnica importante en la gestión de mensajes de bases de datos es la publicación automática. Utilizando un recurso de desencadenante de DB2, puede publicar mensajes automáticamente como parte de una invocación del desencadenante. Aunque existen otras técnicas para la publicación automática de datos, el enfoque basado en desencadenantes ofrece a los administradores o programadores una gran libertad para construir contenido de mensajes y flexibilidad para definir las acciones desencadenadoras. Al igual que en cualquier uso que se haga de los desencadenantes, se debe prestar atención a la frecuencia y coste de la ejecución. Los siguientes ejemplos muestran cómo se pueden utilizar desencadenantes con MQSeries DB2 Functions. El ejemplo siguiente muestra lo fácil que resulta publicar un mensaje cada vez que se contrata un nuevo empleado. Cualquier usuario o aplicación suscritos al servicio HR_INFO_PUB con interés registrado en NEW_EMP recibirán un mensaje con la fecha, nombre y departamento de cada nuevo empleado. Ejemplo 28: CREATE TRIGGER new_employee AFTER INSERT ON employee REFERENCING NEW AS n FOR EACH ROW MODE DB2SQL VALUES DB2MQ.MQPUBLISH('HR_INFO_PUB&', 'NEW_EMP', current date || ' ' || LASTNAME || ' ' || DEPARTMENT) ------------------------------------------------------------------------ 17.6 enable_MQFunctions enable_MQFunctions Habilita DB2 MQSeries Functions para la base de datos especificada y valida que DB2 MQSeries Functions se puede ejecutar correctamente. El mandato fallará si no se han instalado y configurado MQSeries y AMI de MQSeries. Autorización Una de las siguientes: * sysadm * dbadm * IMPLICIT_SCHEMA sobre la base de datos, si no existe el nombre de esquema implícito o explícito de la función * Privilegio CREATEIN sobre el esquema, si existe el nombre de esquema, DB2MQ Sintaxis del mandato >>-enable_MQFunctions----n--basedatos----u--idusuario-----------> >-----p--contraseña----+--------+---+-------------+------------>< '-force--' '-noValidate--' Parámetros del mandato -n basedatos Especifica el nombre de la base de datos que se va a habilitar. -u idusuario Especifica el ID de usuario que se va a conectar a la base de datos. -p contraseña Especifica la contraseña del ID de usuario. -force Especifica que los avisos encontrados durante una reinstalación se deben pasar por alto. -noValidate Especifica que no se llevará a cabo la validación de DB2 MQSeries Functions. Ejemplos En el siguiente ejemplo, se crean funciones DB2MQ. El usuario se conecta a la base de datos SAMPLE. Se utiliza el esquema por omisión DB2MQ. enable_MQFunctions -n sample -u user1 -p password1 Notas sobre uso DB2 MQ Functions se ejecuta bajo el esquema DB2MQ, que se crea automáticamente mediante este mandato. Antes de ejecutar este mandato: * Asegúrese de que MQ y AMI están instalados y de que la versión de MQSeries es 5.2 o superior. * Asegúrese de que la variable de entorno $AMT_DATA_PATH está definida. * Cambie el directorio al subdirectorio cfg de DB2PATH En UNIX: * Utilice db2set para añadir AMT_DATA_PATH a DB2ENVLIST. * Asegúrese de que la cuenta de usuario asociada con la ejecución de UDF es miembro del grupo mqm. * Asegúrese de que el usuario que va a llamar a este mandato es miembro del grupo mqm. Nota: AIX 4.2 no recibe soporte de MQSeries 5.2. ------------------------------------------------------------------------ 17.7 disable_MQFunctions disable_MQFunctions Inhabilita el uso de DB2 MQSeries Functions para la base de datos especificada. Autorización Una de las siguientes: * sysadm * dbadm * IMPLICIT_SCHEMA sobre la base de datos, si no existe el nombre de esquema implícito o explícito de la función * Privilegio CREATEIN sobre el esquema, si existe el nombre de esquema, DB2MQ Sintaxis del mandato >>-disable_MQFunctions----n--basedatos----u--idusuario----------> >-----p--contraseña-------------------------------------------->< Parámetros del mandato -n basedatos Especifica el nombre de la base de datos. -u idusuario Especifica el ID de usuario utilizado para conectar con la base de datos. -p contraseña Especifica la contraseña del ID de usuario. Ejemplos En el siguiente ejemplo se inhabilitan las funciones DB2MQ para la base de datos SAMPLE. disable_MQFunctions -n sample -u user1 -p password1 ------------------------------------------------------------------------ Herramientas administrativas Tabla de contenido parcial * Centro de control o 18.1 Posibilidad de administrar DB2 Server para servidores VSE y VM o 18.2 Soporte de Java 1.2 para el Centro de control o 18.3 Error "Atajo no válido" al utilizar la ayuda en línea en el sistema operativo Windows o 18.4 Centro de control Java en OS/2 o 18.5 Error "Acceso a archivo denegado" al intentar visualizar un trabajo completado en el Diario del sistema operativo Windows o 18.6 Multisite Update Test Connect o 18.7 Centro de control de DB2 para OS/390 o 18.8 Arreglo necesario del Centro de control para OS/390 o 18.9 Cambio en el diálogo Create Spatial Layer o 18.10 Información sobre resolución de problemas para el Centro de control de DB2 o 18.11 Resolución de problemas del Centro de control en sistemas basados en UNIX o 18.12 Posible problema de Infopops en OS/2 o 18.13 Ayuda para el parámetro de configuración jdk11_path o 18.14 Error del sistema Solaris (SQL10012N) al utilizar el Centro de Scripts o el Diario o 18.15 Ayuda para el archivo DPREPL.DFT o 18.16 Lanzamiento de más de un applet del Centro de control o 18.17 Ayuda en línea para el Centro de control al ejecutarlo como applet o 18.18 Ejecución del Centro de control en modalidad de applet (Windows 95) o 18.19 Cómo trabajar con resultados de consultas muy largos * Centro de información o 19.1 Error "Atajo no válido" en el sistema operativo Windows o 19.2 Apertura de enlaces externos de Web en Netscape Navigator cuando Netscape ya está abierto (sistemas basados en UNIX) o 19.3 Problemas al iniciar el Centro de información * Asistentes o 20.1 Establecimiento del tamaño de extensión en el Asistente para crear bases de datos o 20.2 Asistente MQSeries Assist o 20.3 Asistente OLE DB Assist ------------------------------------------------------------------------ Centro de control ------------------------------------------------------------------------ 18.1 Posibilidad de administrar DB2 Server para servidores VSE y VM Se ha mejorado el soporte de DB2 Server para bases de datos VSE y VM por parte del Centro de control de DB2 Universal Database Versión 7. El Centro de control puede visualizar todos los objetos de DB2 Server para bases de datos VSE y VM. También existe soporte para las sentencias CREATE INDEX, REORGANIZE INDEX y UPDATE STATISTICS, así como para el mandato REBIND. REORGANIZE INDEX y REBIND requieren que se ejecute un procedimiento almacenado en el DB2 Server para sistemas principales VSE y VM. Este procedimiento almacenado lo suministra la característica Centro de control para VSE y VM de DB2 Server para VSE y VM. El Centro de control completamente integrado permite al usuario gestionar DB2, independientemente de la plataforma en la que se ejecute el servidor DB2. Los objetos de DB2 Server para VSE y VM se visualizan en la ventana principal del Centro de control, junto con los objetos de DB2 Universal Database. Las acciones y los programas de utilidad correspondientes para gestionar estos objetos se invocan seleccionando el objeto. Por ejemplo, un usuario puede listar los índices de una base de datos determinada, seleccionar uno de los índices y reorganizarla. También puede listar las tablas de una base de datos y ejecutar estadísticas de actualización, o bien definir una tabla como fuente de duplicación. Para obtener información sobre cómo configurar el Centro de control para que realice tareas administrativas sobre objetos de DB2 Server para VSE y VM, consulte las publicaciones DB2 Connect User's Guide o Suplemento de instalación y configuración. ------------------------------------------------------------------------ 18.2 Soporte de Java 1.2 para el Centro de control El Centro de control soporta idiomas bidireccionales, tales como el árabe y el hebreo, utilizando el soporte bi-di en Java 1.2. Sólo se proporciona este soporte para la plataforma Windows NT. Java 1.2 debe estar instalado para que el Centro de control lo reconozca y utilice: 1. JDK 1.2.2 está disponible en el CD de DB2 UDB bajo el directorio DB2\bidi\NT. ibm-inst-n122p-win32-x86.exe es el programa instalador e ibm-jdk-n122p-win32-x86.exe es la distribución de JDK. Copie ambos archivos a un directorio temporal de la unidad de disco duro y, a continuación, ejecute el programa instalador desde éste. 2. Instálelo bajo \java\Java12, donde es la vía de acceso de instalación de DB2. 3. No seleccione JDK/JRE como System VM cuando lo solicite la instalación de JDK/JRE. Una vez que se haya instalado Java 1.2 satisfactoriamente, al iniciar el Centro de control de forma normal se utilizará Java 1.2. Para detener la utilización de Java 1.2, puede desinstalar JDK/JRE de \java\Java12 o, simplemente, cambiar el nombre del subdirectorio \java\Java12 por algún otro. Nota: No confunda \java\Java12 con \Java12.\Java12 forma parte de la instalación de DB2 e incluye soporte de JDBC para Java 1.2. ------------------------------------------------------------------------ 18.3 Error "Atajo no válido" al utilizar la ayuda en línea en el sistema operativo Windows Cuando utilice la ayuda en línea del Centro de control, es posible que se encuentre con un error tal como: "Atajo no válido". Si recientemente ha instalado un nuevo navegador Web o una nueva versión de un navegador Web, asegúrese de que los documentos HTML y HTM estén asociados al navegador correcto. Vea el tema de Ayuda de Windows "Cambiar el programa que se inicia al abrir un archivo". ------------------------------------------------------------------------ 18.4 Centro de control Java en OS/2 El Centro de control debe instalarse en una unidad formateada HPFS. ------------------------------------------------------------------------ 18.5 Error "Acceso a archivo denegado" al intentar visualizar un trabajo completado en el Diario del sistema operativo Windows En DB2 Universal Database para Windows NT, se produce un error de "Acceso a archivo denegado" cuando se intenta abrir el Diario para ver los detalles de un trabajo creado en el Centro de scripts. El estado del trabajo indica que se ha completado. Se da este comportamiento cuando un trabajo creado en el Centro de scripts contiene el mandato START. Para evitar que así sea, utilice START/WAIT en lugar de START, tanto en el archivo de proceso por lotes como en el propio trabajo. ------------------------------------------------------------------------ 18.6 Multisite Update Test Connect El funcionamiento de Multisite Update Test Connect en el Centro de control Versión 7 está limitado por la versión de la instancia de destino. La instancia de destino debe ser, como mínimo, de Versión 7 para que el funcionamiento de la conexión de prueba "remota" sea correcto. Para ejecutar Multisite Update Test Connect en la Versión 6, debe activar el Centro de control localmente en la instancia de destino y ejecutarlo desde ésta. ------------------------------------------------------------------------ 18.7 Centro de control de DB2 para OS/390 El Centro de control de DB2 UDB para OS/390 le permite gestionar el uso de los programas bajo licencia de IBM DB2. Las funciones de los programas de utilidad que constituyen elementos de características de DB2 UDB para OS/390 que se solicitan por separado deben disponer de licencia y se tienen que instalar en el entorno antes de que el Centro de control de DB2 las gestione. La base de datos "CC390", definida con el Centro de control al configurar un subsistema DB2 para OS/390, se utiliza para soporte interno del Centro de control. No modifique esta base de datos. Aunque DB2 para OS/390 Versión 7.1 no se menciona específicamente en la tabla de contenido del Centro de control, o en la información de Tareas del Centro de información, la documentación soporta las funciones de DB2 para OS/390 Versión 7.1. Muchas de las funciones específicas de DB2 para OS/390 Versión 6 también están relacionadas con DB2 para OS/390 Versión 7.1, y algunas funciones que son específicas de DB2 para OS/390 Versión 7.1 de la tabla de contenido no tienen designación de versión. Si ha configurado un subsistema DB2 para OS/390 Versión 7.1 en el Centro de control, tiene acceso a toda la documentación correspondiente a dicha versión. Para acceder a la función Generate DDL y utilizarla desde el Centro de control de DB2 para OS/390, debe tener instalado la función Generate DDL: * Para la Versión 5, instale DB2Admin 2.0 con DB2 para OS/390 Versión 5. * Para la Versión 6, instale la pequeña mejora de programación que estará disponible como PTF para la característica DB2 Admin de DB2 para OS/390 Versión 6. * Para la Versión 7.1, la función Generate DDL forma parte de la característica DB2 Admin de DB2 para OS/390 Versión 7.1, que se vende por separado. Puede acceder al Stored Procedure Builder desde el Centro de control, pero en el momento en que inicie el Centro de control de DB2 UDB ya lo tiene que haber instalado. Forma parte del DB2 Application Development Client. Para catalogar un subsistema DB2 para OS/390 directamente en la estación de trabajo, seleccione la utilización de la herramienta Client Configuration Assistant. 1. En la página Fuente, especifique el botón de selección Configurar manualmente una conexión con una base de datos. 2. En la página Protocolo, cumplimente la información apropiada sobre comunicaciones. 3. En la página Base de datos, especifique el nombre del subsistema en el campo Nombre de base de datos. 4. En la página Opciones del nodo, seleccione el recuadro de selección Configurar opciones de nodo (Opcional). 5. Seleccione MVS/ESA, OS/390 en la lista del campo Sistema operativo. 6. Pulse el botón Finalizar para completar la configuración. Para catalogar un subsistema DB2 para OS/390 a través de una máquina pasarela, lleve a cabo los pasos 1-6 anteriores sobre la máquina pasarela y, a continuación: 1. En la máquina cliente, inicie el Centro de control. 2. Pulse el botón derecho del ratón en la carpeta Sistemas y seleccione Añadir. 3. En el diálogo Añadir sistema, escriba el nombre de la máquina pasarela en el campo Nombre de sistema. 4. Escriba DB2DAS00 en el campo Instancia remota. 5. Para el protocolo TCP/IP, en Parámetros de protocolo, especifique el nombre de sistema principal de la máquina pasarela en el campo Nombre de sistema principal. 6. Escriba 523 en el campo Nombre de servicio. 7. Pulse Aceptar para añadir el sistema. Ahora verá la máquina pasarela añadida a la carpeta Sistemas. 8. Expanda el nombre de la máquina pasarela. 9. Pulse el botón derecho del ratón en la carpeta Instancias y seleccione Añadir. 10. En el diálogo Añadir instancia, pulse Renovar para listar las instancias disponibles en la máquina pasarela. Si la máquina pasarela es un sistema Windows NT, probablemente el subsistema DB2 para OS/390 se habrá catalogado bajo la instancia de DB2. 11. Seleccione la instancia. Automáticamente se cumplimentarán los parámetros de protocolo para esta instancia. 12. Pulse Aceptar para añadir la instancia. 13. Abra la carpeta Instancias para ver la instancia que acaba de añadir. 14. Expanda la instancia. 15. Pulse el botón derecho del ratón en la carpeta Bases de datos y seleccione Añadir. 16. Pulse en Renovar para visualizar las bases de datos locales de la máquina pasarela. Si está añadiendo un subsistema DB2 en el diálogo Añadir base de datos, escriba el nombre del subsistema en el campo Nombre de base de datos. Opción: Escriba un nombre de alias local para el subsistema (o la base de datos). 17. Pulse en Aceptar. Ya ha añadido satisfactoriamente el subsistema al Centro de control. Cuando abra la base de datos, debe visualizar el subsistema DB2 para OS/390. En el primer párrafo del apartado "Centro de control 390" puede leerse: El Centro de control de DB2 UDB para OS/390 le permite gestionar el uso de los programas bajo licencia de IBM DB2. Las funciones de programas de utilidad que son elementos de características de DB2 UDB para OS/390, que pueden pedirse por separado, deben disponer de licencia y se tienen que instalar en el entorno antes de que el Centro de control de DB2 las gestione. Ahora, este apartado debería decir: El Centro de control de DB2 para OS/390 le permite gestionar el uso de los programas de utilidad bajo licencia de IBM DB2. Las funciones de programas de utilidad que sean elementos de productos que puedan pedirse por separado deben instalarse y disponer de licencia en su entorno para que el Centro de control de DB2 las gestione. ------------------------------------------------------------------------ 18.8 Arreglo necesario del Centro de control para OS/390 Debe aplicar el APAR PQ36382 a la característica 390 Enablement de DB2 para OS/390 Versión 5 y de DB2 para OS/390 Versión 6 a fin de poder gestionar estos subsistemas utilizando el Centro de control de DB2 UDB para la Versión 7. Sin este arreglo, no podrá utilizar el Centro de control de DB2 UDB para la Versión 7 para ejecutar programas de utilidad destinados a estos subsistemas. Se debe aplicar el APAR a los FMID siguientes: DB2 para OS/390 Versión 5 390 Enablement: FMID JDB551D DB2 para OS/390 Versión 6 390 Enablement: FMID JDB661D ------------------------------------------------------------------------ 18.9 Cambio en el diálogo Create Spatial Layer Se han eliminado los botones "<<" y ">>" del diálogo Create Spatial Layer. ------------------------------------------------------------------------ 18.10 Información sobre resolución de problemas para el Centro de control de DB2 En el capítulo "Instalación y configuración del Centro de control" del manual Guía rápida de iniciación, el apartado titulado "Información sobre resolución de problemas" indica que debe desestablecer CLASSPATH del navegador de cliente desde una ventana de mandatos si experimenta problemas al ejecutar el Centro de control como applet. Este apartado también le indica que inicie el navegador desde la misma ventana de mandatos. Sin embargo, no se proporciona el mandato para iniciar el navegador. Para ejecutar Internet Explorer, escriba start iexplore y pulse Intro. Para ejecutar Netscape, escriba start netscape y pulse Intro. Estos mandatos asumen que el navegador está en el PATH (vía de acceso). Si no está, añádalo a su PATH (vía de acceso) o cambie al directorio de instalación del navegador y vuelva a emitir el mandato start. ------------------------------------------------------------------------ 18.11 Resolución de problemas del Centro de control en sistemas basados en UNIX Si no puede iniciar el Centro de control en un sistema basado en UNIX, establezca la variable de entorno JAVA_HOME de forma que apunte a la distribución Java: * Si se ha instalado java bajo /usr/jdk118, establezca JAVA_HOME en /usr/jdk118. * Para los shells sh, ksh o bash: export JAVA_HOME=/usr/jdk118. * Para los shells csh o tcsh: setenv JAVA_HOME /usr/jdk118 ------------------------------------------------------------------------ 18.12 Posible problema de Infopops en OS/2 Si está ejecutando del Centro de control en OS/2, utilizando un tamaño de pantalla de 1024x768 con 256 colores, y tiene habilitado Shell Palette Awareness, es posible que los infopops que sobrepasan el borde de la ventana actual se visualicen con texto en negro sobre un fondo negro. Para corregir este problema, cambie el valor de pantalla de forma que disponga de más de 256 colores o inhabilite Workplace Shell Palette Awareness. ------------------------------------------------------------------------ 18.13 Ayuda para el parámetro de configuración jdk11_path En la ayuda del Centro de control, a la descripción del parámetro de configuración de Java Development Kit 1.1 Installation Path (jdk11_path) le falta una línea bajo la subcabecera Se aplica a. La lista completa bajo Se aplica a es: * Servidor de bases de datos con clientes locales y remotos * Cliente * Servidor de bases de datos con clientes locales * Servidor de bases de datos particionadas con clientes locales y remotos * Servidor de bases de datos satélite con clientes locales ------------------------------------------------------------------------ 18.14 Error del sistema Solaris (SQL10012N) al utilizar el Centro de Scripts o el Diario Al seleccionar un sistema Solaris en el Centro de scripts o el Diario, puede producirse el error siguiente: SQL10012N - Se ha recibido un error inesperado del sistema operativo al cargar la biblioteca especificada "/udbprod/db2as/sqllib/function/unfenced/ db2scdar!ScheduleInfoOpenScan". SQLSTATE=42724. Esto es debido a un problema con el enlazador de ejecución de Solaris. Para corregir este problema, aplique el parche siguiente: 105490-06 (107733 deja 105490 obsoleto) para Solaris 2.6 ------------------------------------------------------------------------ 18.15 Ayuda para el archivo DPREPL.DFT En el Centro de control, en la ayuda para la página Duplicación del cuaderno Valores de herramienta, el paso 5d dice: Guarde el archivo en el directorio de trabajo del Centro de control (por ejemplo, SQLLIB\BIN) para que el sistema pueda utilizarlo como archivo por omisión. El Paso 5d debería decir: Guarde el archivo en el directorio de trabajo del Centro de control (SQLLIB\CC) para que el sistema pueda utilizarlo como archivo por omisión. ------------------------------------------------------------------------ 18.16 Lanzamiento de más de un applet del Centro de control No se puede lanzar más de un applet del Centro de control simultáneamente en la misma máquina. Esta restricción se aplica a los applets del Centro de control que se ejecutan en todos los navegadores soportados. ------------------------------------------------------------------------ 18.17 Ayuda en línea para el Centro de control al ejecutarlo como applet Cuando el Centro de control está ejecutándose como applet, la tecla F1 sólo funciona en ventanas y cuadernos que tienen infopops. Puede pulsar la tecla F1 para ver los infopops en los componentes siguientes: * DB2 Universal Database para OS/390 * Los asistentes En el resto de componentes del Centro de control, F1 no muestra ningún tipo de ayuda. Para visualizar la ayuda para los demás componentes, utilice el pulsador Ayuda o el menú desplegable Ayuda. ------------------------------------------------------------------------ 18.18 Ejecución del Centro de control en modalidad de applet (Windows 95) Puede que se produzca una anomalía al intentar abrir el Centro de scripts si se especifican un ID de usuario y una contraseña no válidos. Asegúrese de entrar un ID de usuario y una contraseña válidos al iniciar una sesión del Centro de control. ------------------------------------------------------------------------ 18.19 Cómo trabajar con resultados de consultas muy largos Para un usuario resulta sencillo generar una consulta que devuelva un gran número de filas. Para el usuario no es tan fácil predecir cuántas filas se devolverán en realidad. Con una consulta que podría devolver miles (o millones) de filas, hay dos problemas: 1. Puede llevar mucho tiempo recuperar el resultado. 2. Es posible que se necesite gran cantidad de memoria del cliente para albergar el resultado. Para facilitar este proceso, DB2 divide los grupos de resultados largos en partes. Recuperará y mostrará los resultados de una consulta por partes. Como resultado: 1. El tiempo de visualización se reducirá puesto que se puede visualizar la primera parte de una consulta mientras se están recuperando el resto. 2. Los requisitos de memoria del cliente se reducen puesto que en cada momento sólo se almacena una parte del resultado de la consulta en el cliente. Para controlar el número de filas del resultado de la consulta en memoria:: 1. Abra la página General del cuaderno Valores de herramientas. 2. En la sección Tamaño máximo, seleccione: o Contenido de ejemplo para limitar el número de filas del resultado que se muestran en la ventana Contenido de ejemplo. Especifique el tamaño de las partes del grupo de resultados (número de filas) en el campo de entrada. o Centro de mandatos para limitar el número de filas del resultado que se muestran en la página Resultados de la consulta del Centro de mandatos. Especifique el tamaño de las partes del grupo de resultados (número de filas) en el campo de entrada. Cuando trabaja con los resultados de una consulta en la ventana Contenido de ejemplo o en la página Resultados de la consulta del Centro de mandatos, el campo Filas en memoria indica el número de filas que se mantienen en memoria correspondientes a la consulta. Este número nunca será mayor que el tamaño máximo definido. Pulse Siguiente para recuperar la siguiente parte del grupo de resultados. Cuando Siguiente está inactivo, significa que ha llegado al final del grupo de resultados. ------------------------------------------------------------------------ Centro de información ------------------------------------------------------------------------ 19.1 Error "Atajo no válido" en el sistema operativo Windows Cuando utilice el Centro de información, es posible que se encuentre con un error tal como: "Atajo no válido". Si recientemente ha instalado un nuevo navegador Web o una nueva versión de un navegador Web, asegúrese de que los documentos HTML y HTM estén asociados al navegador correcto. Vea el tema de Ayuda de Windows "Cambiar el programa que se inicia al abrir un archivo". ------------------------------------------------------------------------ 19.2 Apertura de enlaces externos de Web en Netscape Navigator cuando Netscape ya está abierto (sistemas basados en UNIX) Si Netscape Navigator ya está abierto y muestra un documento HTML de DB2 local o un sitio Web externo, un intento de abrir un sitio Web externo desde el Centro de información dará como resultado un error de Netscape. El error indicará que "Netscape no puede encontrar el archivo o directorio llamado ." Para eludir este problema, cierre el navegador de Netscape antes de abrir el sitio externo de la Web. Netscape se reiniciará y aportará el sitio externo de la Web. Observe que no se produce este error cuando se intenta abrir un documento HTML de DB2 local teniendo Netscape ya abierto. ------------------------------------------------------------------------ 19.3 Problemas al iniciar el Centro de información En algunos sistemas, el inicio del Centro de información puede ser lento si se le invoca utilizando el menú Inicio, Primeros pasos o el mandato db2ic. Si experimenta este problema, inicie el Centro de control y, a continuación, seleccione Ayuda --> Centro de información. ------------------------------------------------------------------------ Asistentes ------------------------------------------------------------------------ 20.1 Establecimiento del tamaño de extensión en el Asistente para crear bases de datos Utilizando el Asistente para crear bases de datos, se puede establecer los parámetros Tamaño de extensión y el Tamaño de captación previa para el Espacio de tablas del usuario (pero no así los correspondientes a las Tablas de catálogos o Temporales) de la nueva base de datos. Esta característica sólo se habilitará si se especifica, por lo menos, un contenedor para el Espacio de tablas del usuario en la página "Tablas del usuario" del Asistente. ------------------------------------------------------------------------ 20.2 Asistente MQSeries Assist DB2 Versión 7.2 proporciona un nuevo asistente MQSeries Assist. Este asistente crea una función de tabla que lee una cola de MQSeries utilizando DB2 MQSeries Functions, que también constituye una novedad de la Versión 7.2. El asistente puede tratar cada mensaje de MQSeries como una serie delimitada o una serie de columna de longitud fija, en función de lo que especifique el usuario. La función de tabla creada analiza la serie según las especificaciones del usuario y devuelve cada mensaje de MQSeries como una fila de la función de tabla. El asistente también le permite crear una vista sobre la función de tabla y realizar una vista previa de un mensaje de MQSeries y del resultado de la función de tabla. Este asistente se puede ejecutar desde Stored Procedure Builder o desde Data Warehouse Center. Los requisitos para este asistente son: * MQSeries versión 5.2 * Interfaz de gestión de mensajes de aplicaciones (AMI) de MQSeries * DB2 MQSeries Functions Para obtener más información sobre estos requisitos, consulte MQSeries. Para ver ejemplos y guías de aprendizaje sobre el asistente MQSeries Assist, consulte la sección de guías de aprendizaje del sitio http://www.ibm.com/software/data/db2/udb/ide ------------------------------------------------------------------------ 20.3 Asistente OLE DB Assist Este asistente le ayuda a crear una función de tabla que lee datos de otro proveedor de datos que dé soporte al estándar Microsoft OLE DB. Puede crear si lo desea una tabla de DB2 con los datos que lee la función de tabla OLE DB y puede crear una vista para la función de tabla OLE DB. Este asistente se puede ejecutar desde Stored Procedure Builder o desde Data Warehouse Center. Los requisitos para este asistente son: * Un proveedor OLE DB (como Oracle, Microsoft SQL Server) * Funciones de soporte de OLE DB Para ver ejemplos y guías de aprendizaje sobre el asistente OLE DB Assist, consulte la sección de guías de aprendizaje del sitio http://www.ibm.com/software/data/db2/udb/ide ------------------------------------------------------------------------ Business Intelligence Tabla de contenido parcial * Guía de aprendizaje de Business Intelligence o 21.1 Guía de aprendizaje de Business Intelligence revisada * Data Warehouse Center Administration Guide o 22.1 Resolución de problemas o 22.2 Configuración de Excel como fuente de depósito o 22.3 Definición y ejecución de procesos o 22.4 Diálogo Exportar metadatos o 22.5 Definición de valores para un programa de sometimiento de corriente de trabajos JCL de OS/390 (VWPMVS) o 22.6 Cambios en el apéndice Ejemplos de depósito de datos o 22.7 Mensajes del Centro de depósito de datos o 22.8 Creación de un perfil y carga de datos en el Servidor de integración OLAP de DB2 o 22.9 Utilización de Classic Connect con el Centro de depósito de datos o 22.10 Estructura del entorno del Centro de depósito de datos o 22.11 Utilización de Invert Transformer o 22.12 Acceso a datos de DB2 Versión 5 con el agente de depósito de DB2 Versión 7 + 22.12.1 Migración de servidores DB2 Versión 5 + 22.12.2 Cambio de la configuración del agente + 22.12.2.1 Agentes de depósito de UNIX + 22.12.2.2 Agentes de depósito de Microsoft Windows NT, Windows 2000 y OS/2 o 22.13 Programa de extracción de metadatos de IBM ERwin + 22.13.1 Contenido + 22.13.2 Requisitos de software + 22.13.3 Archivos de programa + 22.13.4 Creación de archivos de lenguaje de códigos + 22.13.5 Importación de un archivo de lenguaje de códigos al Centro de depósito de datos + 22.13.6 Importación de un archivo de lenguaje de códigos al Gestor de catálogos de información + 22.13.7 Resolución de problemas + 22.13.8 Correlación de ERwin con el Centro de depósito de datos + 22.13.8.1 Correlación de ERwin con el Gestor de catálogos de información o 22.14 Borrado de nombre y dirección en el Centro de depósito de datos + 22.14.1 + 22.14.1.1 Requisitos + 22.14.1.2 Componentes de Trillium Software System + 22.14.1.3 Utilización de Trillium Batch System con el Centro de depósito de datos + 22.14.1.4 Importación de metadatos de Trillium + 22.14.1.5 Correlación de los metadatos + 22.14.1.6 Restricciones + 22.14.2 Grabación de un archivo de JCL de Trillium Batch System + 22.14.3 Grabación de un archivo de script de Trillium Batch System en UNIX y Windows + 22.14.4 Definición de un paso de Trillium Batch System + 22.14.5 Utilización del programa de Trillium Batch System definido por el usuario + 22.14.6 Manejo de errores + 22.14.6.1 Códigos de retorno de error + 22.14.6.2 Archivo de anotaciones cronológicas o 22.15 Integración de MQSeries con el Centro de depósito de datos + 22.15.1 Creación de vistas para mensajes MQSeries + 22.15.1.1 Requisitos + 22.15.1.2 Restricciones + 22.15.1.3 Creación de una vista para mensajes MQSeries + 22.15.2 Importación de mensajes MQSeries y metadatos XML + 22.15.2.1 Requisitos + 22.15.2.2 Restricciones + 22.15.2.3 Importación de mensajes MQSeries y metadatos XML + 22.15.2.4 Utilización del programa de MQSeries definido por el usuario + 22.15.2.5 Códigos de retorno de error + 22.15.2.6 Archivo de registro de errores o 22.16 Soporte de Microsoft OLE DB y de Servicios de transacción de datos + 22.16.1 Creación de vistas para funciones de tablas de OLE DB + 22.16.2 Creación de vistas para paquetes de DTS o 22.17 Utilización de la confirmación incremental con sustitución o 22.18 Nombres de los archivos de datos de rastreo componentes o 22.19 Se necesita Open Client para fuentes Sybase en AIX y en Solaris Operating Environment o 22.20 Entradas de ejemplo corregidas o 22.21 Capítulo 3. Configuración de fuentes de depósito + 22.21.1 Correlación del campo Memorándum de Microsoft Access con una fuente de depósito o 22.22 Capítulo 10. Mantenimiento de la base de datos del depósito + 22.22.1 Enlace de tablas a un subtipo de paso para el programa DB2 UDB RUNSTATS o 22.23 Base de datos de control del depósito por omisión o 22.24 Ventana Gestión de bases de datos de control del depósito o 22.25 Cambio de la base de datos de control del depósito activa o 22.26 Creación e inicialización de una base de datos de control del depósito o 22.27 Creación pasos de SQL editados o 22.28 Cambio de fuentes y destinos en la ventana Modelador de procesos o 22.29 Adición de descripciones a objetos del Centro de depósito de datos o 22.30 Ejecución de Sample Contents o 22.31 Edición de una sentencia Create DDL de SQL o 22.32 Migración de vistas comerciales de Visual Warehouse o 22.33 Generación de tablas de destino y claves primarias o 22.34 Utilización de controladores ODBC Merant o 22.35 Nuevo controlador ODBC o 22.36 Definición de una fuente o destino de depósito en una base de datos de OS/2 o 22.37 Supervisión del estado de la base de datos de control de depósito o 22.38 Utilización de SQL Assist con la base de datos de ejemplo TBC_MD o 22.39 Utilización de la función FormatDate o 22.40 Cambio de valor de idioma o 22.41 Utilización del transformador Generar tabla de claves o 22.42 Mantenimiento de conexiones con las bases de datos o 22.43 Configuración de un cliente del Centro de depósito de datos remoto o 22.44 Definición de una fuente de depósito de DB2 para VM o 22.45 Definición de una tabla de destino de DB2 para VM o DB2 para VSE o 22.46 Habilitación del soporte de identificador delimitado o 22.47 Un error de Data Joiner indica un problema de vinculación o 22.48 Configuración y ejecución de la duplicación con el Centro de depósito de datos o 22.49 Consejos para la resolución de problemas o 22.50 Acceso a fuentes y destinos o 22.51 Adiciones a las fuentes de bases de datos soportadas que no son de IBM o 22.52 Creación manual de una fuente de datos en el Centro de depósito de datos o 22.53 Importación y exportación de metadatos utilizando el intercambio de metadatos de depósito común (CWMI) + 22.53.1 Introducción + 22.53.2 Importación de metadatos + 22.53.3 Actualización de los metadatos después de ejecutar el programa de utilidad de importación + 22.53.4 Exportación de metadatos o 22.54 Paso del programa de utilidad Runstats de OS/390 o 22.55 Paso del programa de utilidad Load de OS/390 o 22.56 Soporte XML para Common Warehouse Metamodel (CWM) o 22.57 Modelador de procesos o 22.58 Modelador de esquemas o 22.59 Campos obligatorios o 22.60 Mejoras en la lanzadera del Centro de depósito de datos o 22.61 Impresión de información de los pasos en un archivo * Data Warehouse Center Application Integration Guide o 23.1 Plantillas de metadatos adicionales + 23.1.1 Commit.tag + 23.1.1.1 Símbolos + 23.1.1.2 Ejemplos de valores + 23.1.2 ForeignKey.tag + 23.1.2.1 Símbolos + 23.1.2.2 Ejemplos de valores + 23.1.3 ForeignKeyAdditional.tag + 23.1.3.1 Símbolos + 23.1.3.2 Ejemplos de valores + 23.1.4 PrimaryKey.tag + 23.1.4.1 Símbolos + 23.1.4.2 Ejemplos de valores + 23.1.5 PrimaryKeyAdditional.tag + 23.1.5.1 Símbolos + 23.1.5.2 Ejemplos de valores * Ayuda en línea del Centro de depósito de datos o 24.1 Definición de tablas o vistas para la duplicación o 24.2 Ejecución de VWP de Essbase con el Agente de AS/400 o 24.3 Utilización de la ventana Publicar metadatos del Centro de depósito de datos y la ventana Propiedades asociadas o 24.4 Claves foráneas o 24.5 Cuadernos de duplicación o 24.6 Importación de un lenguaje de códigos o 24.7 Enlaces para añadir datos o 24.8 Importación de tablas o 24.9 Corrección de la ayuda en línea de RUNSTATS y REORGANIZE TABLE o 24.10 Página Notificación (Cuaderno Propiedades del depósito y Cuaderno Planificación) o 24.11 Campo Módulo agente del cuaderno Sitios agente * Kit de iniciación de DB2 OLAP o 25.1 Sitio Web de OLAP Server o 25.2 Niveles de servicio de sistemas operativos soportados o 25.3 Realización de la configuración del Kit de iniciación de DB2 OLAP en UNIX o 25.4 Configuración de ODBC para el Kit de iniciación de OLAP + 25.4.1 Configuración de fuentes de datos en sistemas UNIX + 25.4.1.1 Configuración de variables de entorno de ODBC + 25.4.1.2 Edición del archivo odbc.ini + 25.4.1.3 Adición de una fuente de datos a un archivo odbc.ini + 25.4.1.4 Ejemplo de valores de ODBC para DB2 + 25.4.1.5 Ejemplo de valores de ODBC para Oracle + 25.4.2 Configuración del Catálogo de metadatos de OLAP en sistemas UNIX + 25.4.3 Configuración de fuentes de datos en sistemas Windows + 25.4.4 Configuración del Catálogo de metadatos de OLAP en sistemas Windows + 25.4.5 Después de configurar una fuente de datos o 25.5 Inicio de una sesión desde el escritorio del Kit de iniciación de OLAP + 25.5.1 Ejemplo de inicio de sesión del Kit de iniciación o 25.6 Creación y configuración manual de las bases de datos de ejemplo para el Kit de iniciación de OLAP o 25.7 Migración de aplicaciones al Kit de iniciación de OLAP Versión 7.2 o 25.8 Problemas y limitaciones conocidos o 25.9 Falta de archivos EQD del Complemento de hoja de cálculo de OLAP * Information Catalog Manager Administration Guide o 26.1 Programa de utilidad Inicialización del Gestor de catálogos de información + 26.1.1 + 26.1.2 Temas sobre licencia + 26.1.3 Temas sobre la instalación o 26.2 Acceso a catálogos de información de DB2 Versión 5 con el Gestor de catálogos de información de DB2 Versión 7 o 26.3 Configuración de un Catálogo de información o 26.4 Intercambio de metadatos con otros productos o 26.5 Intercambio de metadatos utilizando el mandato flgnxoln o 26.6 Intercambio de metadatos utilizando el mandato MDISDGC o 26.7 Invocación de programas * Information Catalog Manager Programming Guide and Reference o 27.1 Códigos de razón del Gestor de catálogos de información * Information Catalog Manager User's Guide * Gestor de catálogos de información: Mensajes en línea o 29.1 Mensaje FLG0260E o 29.2 Mensaje FLG0051E o 29.3 Mensaje FLG0003E o 29.4 Mensaje FLG0372E o 29.5 Mensaje FLG0615E * Gestor de catálogos de información: Ayuda en línea o 30.1 Gestor de catálogos de información para la Web * DB2 Warehouse Manager Installation Guide o 31.1 Requisitos de software para transformadores de almacén de datos o 31.2 Conector para SAP R/3 + 31.2.1 Requisitos previos a la instalación o 31.3 Conector para la Web + 31.3.1 Requisitos previos a la instalación * Query Patroller Administration Guide o 32.1 El cliente de DB2 Query Patroller es un componente separado o 32.2 Migración desde la Versión 6 de DB2 Query Patroller utilizando dqpmigrate o 32.3 Habilitación de la Gestión de consultas o 32.4 Ubicación del espacio de tabla para tablas de control o 32.5 Nuevos parámetros para el mandato dqpstart o 32.6 Nuevo parámetro para el mandato iwm_cmd o 32.7 Nueva variable de registro: DQP_RECOVERY_INTERVAL o 32.8 Inicio del Administrador de consultas o 32.9 Administración de usuarios o 32.10 Creación de una cola de trabajos o 32.11 Utilización de la interfaz de línea de mandatos o 32.12 Notas sobre Query Enabler o 32.13 DB2 Query Patroller Tracker puede devolver una página de columnas en blanco o 32.14 Query Patroller y Herramientas de duplicación o 32.15 Apéndice B. Resolución de problemas de clientes de DB2 Query Patroller ------------------------------------------------------------------------ Guía de aprendizaje de Business Intelligence ------------------------------------------------------------------------ 21.1 Guía de aprendizaje de Business Intelligence revisada El FixPak 2 incluye una base de datos de Ejemplo (Sample) del Centro de depósito de datos y una Guía de aprendizaje de Business Intelligence revisada que corrige diversos problemas que existían en la Versión 7.1. Para aplicar la base de datos de Ejemplo (Sample) del Centro de depósito de datos revisada, debe hacer lo siguiente: Si todavía no ha instalado las bases de datos de ejemplo, cree bases de datos de ejemplo nuevas utilizando la plataforma de lanzamiento de Primeros pasos. Pulse en Inicio y seleccione Programas --> IBM DB2 --> Primeros pasos. Si, con anterioridad, ha instalado las bases de datos de ejemplo, elimine las bases de datos de ejemplo DWCTBC, TBC_MD y TBC. Si ha añadido datos que desee conservar en las bases de datos de ejemplo, haga copia de seguridad de los mismos antes de eliminarlas. Para eliminar las tres bases de datos de ejemplo: 1. Para abrir la ventana de mandatos de DB2, pulse en Inicio y seleccione Programas --> IBM DB2 --> Ventana de mandatos. 2. En la Ventana de mandatos de DB2, escriba cada uno de los tres mandatos siguientes, pulsando Intro después de escribir cada uno de ellos: db2 drop database dwctbc db2 drop database tbc_md db2 drop database tbc 3. Cierre la Ventana de mandatos de DB2. 4. Cree bases de datos de ejemplo nuevas utilizando la plataforma de lanzamiento de Primeros pasos. Pulse en Inicio y seleccione Programas --> IBM DB2 --> Primeros pasos. ------------------------------------------------------------------------ Data Warehouse Center Administration Guide ------------------------------------------------------------------------ 22.1 Resolución de problemas La información sobre resolución de problemas del Centro de depósito de datos se ha pasado a la publicación DB2 Troubleshooting Guide. ------------------------------------------------------------------------ 22.2 Configuración de Excel como fuente de depósito En el "Capítulo 3. Configuración de fuentes de depósito," sección "Configuración de fuentes de depósito de base de datos no DB2 en Windows NT," falta un paso en la sección sobre Microsoft Excel. El nuevo paso se muestra a continuación como Paso 3. Si utiliza el controlador ODBC de Microsoft Excel 95/97 para acceder a las hojas de cálculo de Excel, es necesario crear una tabla nombrada para cada una de las hojas de trabajo de dentro de la hoja de cálculo. Para crear una tabla nombrada para cada hoja de trabajo: 1. Seleccione las columnas y las filas que desee. 2. Pulse Excel ---> Insertar ---> Nombre ---> Definir. 3. Asegúrese de que el campo "Hace referencia a" de la ventana Definir nombre contenga las celdas que ha seleccionado en el Paso 1. Si no es así, pulse el icono del extremo derecho del campo "Hace referencia a" para incluir todas las celdas que ha seleccionado. 4. Escriba un nombre (o utilice el nombre por omisión) para los datos marcados. 5. Pulse Aceptar. ------------------------------------------------------------------------ 22.3 Definición y ejecución de procesos En el "Capítulo 5. Definición y ejecución de procesos", apartado "Iniciando un paso desde fuera del Centro de depósito de datos", debería observarse que se necesita JDK 1.1.8 o posterior en la estación de trabajo del servidor de depósito y en el sitio del agente para iniciar un paso que tenga un nombre de doble byte. ------------------------------------------------------------------------ 22.4 Diálogo Exportar metadatos En el Capítulo 12, en el apartado titulado "Exportación e importación de metadatos del Centro de depósito de datos", subapartado "Exportación de los metadatos a un archivo de lenguaje de códigos", el Paso 5 debe ser como sigue: Si no desea exportar información de planificación relativa a los procesos que está exportando, deseleccione el recuadro de selección Incluir planificaciones. ------------------------------------------------------------------------ 22.5 Definición de valores para un programa de sometimiento de corriente de trabajos JCL de OS/390 (VWPMVS) En la página 180, el paso 8 del apartado "Definición de valores para un programa de Sometimiento de corrientes de trabajos JCL del OS/390 (VWPMVS)" indica que se debe definir un archivo .netrc en el mismo directorio que el archivo JES. En lugar de esto, el programa crea el archivo .netrc. Si el archivo no existe, el programa lo crea en el directorio inicial. Si ya existe un archivo .netrc en el directorio inicial, el programa le cambia el nombre y crea un nuevo archivo. Cuando finaliza el proceso del programa, éste suprime el nuevo archivo .netrc que ha creado y vuelve a cambiar el nombre del archivo original por .netrc. ------------------------------------------------------------------------ 22.6 Cambios en el apéndice Ejemplos de depósito de datos * En el apéndice Ejemplos de depósito de datos, apartado "Visualización y modificación de los metadatos de ejemplo", se debe incluir la tabla GEOGRAPHIES en la lista de tablas fuente. * En el apéndice Ejemplos de depósito de datos, apartado "Promoción de los pasos", en el procedimiento dedicado a la promoción de pasos a la modalidad de producción, la sentencia siguiente es incorrecta porque la tabla de destino se ha creado al promover el paso a la modalidad de prueba: El Centro de depósito de datos empieza a crear la tabla de destino y visualiza una ventana de progreso. ------------------------------------------------------------------------ 22.7 Mensajes del Centro de depósito de datos En Microsoft Windows NT y Windows 2000, el Centro de depósito de datos anota cronológicamente los sucesos en el archivo de anotaciones cronológicas de sucesos del sistema. El ID de suceso corresponde al número de mensaje del Centro de depósito de datos. Para más información sobre los mensajes del Centro de depósito de datos, consulte el manual Consulta de mensajes. ------------------------------------------------------------------------ 22.8 Creación de un perfil y carga de datos en el Servidor de integración OLAP de DB2 El ejemplo de la Figura 20 de la página 315 tiene un error. Los mandatos siguientes son correctos: "C:\IS\bin\olapicmd" < "C:\IS\Batch\my_script.script" > "C:\IS\Batch\my_script.log" Las comillas dobles que están antes y después de "C:\IS\bin\olapicmd" son necesarias si el nombre de un directorio de la vía de acceso contiene un espacio en blanco, como por ejemplo Archivos de programa. ------------------------------------------------------------------------ 22.9 Utilización de Classic Connect con el Centro de depósito de datos * En el "Apéndice F. Utilización de Classic Connect con el Centro de depósito de datos", el apartado "Instalación del controlador ODBC de CROSS ACCESS" en la página 388 se ha sustituido por la información siguiente: Instale el controlador ODBC de CROSS ACCESS realizando una instalación personalizada de DB2 Warehouse Manager Versión 7 y seleccionando el componente Controladores de Classic Connect. El controlador no se instala como parte de la instalación típica de DB2 Warehouse Manager. El controlador ODBC de CROSS ACCESS se instalará en el subdirectorio ODBC32 del directorio SQLLIB. Cuando la instalación finalice, deberá añadir manualmente la vía de acceso del controlador (por ejemplo, C:\Archivos de programa\SQLLIB\ODBC32) en la variable de entorno del sistema PATH. Si ya tiene instalada otra versión del controlador ODBC de CROSS ACCESS, coloque la vía de acceso ...\SQLLIB\ODBC32\ antes de la vía de acceso para la otra versión. El sistema utilizará el primero directorio en la vía de acceso que contiene el controlador ODBC de CROSS ACCESS. * Debería añadirse el siguiente procedimiento al "Apéndice F. Utilización de Classic Connect con el Centro de depósito de datos": Instalación del controlador ODBC de Classic Connect: 1. Inserte el CD-ROM del Warehouse Manager en la unidad de CD-ROM. Se abre el área de ejecución. 2. Pulse sobre Instalar desde el el área de ejecución. 3. En la ventana Seleccionar productos, asegúrese de que el recuadro de selección DB2 Warehouse Manager esté seleccionado y pulse sobre Siguiente. 4. En la ventana Seleccionar tipo de instalación, seleccione Personalizada y pulse sobre Siguiente. 5. En la ventana Seleccionar componentes, seleccione Controladores de Classic Connect y Agente de depósito, borre todos los otros recuadros de selección y pulse sobre Siguiente. 6. En la ventana Copia de archivos, compruebe su selección. Si desea modificar alguna selección, pulse sobre Atrás para volver a la ventana donde puede modificar la selección. Pulse sobre Siguiente para empezar la instalación. ------------------------------------------------------------------------ 22.10 Estructura del entorno del Centro de depósito de datos En el "Apéndice G. Estructura del entorno del centro de depósito de datos" de la página 401, hay una entrada incorrecta en la tabla. C:\Archivos de programa\SQLLIB\ODBC32 no se añade a la variable de entorno PATH. La única actualización de la variable de entorno PATH es C:\Archivos de programa\SQLLIB\BIN. ------------------------------------------------------------------------ 22.11 Utilización de Invert Transformer El manual afirma que Invert Transformer puede crear una tabla fuente basándose en parámetros pero se olvida de mencionar que la tabla destino generada no tendrá las columnas de salida que se deseen, que deben crearse explícitamente en la tabla de destino. ------------------------------------------------------------------------ 22.12 Acceso a datos de DB2 Versión 5 con el agente de depósito de DB2 Versión 7 Los agentes de depósito de DB2 Versión 7, tal como los configura el proceso de instalación de DB2 Versión 7, soportarán el acceso a datos de DB2 Versión 6 y de DB2 Versión 7. Si necesita acceder a datos de DB2 Versión 5, debe abordarlo de una de las dos maneras siguientes: * Migre los servidores DB2 Versión 5 a DB2 Versión 6 o a DB2 Versión 7. * Modifique la configuración del agente, en el sistema operativo apropiado, para que permita el acceso a datos de DB2 Versión 5. Los agentes de depósito de DB2 Versión 7 no soportan el acceso a datos de DB2 Versión 2 ni de cualquier otra versión anterior. 22.12.1 Migración de servidores DB2 Versión 5 Para obtener información sobre cómo migrar servidores DB2 Versión 5, consulte la publicación DB2 Universal Database Guía rápida de iniciación correspondiente a su sistema operativo. 22.12.2 Cambio de la configuración del agente La información siguiente describe cómo cambiar la configuración del agente en cada sistema operativo. Cuando migre los servidores DB2 a DB2 Versión 6 o posteriores, elimine los cambios efectuados en la configuración. 22.12.2.1 Agentes de depósito de UNIX Para configurar un agente de depósito de UNIX de forma que acceda a datos de DB2 Versión 5 con acceso CLI u ODBC: 1. Instale el cliente de ejecución DB2 Versión 6. Puede obtener el cliente de ejecución seleccionando la bajada del cliente desde el URL siguiente: http://www.ibm.com/software/data/db2/udb/support 2. Actualice el archivo de configuración del agente de depósito de forma que la variable de entorno DB2INSTANCE apunte a una instancia de DB2 Versión 6. 3. Catalogue todas las bases de datos en esta instancia de DB2 Versión 6 a la que el agente de depósito va a acceder. 4. Detenga el proceso del daemon agente emitiendo el mandato kill con el ID de proceso del daemon agente. A continuación, el daemon agente se reiniciará automáticamente. Para matar (kill) el proceso se necesita autorización de usuario root. 22.12.2.2 Agentes de depósito de Microsoft Windows NT, Windows 2000 y OS/2 Para configurar un agente de depósito de Microsoft NT, Windows 2000 u OS/2 de forma que acceda a datos de DB2 Versión 5: 1. Instale DB2 Connect Enterprise Edition Versión 6 en una estación de trabajo distinta de aquélla en que se ha instalado el agente de depósito de DB2 Versión 7. DB2 Connect Enterprise Edition se incluye formando parte de DB2 Universal Database Enterprise Edition y de DB2 Universal Database Enterprise - Extended Edition. Si se ha instalado la Versión 6 de cualquiera de estos productos de DB2, no es necesario instalar DB2 Connect por separado. Restricción: no se puede instalar varias versiones de DB2 en la misma estación de trabajo Windows NT u OS/2. Puede instalar DB2 Connect en otra estación de trabajo Windows NT o en una estación de trabajo OS/2 o UNIX. 2. Configure al agente de depósito y DB2 Connect Versión 6 para acceder a los datos de DB2 Versión 5. Para obtener más información, consulte la publicación DB2 Connect User's Guide. Los pasos siguientes constituyen una visión general de los pasos necesarios: a. En el sistema DB2 Versión 5, utilice el Procesador de línea de mandatos de DB2 para catalogar la base de datos de Versión 5 a la que va a acceder el agente de depósito. b. En el sistema DB2 Connect, utilice el Procesador de línea de mandatos de DB2 para catalogar: + El nodo TCP/IP para el sistema DB2 Versión 5 + La base de datos para el sistema DB2 Versión 5 + La entrada DCS para el sistema DB2 Versión 5 c. En la estación de trabajo agente de depósito, utilice el Procesador de línea de mandatos de DB2 para catalogar: + El nodo TCP/IP para el sistema DB2 Connect + La base de datos para el sistema DB2 Connect Para obtener información sobre cómo catalogar bases de datos, consulte la publicación DB2 Universal Database Suplemento de instalación y configuración. 3. En la estación de trabajo agente de depósito, vincule el paquete de la CLI de DB2 con cada una de las bases de datos a las que se vaya a acceder a través de DB2 Connect. Los mandatos siguientes de DB2 proporcionan un ejemplo de vinculación con v5database, base de datos hipotética de DB2 versión 5. Utilice el Procesador de línea de mandatos de DB2 para emitir los mandatos siguientes. db2cli.lst y db2ajgrt están ubicados en el directorio \sqllib\bnd. db2 connect to v5database user idusuario using contraseña db2 bind db2ajgrt.bnd db2 bind @db2cli.lst blocking all grant public donde idusuario es el ID de usuario para la base de datos de v5 y contraseña es la contraseña para el ID de usuario. Se produce un error cuando se vincula db2cli.list a la base de datos de DB2 Versión 5. Sucede este error porque en esta configuración no se soportan objetos grandes (LOB). Este error no afectará al acceso por parte del agente de depósito a la base de datos de DB2 Versión 5. Para acceder a datos de DB2 Versión 5 a través de DB2 Connect, se requiere el FixPak 14 para DB2 Universal Database Versión 5, que estará disponible en junio de 2000. Consulte el número de APAR JR14507 en dicho FixPak. ------------------------------------------------------------------------ 22.13 Programa de extracción de metadatos de IBM ERwin 22.13.1 Contenido Requisitos de software Archivos de programa Creación de archivos de lenguaje de códigos Importación de un archivo de lenguaje de códigos al Centro de depósito de datos Importación de un archivo de lenguaje de códigos al Gestor de catálogos de información Resolución de problemas Correlación de ERwin con el Centro de depósito de datos Correlación de ERwin con el Gestor de catálogos de información En este apartado se describe cómo utilizar el Programa de extracción de metadatos de IBM ERwin para extraer metadatos de un archivo ER1 y crear un archivo de lenguaje de códigos del Centro de depósito de datos o del Gestor de catálogos de información (DataGuide). El programa de extracción de metadatos extrae todos los objetos físicos tales como bases de datos, tablas y columnas, que están almacenados en el archivo ER1 de entrada y graba el modelo de metadatos en un archivo de lenguaje de códigos del Centro de depósito de datos o del Gestor de catálogos de información. El modelo lógico para el Gestor de catálogos de información, que consta de entidades y atributos, también se extrae y crea, creando todos los identificadores de relación pertinentes entre objetos, como por ejemplo entre bases de datos y tablas, y entre tablas y entidades. Para las tablas sin base de datos, se crea una base de datos por omisión denominada DATABASE. Para las tablas sin esquema, se utiliza el esquema por omisión USERID. Para el nombre de modelo, se utiliza el nombre del archivo ER1. Si desea obtener más información sobre la correlación de atributos de ER1 con los identificadores del Centro de depósito de datos o del Gestor de catálogos de información, consulte los apartados "Correlación de ERwin con el Centro de depósito de datos de DB2" y "Correlación de ERwin con el Gestor de catálogos de información." El programa de extracción de metadatos soporta todos los modelos de ER1 con bases de datos relacionales, que incluyen DB2, Informix, Oracle, Sybase, fuentes de datos ODBC y Microsoft SQL Server. 22.13.2 Requisitos de software Para ejecutar el programa de extracción de metadatos se deben cumplir los requisitos de software siguientes: * Windows NT 4.0 o posteriores * ERwin 3.5.2 con Service Pack 3 Build 466 Para importar el archivo de lenguaje de códigos de ERwin se deben cumplir los requisitos de software siguientes: Para el Centro de depósito de datos: IBM DB2 Universal Database Versión 7.2 Para el Gestor de catálogos de información: IBM DB2 Warehouse Manager 7.2 Los archivos de lenguaje de códigos de plantilla (.tag) deben estar en el directorio que se imprime mediante la variable de entorno VWS_TEMPLATES. Los archivos de lenguaje de códigos de tipo (.tag) deben estar en el directorio al que apunta la variable de entorno DGWPATH. 22.13.3 Archivos de programa El programa de extracción de metadatos se instala en el subdirectorio sqllib\bin del directorio de IBM DB2. El programa instala en el directorio los archivos siguientes: flgerwin.exe Programa principal de migración erwext.dll DLL generadora de archivos de lenguaje de códigos cdmerwsn.dll DLL de clase reiniciadora de la API de ERwin Para iniciar el programa de extracción, emita el mandato flgerwin desde un indicador de mandatos. 22.13.4 Creación de archivos de lenguaje de códigos Para crear un archivo de lenguaje de códigos del Centro de depósito de datos o del Gestor de catálogos de información, ejecute el programa flgerwin.exe y proporcione dos parámetros principales. El primer parámetro es el archivo ER1 del que se deben extraer los metadatos. El segundo es el nombre del archivo de lenguaje de códigos de salida. Por omisión, el programa de extracción añade el parámetro MERGE al archivo de lenguaje de códigos del Centro de depósito de datos. La sintaxis del mandato es: flgerwin archivoEntrada.er1 archivoSalida.tag [-dwc] [-icm] [ -m] [-u] [-a] [-d] La sintaxis del mandato si se desea crear un esquema en estrella es: flgerwin archivoEntrada.er1 archivoSalida.tag [-dwc] [-starschema] -dwc Crea un archivo de lenguaje de códigos del Centro de depósito de datos. Los parámetros opcionales disponibles para -dwc son -m y -starschema. -icm Crea un archivo de lenguaje de códigos del Gestor de catálogos de información. Los parámetros opcionales disponibles para -icm son -m, -u, -a y -d. -starschema Crea un archivo de lenguaje de códigos de esquema en estrella del modelo ERwin. -m Especifica la acción sobre el objeto como MERGE. -u Especifica la acción sobre el objeto como UPDATE. -a Especifica la acción sobre el objeto como ADD. -d Especifica la acción sobre el objeto como DELETE. El programa de extracción de metadatos funciona con metadatos, y no con datos. Una vez realizada la importación del archivo de lenguaje de códigos ERwin y antes de utilizar la tabla de destino, deberá comparar las contraseñas y los ID de usuario. Para fusionar metadatos con datos existentes en la base de datos: Cambie el ID de usuario y la contraseña del Centro de depósito de datos en Propiedades --> Base de datos --> ID de usuario para que coincidan con el ID de usuario y la contraseña en la base de datos fusionada. Mediante el programa de extracción de metadatos, puede importar un archivo de lenguaje de códigos como un destino. En los metadatos recién importados, las tablas todavía no están llenas. Puede ver dichas tablas como representaciones lógicas o físicas y, a continuación, crear un paso de depósito para llenar las definiciones de tablas importadas de ERwin. El archivo ER1 de entrada debe estar en un estado en que se pueda grabar. Una vez que se ejecuta el programa de extracción de metadatos, el archivo ER1 pasa a ser de sólo lectura. Para cambiar el archivo a la modalidad de lectura/grabación, utilice un mandato tal como el del ejemplo siguiente: attrib -r modsimplerwin.er1 donde modsimplerwin.er1 es el nombre del archivo plano ERwin. El programa de extracción de metadatos guarda el archivo ER1 en estado de sólo lectura si se está utilizando el archivo en una sesión actual de ERwin o si se ha detectado alguna condición de error. Si el archivo ER1 está en estado de sólo lectura, es posible que reciba un mensaje de error por terminación anormal del programa. El programa de extracción de metadatos visualiza el nombre de la tabla que está procesando actualmente. Cuando finalice el proceso del programa de extracción de metadatos, el usuario recibirá un mensaje informativo. Cuando se crean esquemas en estrella mediante la unión automática de tablas de dimensiones a tablas de hechos, el proceso puede durar mucho en función de la cantidad de tablas que se utilicen. Durante el proceso, las líneas de unión automática son verdes. Cuando se guardan, pasan a ser negras. Utilice el nombre de limitación generado automáticamente para asegurarse de que el nombre de limitación es exclusivo. Durante el proceso, puede que reciba un mensaje que diga "Se ha encontrado una columna duplicada. No se extraerá la columna." Este mensaje es informativo y no afecta a una terminación satisfactoria del programa de extracción. Se visualiza este mensaje cuando el nombre físico de una clave foránea es igual que el nombre físico de una columna de la tabla que se está procesando actualmente. 22.13.5 Importación de un archivo de lenguaje de códigos al Centro de depósito de datos Puede importar un archivo de lenguaje de códigos al Centro de depósito de datos de una de dos maneras. Puede utilizar el Centro de depósito de datos o la línea de mandatos. Para utilizar el Centro de depósito de datos para importar un archivo de lenguaje de códigos: 1. Pulse Inicio --> Programas --> IBM DB2 --> Centro de control. Se abre el Centro de control de DB2. 2. Abra el Centro de depósito de datos e inicie una sesión. 3. Pulse Depósito con el botón derecho del ratón. Se abre la ventana Importar. 4. Pulse Importar metadatos -> ERwin. Se abre la ventana Importar metadatos. 5. En el campo Archivo de entrada, escriba el nombre del archivo de lenguaje de códigos de entrada y pulse Bien. 6. Seleccione el recuadro de selección Extraer esquema en estrella para definir un modelo de metadatos de esquema en estrella de ERwin como un esquema de depósito. Una vez realizada la importación, puede pulsar Ver --> Renovar para ver el nuevo paso. Para importar un archivo de lenguaje de códigos utilizando la línea de mandatos, entre el mandato siguiente: iwh2imp2 nombrearchivo-códigos nombrevía-anotación bd-control-destino idusuario contraseña nombrearchivo-códigos Nombre de archivo y vía completa del archivo de lenguaje de códigos. nombrevía-anotación Nombre de vía completo del archivo de anotaciones cronológicas. bd-control-destino Nombre de la base de datos de destino para la importación. idusuario ID de usuario utilizado para acceder a la base de datos de control. contraseña Contraseña utilizada para acceder a la base de datos de control. Para cambiar la definición de una base de datos DB2 de forma que sea fuente del Centro de depósito de datos, puede cambiar el archivo de lenguaje de códigos: * Cambie el identificador ISWH de ISWH(Y) por ISWH(N) para cada una de las bases de datos que desea que sean fuentes. * Cambie el identificador de relación de :RELTYPE.TYPE(LINK) SOURCETYPE(SCGTARIR) TARGETYPE(DATABASE) por :RELTYPE.TYPE(LINK) SOURCETYPE(SCGSRCIR) TARGETYPE(DATABASE) para cada una de las bases de datos que desea que sean fuentes. Cuando se importe el archivo de lenguaje de códigos, puede que reciba el mensaje siguiente: Mensaje: DWC13238E El tipo de objeto "COLUMN" identificado por "DBNAME(___) OWNER(___) TABLE(___) COLUMNS(___)" está definido dos veces en el archivo de lenguaje de códigos. Este mensaje es informativo y la importación se ha realizado satisfactoriamente. Es posible que reciba este mensaje si tiene una entidad que tiene claves foráneas con el mismo nombre, o una entidad con columnas de nombre parecido que se han visto afectadas por un truncamiento, o en otras circunstancias similares. Vea si el modelo contiene nombres de columna duplicados y efectúe los ajustes oportunos. 22.13.6 Importación de un archivo de lenguaje de códigos al Gestor de catálogos de información Existen dos maneras de importar un archivo de lenguaje de códigos al Gestor de catálogos de información. Se pueden utilizar el Administrador de catálogos de información o la línea de mandatos. Para utilizar el Administrador de catálogos de información para importar un archivo de lenguaje de códigos: 1. Pulse Inicio --> Programas --> DB2 --> Gestor de catálogos de información. 2. Pulse Catálogo --> Importar. Se abre la ventana Importar. 3. Pulse Buscar para buscar el archivo de lenguaje de códigos y, a continuación, pulse Importar. Una vez realizada la importación, puede realizar una doble pulsación sobre Sujetos, con lo cual se abre una ventana que muestra todas las bases de datos y los modelos importados. Para importar un archivo de lenguaje de códigos utilizando la interfaz de mandatos, entre el mandato siguiente: DGUIDE /USERID idusuario /PASSWORD contraseña /DGNAME nombredg /IMPORT nombrearchivo /LOGFILE nombrearchivo /ADMIN /RESTART (B|C) /USERID ID de usuario utilizado para acceder a la base de datos de control. /PASSWORD Contraseña para este ID de usuario. /DGNAME Nombre del Gestor de catálogos de información. /IMPORT Nombre de archivo y vía completa del archivo de lenguaje de códigos. /LOGFILE Nombre de vía completo del archivo de anotaciones cronológicas. /ADMIN Indica que se está iniciando una sesión como administrador. /RESTART Indica que la importación empezará al principio del archivo de lenguaje de códigos (opción B) o empezará a partir del último punto confirmado (opción C, que es el valor por omisión). 22.13.7 Resolución de problemas Si recibe un mensaje de error, busque aquí el mensaje con la acción que puede emprender para resolver el error. Falta archivo de entrada ER1 o archivo de salida de códigos. El programa de extracción de metadatos requiere dos parámetros en un orden concreto. El primer parámetro es el nombre del archivo ER1 yy el segundo es el nombre del archivo de salida de códigos. Si se especifica el nombre de un archivo de lenguaje de códigos que ya existe, se sobregrabará dicho archivo. Terminación anómala del programa del sistema Windows. Probablemente, el archivo ER1 de entrada se encuentra en estado de sólo lectura. Puede suceder esto si se ha producido un problema al guardar el archivo ER1 y el programa de extracción de metadatos ha puesto el archivo en modalidad de sólo lectura. Emita el mandato attrib -r archivoEntrada.er1 en un shell de mandatos para cambiar el estado del archivo ER1 por el de lectura/grabación. Archivo de lenguaje de códigos ... no se ha podido abrir. Compruebe si existe en el sistema algún problema que pueda impedir que se cree o abra un archivo en la unidad actual. No se ha encontrado la vía de acceso a los archivos de plantillas. No se ha establecido la variable de entorno VWS_TEMPLATES. Compruebe que se ha instalado el Centro de depósito de datos. No se ha encontrado la vía de acceso a los archivos de tipo. No se ha establecido la variable de entorno DGWPATH. Compruebe que se ha instalado el Centro de depósito de datos. Versión de servidor no soportada: ... El archivo ER1 de entrada del que está tratando realizar la extracción está almacenado en un servidor de destino que el programa no soporta. Inicie ERwin, abra el archivo ER1 y, a continuación, pulse Servidor --> Servidor de destino y la versión apropiada (vea los Requisitos de software]. Guarde el archivo ER1. Error desconocido de ERwAPI. Se ha producido un error en la API de ERwin y el programa no ha podido obtener más información sobre el error. Asegúrese de que ERwin 3.5.2 está instalado. Debe registrar la API de ERwin. Para registrar la API de ERwin, ejecute el mandato siguiente desde el directorio en que están instalados los archivos del programa ERwin: regsvr32 er2api32.dll. Verá un mensaje, "DllRegisterServer en er2api32.dll ha sido satisfactorio." Puede iniciar el programa de extracción desde el Centro de depósito de datos, o bien emitiendo el mandato flgerwin desde un shell de mandatos. Error del programa de extracción: ... Compruebe el mensaje de error y emprenda la acción adecuada. Probablemente, se trata de un error interno del programa de extracción y hay que informar del problema a un representante de IBM. Error desconocido del programa de extracción. Se ha producido un error desconocido. Probablemente, se trata de un error interno y hay que informar del problema a un representante de IBM. El programa de extracción ha terminado debido a error(es). Se ha producido un error que impide la conclusión del programa de extracción. Consulte mensajes de error adicionales para resolver el problema o póngase en contacto con un representante de IBM. 22.13.8 Correlación de ERwin con el Centro de depósito de datos En este apartado se muestra cómo se corresponden los principales atributos de objetos de ERwin con los códigos del Centro de depósito de datos: Base de datos - BaseDatosDepósito.tag o BaseDatosFuente.tag ERwin Código de la línea de Centro de depósito de mandatos datos Nombre de diagrama NAME Nombre de la Fuente de depósito o del Destino de depósito Autor del diagrama RESPNSBL Contacto Nombre de base de DBNAME Nombre de base de datos datos Versión de base de DBTYPE Tipo de base de datos datos Descripción del SHRTDESC Descripción diagrama Tabla - Tabla.tag ERwin Código de la línea de Centro de depósito de mandatos datos Nombre de tabla NAME Nombre de tabla Nombre de tabla TABLES Nombre de tabla Nombre de base de DBNAME n/d datos Propietario de la OWNER Esquema de tabla tabla Comentario de tabla SHRTDESC Descripción Columna - Columna.tag ERwin Código de la línea de Centro de depósito de mandatos datos Nombre columna NAME Nombre de columna Tipo de datos NATIVEDT Tipo de datos Longitud LENGTH Longitud Escala SCALE Escala Opción nula NULLABLE Admite nulos (recuadro de selección) Posición POSNO n/d Clave primaria KEYPOSNO n/d Nombre de base de DBNAME n/d datos Propietario de la OWNER n/d tabla Nombre de tabla TABLES n/d Comentario de SHRTDESC Descripción columna 22.13.8.1 Correlación de ERwin con el Gestor de catálogos de información En este apartado se muestra cómo se corresponden los principales atributos de objetos de ERwin con los códigos del Gestor de catálogos de información: Base de datos - BaseDatos.tag ERwin Código de la línea de Interfaz del Gestor de mandatos catálogos de información Nombre de NAME Nombre de base de datos diagrama Autor del RESPNSBL Propietario de base de datos diagrama Nombre de base de DBNAME Nombre de base de datos datos Versión de base DBTYPE Tipo de base de datos de datos Descripción del SHRTDESC Descripción breve diagrama Tabla - TablaOVista.tag ERwin Código de la línea de Interfaz del Gestor de mandatos catálogos de información Nombre de tabla NAME Nombre de tabla Nombre de tabla TABLES Nombre de tabla Nombre de base de DBNAME Nombre de base de datos datos Propietario de la OWNER Propietario de la tabla tabla Comentario de SHRTDESC Descripción breve tabla API de ERwin TABLVIEW La definición representa una vista Columna - ColumnaOCampo.tag ERwin Código de la línea de Interfaz del Gestor de mandatos catálogos de información Nombre columna NAME Nombre de columna Tipo de datos DATATYPE Tipo de datos de la columna Longitud LENGTH Longitud de la columna Escala SCALE Escala de la columna Opción nula NULLS La columna puede ser nula (?) Posición POSNO Posición de la columna Clave primaria KEYPOSNO Posición de la columna en la clave primaria API de ERwin ISKEY La columna forma parte de la clave (?) API de ERwin UNIQKEY La columna es una clave exclusiva (?) Nombre de base de DBNAME Nombre de base de datos datos Propietario de la OWNER Propietario de la tabla tabla Nombre de tabla TABLES Nombre de tabla Comentario de SHRTDESC Descripción breve columna ERwin ISTEXT Es texto de datos (?) API de ERwin IDSRES Resolución de los datos Modelo - Modelo.tag ERwin Código de la línea de Interfaz del Gestor de mandatos catálogos de información Nombre de archivo NAME Nombre de modelo ER1 Autor del diagrama RESPNSBL Para obtener información adicional... Descripción del SHRTDESC Descripción breve diagrama Entidad - Entidad.tag ERwin Código de la línea de Interfaz del Gestor de catálogos mandatos de información Nombre de entidad NAME Nombre de entidad Notas SHRTDESC Descripción breve Definición LONGDESC Descripción extensa Propietario de la RESPNSBL Para obtener información entidad adicional... Atributo - Atributo.tag ERwin Código de la línea de Interfaz del Gestor de mandatos catálogos de información Nombre de NAME Nombre de atributo atributo Notas SHRTDESC Descripción breve Definición LONGDESC Descripción extensa Tipo de datos DATATYPE Tipo de datos del miembro Longitud LENGTH Longitud del miembro ------------------------------------------------------------------------ 22.14 Borrado de nombre y dirección en el Centro de depósito de datos 22.14.1 Utilice el Centro de depósito de datos y Trillium Software System para borrar los datos de nombre y dirección. Trillium Software System es un producto de borrado de nombre y dirección que vuelve a formatear, estandariza y verifica los datos de nombre y dirección. Puede utilizar Trillium Software System en el Centro de depósito de datos iniciando los programas de Trillium Batch System desde un programa definido por el usuario. El programa definido por el usuario se añade al árbol del Depósito cuando se importan los metadatos del JCL o script de Trillium Batch System. El Centro de depósito de datos ya proporciona una integración con herramientas de Vality and Evolutionary Technologies, Inc. 22.14.1.1 Requisitos * Debe instalar Trillium Software System en un sitio agente de depósito o en un sistema principal remoto. * En plataformas UNIX y Windows, la vía de acceso al directorio bin de Trillium Software System se debe añadir a la variable de entorno PATH, para permitir que el proceso del agente ejecute los programas de Trillium Batch System. En UNIX, esto se debe hacer añadiendo la variable de entorno PATH el archivo IWH.environment antes de iniciar el daemon vwdaemon. * Los usuarios deben tener un conocimiento suficiente para el uso del software de Trillium. La tabla siguiente muestra los requisitos de software. Sistema operativo Software necesario UNIX Trillium Software System Versión 4.0 Agente de depósito Data Warehouse Manager Versión 7.2 Windows NT y Windows 2000 Trillium Software System Versión 4.0 Agente de depósito Data Warehouse Manager Versión 7.2 Para un acceso remoto, el sistema principal debe tener instalados los daemons ftpd y rexecd. OS/390 Trillium Software System Versión 4.0 instalado en el sistema principal OS/390 remoto Debe estar instalado el agente de depósito Data Warehouse Manager Versión 7.2 instalado en UNIX, Windows NT TCP/IP 3.2 o posteriores El sistema operativo OS/390 sólo se soporta como sistema principal remoto 22.14.1.2 Componentes de Trillium Software System Trillium Software System consta de cuatro componentes principales: conversor, analizador, Geocoder y comparador. Utilice los componentes como un conjunto de funciones para realizar operaciones de borrado de nombre y dirección. Puede ejecutar los componentes desde Trillium Batch System, que es un programa definido por el usuario. Conversor Utilice el conversor para estandarizar y convertir los datos fuente al formato de salida especificado. Analizador Utilice el analizador para interpretar los datos fuente de nombre y dirección y crear metadatos sobre los datos fuente. Geocoder Utilice el Geocoder para comparar los datos fuente con datos del servicio postal, para suministrar la información que pueda faltar, como por ejemplo los códigos de courier o ZIP+4. El Geocoder también realiza operaciones de comparación con datos del Censo de Estados Unidos. Comparador Utilice el comparador para comparar nombres y direcciones similares, a fin de identificar los registros duplicados. Puede efectuar una comparación de consulta utilizando el comparador para comparar un registro con un grupo de registros. 22.14.1.3 Utilización de Trillium Batch System con el Centro de depósito de datos En el Centro de depósito de datos, puede importar metadatos de Trillium Batch System y crear un paso de programa definido por el usuario. Este paso llama a un script de Trillium Batch System del sitio agente de depósito local, o de un sitio agente de depósito remoto. En el Centro de depósito de datos, el script de Trillium Batch System es un paso con un archivo de origen y un archivo de destino. El archivo de origen es el archivo de datos de entrada utilizado para el primer mandato de Trillium Batch System. El archivo de destino es el archivo de datos de salida creado por el último mandato de Trillium del script. Luego se puede copiar el paso a otro proceso para utilizarlo con otros pasos. Las figuras siguientes muestran la relación entre los archivos de datos de entrada y de salida de Trillium Batch System y los archivos de origen y de destino del Centro de depósito de datos. Figura 1. Ejemplo de archivo de script de Trillium REM Ejecución del conversor pfcondrv -parmfile c:\tril40\us_proj\parms\pfcondrv.par REM Ejecución del analizador pfprsdrv -parmfile c:\tril40\us_proj\parms\pfprsdrv.par REM Ejecución del comparador cfmatdrv -parmfile c:\tril40\us_proj\parms\pfmatdrv.par Figura 2. Contenido del archivo pfcondrv.par INP_FNAME01 c:\tril40\us_proj\data\convinp INP_DDL01 c:\tril40\us_proj\dict\input.ddl Figura 3. Contenido del archivo pfmatdrv.par OUT_DDNAME c:\tril40\us_proj\data\maout DDL_OUT_FNAME c:\tril40\us_proj\dict\parseout.ddl Figura 4. Definición del paso de Trillium Batch System c:\Tril40\us_proj\data\convinp (archivo de origen) --> Paso de Trillium Batch System --> c:\tril40\us_proj\data\maout (archivo de destino) 22.14.1.4 Importación de metadatos de Trillium Para importar metadatos de Trillium al Centro de depósito de datos: 1. Cree un JCL o script de Trillium Batch System. Para crear el archivo de JCL o script, puede utilizar cualquier herramienta de escritura de JCL o script. 2. Pulse Depósito con el botón derecho del ratón y pulse Importar metadatos --> Trillium para abrir la ventana Trillium Batch System. 3. En el campo Script o JCL, escriba el nombre del archivo de JCL o script de Trillium Batch System que desea ejecutar. 4. En el campo Archivo de entrada, escriba el nombre del archivo de datos de entrada para el programa Trillium Batch System que se ejecute en primer lugar en el archivo de JCL o script especificado. 5. En el campo DDL de entrada, escriba el nombre del archivo de DDL de entrada que describe el archivo de datos de entrada. Este archivo tiene que estar disponible en el sitio agente de depósito. 6. En el campo Archivo de salida, escriba el nombre del archivo de datos de salida para el último programa de Trillium Batch System del archivo de JCL o script. 7. En el campo DDL de salida, escriba el nombre del archivo de DDL de salida que describe el archivo de datos de salida. Este archivo tiene que estar disponible en el sitio agente de depósito. 8. En el campo Archivo de errores de salida, escriba el nombre del archivo de errores de salida que desea utilizar. Este archivo de errores capta los errores de ejecución del programa de Trillium Batch System. Estos errores se registran en las anotaciones cronológicas de stderr. Para sistemas principales locales, si no se especifica aquí un nombre, se crea un archivo de errores de salida por omisión. Para obtener más información sobre el archivo de errores de salida, consulte el tema "Manejo de errores." 9. Pulse la pestaña Conexión. 10. Si los metadatos de Trillium que está importando se encuentran en el sitio agente de depósito, pulse Sistema principal local. Si no es así, pulse Sistema principal remoto y especifique el sistema principal remoto. Consulte el tema "Especificación del sistema principal remoto" más adelante, en este apartado. 11. Pulse Bien para importar los metadatos de Trillium y cerrar el cuaderno. 12. Si el script o JCL no se ejecuta desde el sitio agente por omisión, especifique el sitio agente de depósito que está utilizando en el cuaderno Propiedades correspondiente al paso de Trillium Batch System. Cuando finaliza la operación de importación, se añaden al árbol del Depósito los objetos de depósito siguientes: * Plantilla de Trillium Batch System.nombreScript, donde nombreScript es el nombre del archivo de script o JCL. * Proceso Trillium Batch System. * Paso de Trillium Batch System que ejecuta el programa definido por el usuario. * El archivo de origen de depósito y el archivo de destino de depósito que ha especificado al importar los metadatos. El archivo de origen y el archivo de destino son archivos fijos. * Grupo de programas de Trillium Batch System. Especificación del sistema principal remoto Para especificar un sistema principal remoto: 1. Pulse Sistema principal remoto y escriba el nombre de sistema principal TCP/IP del sistema remoto que contiene los metadatos que está importando. Si se selecciona Sistema principal remoto, el archivo de destino se crea como un archivo local, puesto que no se soportan archivos de destino remotos. Puede añadir un paso FTP para llevar el archivo remoto al archivo de destino local especificado. 2. En la lista Sistema operativo remoto, pulse el sistema operativo del sistema principal remoto al que está accediendo. 3. En el campo ID de usuario remoto, escriba el ID de usuario para el sistema principal remoto al que está accediendo. 4. En la lista Opción de contraseña, seleccione la opción de contraseña que desee utilizar para el sistema principal remoto al que está accediendo: No se requiere contraseña Especifica que no se requiere ninguna contraseña para acceder a los metadatos del sistema principal remoto. Recuperar contraseña Especifica que se recuperará la contraseña de un programa definido por el usuario. En el campo Programa de contraseña, escriba el nombre del programa de contraseña que recuperará la contraseña. Este programa debe residir en el sitio agente de depósito y grabar la contraseña en un archivo de salida, en la primera línea. En el campo Parámetros del programa, escriba los parámetros para el programa de contraseña. El primer parámetro debe ser el archivo de salida en que se grabe la contraseña. Entrar contraseña más adelante Especifica que la contraseña se entrará en un momento posterior. Entre la contraseña en el cuaderno Propiedades correspondiente al paso que ejecuta el programa de Trillium Batch System. 22.14.1.5 Correlación de los metadatos Para crear los metadatos para los archivos de origen y de destino, Trillium lee los archivos DLL de Trillium. El archivo DLL se convierte a los tipos de datos siguientes del Centro de depósito de datos: Tipos de datos DDL para UNIX, Windows NT y sistemas operativos Tipo de datos del Depósito ASCII CHARACTER CHARACTER(n) ASCII NUMERIC EBCDIC CHARACTER EBCIDIC NUMERIC Otros tipos NUMERIC Nota: Los tipos de datos EBCDIC CHARACTER y EBCIDIC NUMERIC sólo se soportan si se está ejecutando Trillium Software System en el sistema operativo OS/390. La variable n es el número de caracteres de la serie. 22.14.1.6 Restricciones Puede especificar campos solapados en los archivos DLL de entrada y de salida con el DLL de Trillium y la operación de importación de metadatos del Centro de depósito de datos. Sin embargo, los archivos de origen y de destino de depósito correspondientes no se pueden utilizar en el Centro de depósito de datos con el paso de SQL, o contenido de Ejemplo. Puesto que la operación de importación de metadatos ignora los campos solapados que abarcan todo el registro, se pueden especificar estos campos pero no se utilizarán como columnas en los archivos de origen y de destino resultantes. Si se especifica un archivo de errores, el nombre del script no puede contener espacios en blanco. 22.14.2 Grabación de un archivo de JCL de Trillium Batch System Si se graba un archivo de JCL de Trillium Batch System, se deben cumplir los requisitos siguientes. * El nombre de trabajo debe ser el ID de usuario más un carácter. * El trabajo se debe dirigir a la clase de salida retenida. * Cada paso de trabajo que ejecute un programa de Trillium Batch System debe incluir una sentencia SYSTERM DD que defina un conjunto de datos permanente. El conjunto de datos contiene los errores de los programas de Trillium Batch System. Este conjunto de datos se suprimirá automáticamente antes de someter el JCL. Para obtener más información sobre el manejo y la información de errores, consulte el tema "Manejo de errores." El archivo de errores de salida se debe especificar si el script o JCL se ejecuta en un sistema principal remoto; de no hacerlo, los mensajes de error no se captarán ni se devolverán al Centro de depósito de datos. En UNIX o Windows, la manera más sencilla de captar los mensajes de error consiste en grabar otro script que llame al script de Trillium Batch System y conduzca los errores estándares a un archivo de salida. Figura 5. Ejemplo de un paso de trabajo que incluye una sentencia SYSTERM DD //SYSTERM DD UNIT=&UNIT, // DISP=(MOD,CATLG,KEEP), // SPACE=(400,(20,20),,,ROUND), // DSN=&PROJPREF.&TRILVER.&PROJECT.STDERR; 22.14.3 Grabación de un archivo de script de Trillium Batch System en UNIX y Windows Si los archivos de parámetros o de script de Trillium Batch System contienen vías de acceso relativas a los archivos de entrada, el usuario debe colocar una sentencia cd, al principio del archivo de script, para el directorio del archivo de script. 22.14.4 Definición de un paso de Trillium Batch System Antes de definir un paso de Trillium Batch System, debe importar los metadatos de Trillium que desea utilizar en el proceso. Para añadir un paso de Trillium Batch System a un proceso: 1. Abra el proceso en el modelador de procesos. 2. Pulse el icono Trillium Batch System de la paleta. 3. Pulse Programa Trillium Batch System --> nombrePrograma, donde nombrePrograma es el nombre del programa de Trillium Batch System que desea utilizar. 4. Pulse el lugar de lienzo en que desea que aparezca el paso. 5. Lleve a cabo los pasos indicados en "Definición de un paso que ejecuta un programa definido por el usuario", en la publicación Ayuda para DB2 Universal Database. 22.14.5 Utilización del programa de Trillium Batch System definido por el usuario El programa de Trillium Batch System definido por el usuario se incluye con DB2 Data Warehouse Center Versión 7.2 para Windows NT y UNIX. El paso de Trillium Batch System que se crea al importar metadatos de Trillium ejecutará el programa de Trillium Batch System definido por el usuario. El programa definido por el usuario llamará al script o JCL de Trillium Batch System. La tabla siguiente contiene los parámetros para el script o JCL de Trillium Batch System: Parámetro Valores Sistema principal remoto * El valor por omisión es localhost. Utilice este valor si Trillium Batch System está instalado en el sitio agente de depósito. * Nombre del sistema principal remoto si Trillium Batch System está instalado en un sistema operativo remoto. Script o JCL Nombre del script o JCL Sistema operativo remoto Nombre del sistema operativo en el sistema principal remoto. Se ignora este parámetro si el valor del parámetro Sistema principal remoto es localhost. Los valores válidos son: * MVS para el sistema operativo OS/390 * UNIX para los sistemas operativos AIX, SUN Solaris, HP-UX y NUMA/Q * WIN para el sistema operativo Windows NT o 2000 ID de usuario remoto ID del usuario que tiene autorización para ejecutar el mandato remoto. Se ignora este parámetro si el valor del parámetro Nombre del sistema principal remoto es localhost. Opción de contraseña Método para obtener la contraseña. Los valores válidos son: ENTERPASSWORD Utilice este valor si se pasa la contraseña en el siguiente parámetro. PASSWORDNOTREQUIRED Utilice este valor si no se necesita ninguna contraseña. GETPASSWORD Utilice este valor si se pasa un nombre de programa en el siguiente parámetro. Restricciones: * El programa debe residir en el sitio agente, grabar la contraseña en un archivo de salida, en la primera línea, y devolver 0 si se ejecuta satisfactoriamente. * El valor del parámetro Contraseña debe ser el nombre del programa de contraseña. * El valor del parámetro Parámetros del programa debe ser una serie encerrada entre comillas dobles. * El primer parámetro de la serie debe ser el nombre del archivo de salida en que se grabará la contraseña. Contraseña El valor válido es la contraseña o el nombre del programa de contraseña. El programa de contraseña debe ser local en el sitio agente. Parámetros del programa Parámetros para el programa de contraseña. Archivo de errores de salida Nombre del archivo de errores de salida. Nota: El tipo de datos de todos los parámetros de esta tabla es CHARACTER. 22.14.6 Manejo de errores Los programas de Trillium Batch System graban mensajes de error en el archivo de errores estándares (stderr), en los sistemas operativos Windows NT y UNIX, y en el conjunto de datos SYSTERM, en el sistema operativo OS/390. Para captar los errores de los programas de Trillium Batch System en sistemas operativos Windows NT o UNIX, los errores estándares se deben redirigir a un archivo de errores de salida. Para captar los errores de los programas de Trillium Batch System en el sistema operativo OS/390, el JCL debe incluir una sentencia SYSTERM DD. Si especifica el nombre del archivo de errores de salida en la ventana Importar metadatos, debe redirigir la salida de errores estándares a, o almacenarla en, el archivo de errores. El Centro de depósito de datos leerá el archivo e informará de todas las líneas que contienen la serie ERROR como mensajes de error. Todos los mensajes de error de los programas de Trillium Batch System contienen la serie ERROR. Si no se especifica el archivo de errores de salida en un script o en el JCL que se ejecuta en el sitio agente de depósito, el Centro de depósito de datos creará automáticamente un nombre de archivo y redirigirá la salida de errores estándares a dicho archivo. Si se encuentra un error, no se suprimirá el archivo de errores. El archivo de errores se almacena en el directorio especificado por la variable de entorno VWS_LOGGING. El nombre de archivo es tbsudp-fecha- hora.err, donde fecha es la fecha del sistema en que se crea el archivo y hora es la hora del sistema en que se crea el archivo. El nombre de archivo siguiente muestra el formato del nombre de archivo de errores de salida: tbsudp-021501-155606.err 22.14.6.1 Códigos de retorno de error Número de error Descripción 0 Satisfactorio 4 Aviso. No se ha podido borrar el archivo de contraseña o se ha producido un error interno mientras el programa de Trillium Batch System definido por el usuario estaba accediendo a un archivo temporal. Compruebe el estado del archivo de contraseña o todos los archivos temporales creados bajo el directorio especificado por la variable de entorno VWS_LOGGING. 8 El número de parámetros o los valores de los parámetros no son correctos. Lea el archivo de anotaciones cronológicas o la documentación para ver la sintaxis correcta. 12 Se ha producido un problema mientras el programa de Trillium Batch System definido por el usuario estaba conectando con el sistema principal remoto mediante FTP. Compruebe la conexión FTP, o el nombre, el ID de usuario y la contraseña del sistema principal. 16 El programa de Trillium Batch System definido por el usuario no puede crear el archivo de anotaciones cronológicas o un archivo interno. Compruebe que el usuario tiene la autorización correcta y vea si el disco está lleno. 20 No se puede ejecutar el JCL de OS/390, o se ha producido un error mientras el programa de Trillium Batch System definido por el usuario estaba suprimiendo u obteniendo un archivo de OS/390 mediante FTP. Compruebe el archivo JESLogFile para identificar la razón. 48 No se puede encontrar la variable de entorno VWS_LOGGING o no se puede crear el archivo de anotaciones cronológicas. Vea si hay más información en el archivo de anotaciones cronológicas. 56 No se puede ejecutar el script de Windows NT o UNIX, o se ha producido un error mientras el programa de Trillium Batch System definido por el usuario estaba conectando con el sistema principal remoto. Compruebe la conexión, o el nombre, el ID de usuario y la contraseña del sistema principal. 500 El archivo de script o de JCL devuelve un error, o no devuelve un error pero el archivo de errores contiene datos. Vea si hay más información en el archivo de anotaciones cronológicas. En OS/390, compruebe también el archivo JESLogFile. 22.14.6.2 Archivo de anotaciones cronológicas El Centro de depósito de datos almacena toda la información de diagnóstico en un archivo de anotaciones cronológicas cuando se ejecuta el programa de Trillium Batch System definido por el usuario. El nombre del archivo de anotaciones cronológicas es tbsudp-fecha-hora.log, donde fecha es la fecha del sistema en que se crea el archivo y hora es la hora del sistema en que se crea el archivo. El archivo de anotaciones cronológicas se crea en el directorio especificado por la variable de entorno VWS_LOGGING del sitio agente. El archivo de anotaciones cronológicas se suprime si el programa de Trillium Batch System definido por el usuario se ejecuta satisfactoriamente. ------------------------------------------------------------------------ 22.15 Integración de MQSeries con el Centro de depósito de datos Ahora, el Centro de depósito de datos permite acceder a datos de una cola de mensajes MQSeries como una vista de una base de datos DB2. Se proporciona un asistente para crear una función de tabla DB2 y la vista de DB2 mediante la cual se puede acceder a los datos. Cada uno de los mensajes MQSeries se trata como una serie delimitada, que se analiza en función de las especificaciones del usuario y se devuelve como una fila de resultado. Además, se puede acceder a los mensajes MQSeries que son documentos XML como fuente del depósito. Mediante el Centro de depósito de datos, puede importar metadatos de una cola de mensajes MQSeries y de un archivo de Definición de acceso a documento (DAD) de DB2 XML Extender. 22.15.1 Creación de vistas para mensajes MQSeries 22.15.1.1 Requisitos DB2 Universal Database Versión 7.2. DB2 Warehouse Manager Versión 7.2 Soporte de MQSeries. Consulte más información sobre los requisitos de MQSeries en el apartado MQSeries. Para obtener información sobre el establecimiento de la fuente de depósito, consulte el apartado de configuración de las funciones definidas por el usuario. 22.15.1.2 Restricciones * Cuando se cataloga una base de datos de fuente de depósito, en la máquina agente se cataloga el alias de la base de datos. Sin embargo, cuando se crean vistas de MQSeries y XML, el Centro de depósito de datos supone que el alias de la base de datos también está definido en la máquina cliente, e intentará conectar con ésta utilizando el id de usuario y la contraseña de la base de datos fuente del depósito. Si lo consigue, se invocará al asistente y se podrá crear la vista. Si no lo consigue, se visualizará un mensaje de aviso y deberá catalogar el alias o elegir otro alias de base de datos en el asistente. * Para conocer la longitud máxima de los mensajes MQ, consulte el apartado de las Notas del release que hace referencia a la Consulta de SQL. 22.15.1.3 Creación de una vista para mensajes MQSeries Para crear una vista para mensajes MQSeries: 1. En la ventana Centro de depósito de datos, expanda el árbol Orígenes del depósito. 2. Expanda la fuente de depósito que deberá contener la vista. 3. Pulse la carpeta Vistas con el botón derecho del ratón y pulse Crear para mensajes MQSeries.... Se abre el asistente para MQSeries. Cuando haya terminado con el asistente, se creará una nueva vista en el Centro de depósito de datos. Cuando se seleccione dicha vista, se accederá a la cola de MQSeries y se analizará cada mensaje como una serie delimitada en función de las especificaciones del usuario indicadas en el asistente. 22.15.2 Importación de mensajes MQSeries y metadatos XML 22.15.2.1 Requisitos DB2 Universal Database Versión 7.2. DB2 XML Extender Versión 7.2. Soporte de MQSeries. Consulte más información sobre los requisitos de MQSeries en el apartado MQSeries. Para obtener información sobre el establecimiento de la fuente del depósito, consulte el apartado de configuración de las funciones definidas por el usuario. 22.15.2.2 Restricciones La importación fallará si las tablas de destino existen con claves primarias o foráneas. Antes de realizar la importación, deberá suprimir manualmente las definiciones de dichas claves en el Depósito de datos. 22.15.2.3 Importación de mensajes MQSeries y metadatos XML Para importar metadatos de MQSeries al Centro de depósito de datos: 1. Prepare la base de datos de destino del depósito: o Debe definir el destino del depósito y registrar y habilitar los transformadores. o Debe habilitar el destino del depósito para DB2 XML Extender. Para obtener más información, consulte las Notas del release de DB2 XML Extender Versión 7.2. o Cree un archivo de Definición de acceso a datos (DAD) de XML Extender para indicar al Centro de depósito de datos cómo debe correlacionar el contenido del documento XML con las tablas del depósito. Habilite una colección de XML utilizando el archivo DAD para la base de datos. Para obtener más información, consulte las Notas del release de DB2 XML Extender Versión 7.2. 2. Pulse Depósito con el botón derecho del ratón y pulse Importar metadatos --> MQSeries para abrir la ventana Importar metadatos. 3. En el campo Servicio AMI, escriba el punto de servicio al que se envía un mensaje o del que se recupera. 4. En el campo Política AMI, escriba la política que utilizará el sistema de gestión de mensajes para realizar la operación. 5. En el campo Archivo DAD, escriba el nombre del archivo DAD de DB2 XML Extender, o busque un archivo a seleccionar pulsando la elipse (...). Este archivo tiene que ser local. 6. En el campo Destino del depósito, seleccione en la lista de cuadro combinado el nombre del destino del depósito en que se ejecutará el paso. El destino del depósito debe estar ya definido. 7. En el campo Esquema, escriba el nombre de un esquema para calificar los nombres de tabla del archivo DAD que no tengan calificador. Por omisión, se toma como esquema el id de usuario de conexión del destino del depósito seleccionado previamente. 8. Elija una Opción de destino: Si desea que el paso sustituya al contenido de la tabla de destino durante la ejecución, pulse el botón de selección Sustituir el contenido de la tabla. Si desea que el paso se añada al contenido de la tabla de destino durante la ejecución, pulse el botón de selección Añadir al contenido de la tabla. 9. Pulse en Aceptar. Se cierra la ventana Importar metadatos. Cuando finaliza la operación de importación, se añaden al árbol del Depósito los objetos de depósito siguientes: * Un área de sujetos denominada MQSeries y XML. * Un proceso denominado MQSeries y XML. * Un grupo de programas definidos por el usuario denominado MQSeries y XML. * Definiciones de todas las tablas de destino del depósito descritas en el archivo DAD. * Paso ... * Plantilla de programas .. Si el sitio agente de destino del Depósito es distinto de la máquina local, debe cambiar el parámetro de paso: 1. Pulse el paso con el botón derecho del ratón y seleccione Propiedades. Pulse la pestaña Parámetros del cuaderno de propiedades. 2. Cambie el nombre del parámetro de archivo DAD por el nombre del mismo archivo DAD en el sitio agente de destino del depósito remoto. 3. Asegúrese de que el Sitio agente de la pestaña Opciones de proceso contiene el sitio agente que desea. 22.15.2.4 Utilización del programa de MQSeries definido por el usuario El procedimiento almacenado de MQSeries y XML se denomina MQXMLXF y se incluye con DB2 Data Warehouse Center Versión 7.2 para Windows NT y UNIX. El paso que se crea al importar metadatos de MQSeries y XML ejecutará el procedimiento almacenado. En la tabla siguiente se describen sus parámetros: Parámetro Valores NombreServicio MQSeries Nombre del punto de servicio al que se envía un mensaje o del que se recupera. NombrePolítica MQSeries Nombre de la política que utilizará el sistema de gestión de mensajes para realizar la operación. Nombre de archivo DAD Nombre del archivo DAD de DB2 XML Extender ListaTablasDestino Lista de las tablas de destino del paso, separadas por comas. Opción REPLACE o APPEND RUN ID Número de edición del paso (a efectos de registro cronológico) Nota: El tipo de datos de todos los parámetros de esta tabla es CHARACTER. El procedimiento almacenado suprime todas las filas de las tablas de destino si Opción tiene el valor REPLACE. También llama al procedimiento almacenado de DB2 XML Extender para llenar las tablas de destino para todos los mensajes MQSeries existentes. 22.15.2.5 Códigos de retorno de error Al ejecutar el paso, el procedimiento almacenado puede devolver el código de error SQLCODE -443 y SQLSTATE 38600. Para diagnosticar el error, consulte la tabla siguiente de textos de diagnóstico posibles. Número de error Descripción AMIRC=xxxxx; capa AMI. Para conocer más detalles, consulte la documentación de MQSeries. indica la ubicación del archivo de anotaciones cronológicas. XMLRC=xxxxx; XML Extender. Para ver descripciones de los códigos de retorno, consulte la documentación de DB2 XML Extender. indica la ubicación del archivo de anotaciones cronológicas. SQLCODE=xxxxx; devuelto cuando se realiza una petición de SQL. indica la ubicación del archivo de anotaciones cronológicas. Para todos los errores, vea si hay más información en el archivo de anotaciones cronológicas. 22.15.2.6 Archivo de registro de errores El Centro de depósito de datos almacena toda la información de diagnóstico en un archivo de anotaciones cronológicas cuando se ejecuta MQXMLXF. El nombre del archivo de anotaciones cronológicas es mqxf.log, donde es el RunID que se ha pasado al procedimiento almacenado. El Centro de depósito de datos creará el archivo en el directorio indicado por la variable de entorno VWS_LOGGING. Si no está definido este entorno, el archivo de anotaciones cronológicas se creará en el directorio temporal. Para hacer que la variable de entorno VWS_LOGGING resulte visible para el procedimiento almacenado en una plataforma Unix, debe añadir VWS_LOGGING a la variable de entorno DB2ENVLIST utilizando el mandato db2set antes que el mandato db2start. La figura siguiente es un mandato de entorno de ejemplo. Figura 6. Ejemplo de mandato de variable de entorno db2set DB2ENVLIST="AMT_DATA_PATH VWS_LOGGING" El archivo de anotaciones cronológicas se suprime si el paso se ejecuta satisfactoriamente. ------------------------------------------------------------------------ 22.16 Soporte de Microsoft OLE DB y de Servicios de transacción de datos Ahora, el Centro de depósito de datos permite acceder a datos de un suministrador de OLE DB como una vista de una base de datos DB2. Puede utilizar el asistente OLE DB Assist suministrado con el Centro de depósito de datos para crear una función de tabla DB2 OLE DB y la vista de DB2 mediante la cual se puede acceder a los datos. Los Servicios de transformación de datos (DTS) de Microsoft permiten importar, exportar y transformar datos entre fuentes OLE DB y destinos para crear depósitos de datos y despensas de datos. DTS se instala con Microsoft SQL Server. Todas las tareas de DTS están almacenadas en paquetes de DTS que se pueden ejecutar y a los que se puede acceder mediante Microsoft OLE DB Provider for DTS Packages. Puesto que se puede acceder a paquetes de DTS como fuentes OLE DB, también se pueden crear vistas con el asistente OLE DB Assist para paquetes de DTS, de la misma manera que para las fuentes de datos OLE DB. Cuando se accede a la vista durante la ejecución, se ejecuta el paquete de DTS y la tabla de destino de la tarea contenida en el paquete de DTS pasa a ser la vista creada. Después de crear una vista en el Centro de depósito de datos, la puede utilizar como cualquier otra vista. Por ejemplo, puede unir una tabla de DB2 a una fuente OLE DB en un paso de SQL. Cuando se utiliza la vista creada en un paso de SQL, se llama al suministrador de DTS y se ejecuta el paquete de DTS. Requisitos de software: * DB2 Universal Database para Windows NT Versión 7.2 como base de datos de destino del depósito * DB2 Warehouse Manager Versión 7.2 * Si la base de datos de destino del depósito se creó antes de la Versión 7.2, deberá ejecutar el mandato db2updv7 después de instalar DB2 UDB para Windows NT Versión 7.2 * Cuando se cataloga una base de datos fuente del depósito, en el sitio agente se cataloga el alias de la base de datos. Sin embargo, cuando se inicia el asistente, el Centro de depósito de datos supone que el alias de la base de datos también está definido en la estación de trabajo cliente, e intentará conectar con ésta utilizando el id de usuario y la contraseña de la base de datos fuente del depósito. Si lo consigue, se iniciará el asistente y se podrá crear la vista. Si no lo consigue, se visualizará un mensaje de aviso y deberá catalogar el alias o elegir otro alias de base de datos en el asistente. * Para identificar una tabla específica de un paquete de DTS, debe seleccionar el recuadro de selección Suministrador de conjunto de filas DSO en la pestaña Opciones de la ventana Propiedades del flujo de trabajo de la DataPumpTask que crea la tabla de destino. Si se activan varios atributos de suministrador de conjuntos de filas DSO, sólo se utiliza el resultado del primer paso seleccionado. Cuando se selecciona una vista, se devuelve el conjunto de filas de su tabla de destino y se ignoran todos los otros conjuntos de filas que se creen en pasos posteriores. * Cuando entre el nombre de tabla para el asistente, utilice el nombre de paso, que aparece en la página Opciones del cuaderno Propiedades del flujo de trabajo correspondiente a la tarea. * La serie de conexión de paquetes de DTS tiene la misma sintaxis que el mandato dtsrun. 22.16.1 Creación de vistas para funciones de tablas de OLE DB Para crear una vista para una función de tablas de OLE DB: 1. En la ventana Centro de depósito de datos, expanda el árbol Orígenes del depósito. 2. Expanda la fuente de depósito que deberá contener la vista. 3. Pulse la carpeta Vistas con el botón derecho del ratón y pulse Crear para función de tablas de OLE DB. Se abre el asistente para OLE DB Assist. El asistente le llevará por los pasos de la tarea para crear una nueva vista en la base de datos fuente del depósito. 22.16.2 Creación de vistas para paquetes de DTS Para crear una vista para un paquete de DTS: 1. En la ventana Centro de depósito de datos, expanda el árbol Orígenes del depósito. 2. Expanda la fuente de depósito que deberá contener la vista. 3. Pulse la carpeta Vistas con el botón derecho del ratón y pulse Microsoft OLE DB Provider para paquetes de DTS. Se abre el asistente para OLE DB Assist. El asistente le llevará por los pasos de la tarea para crear una nueva vista en la base de datos fuente del depósito. Para obtener más información sobre DTS, consulte la documentación de Microsoft Platform SDK 2000, que incluye una explicación detallada de cómo crear la serie de suministrador que el asistente necesita para conectar con el suministrador de DTS. ------------------------------------------------------------------------ 22.17 Utilización de la confirmación incremental con sustitución En un paso en que el tipo de llenado es Sustituir, sólo se utiliza una confirmación incremental cuando se insertan los nuevos datos. Los datos anteriores se suprimen dentro del ámbito de una simple confirmación. Si tiene necesidad de suprimir los datos sin producir registros de anotación cronológica, ejecute un paso que cargue un archivo vacío antes de ejecutar el paso de SQL con el tipo de llenado de agregación. ------------------------------------------------------------------------ 22.18 Nombres de los archivos de datos de rastreo componentes El Centro de depósito de datos graba los archivos siguientes en Windows NT: AGNTnnnn.Log contiene información de rastreo. nnnn es el ID de proceso numérico del agente del depósito, que puede contener 4 ó 5 dígitos en función del sistema operativo. AGNTnnnn.Set contiene valores de entorno para el agente. nnnn es el ID de proceso numérico del agente del depósito, que puede contener 4 ó 5 dígitos en función del sistema operativo. El directorio por omisión es x:\program files\sqllib\logging, donde x es la unidad en que está instalado DB2. ------------------------------------------------------------------------ 22.19 Se necesita Open Client para fuentes Sybase en AIX y en Solaris Operating Environment En el Capítulo 3. Configuración de fuentes de depósito, AIX, Tabla 3. Requisitos de conectividad para fuentes de datos soportadas en AIX y para Solaris Operating Environment, Tabla 4. Requisitos de conectividad para fuentes de datos soportadas en Solaris Operating Environment, la entrada para Sybase debe contener un paso adicional en la columna "Cómo conectar:". El paso adicional se muestra a continuación como paso 3. 3. Instale Open Client Observe que Open Client es necesario para conectar con fuentes Sybase en plataformas Windows NT o Windows 2000. ------------------------------------------------------------------------ 22.20 Entradas de ejemplo corregidas Las figuras 6, 8, 10 y 11 de "Capítulo 3. Configuración de fuentes de depósito", en la publicación Data Warehouse Center Administration Guide, contienen una vía de acceso incorrecta para el atributo Driver. Son correctas las vías de acceso siguientes. Figura 6 Driver=/home/db2_07_01/3.6/odbc/lib/ivinf12.so Figura 8 Driver=/home/db2_07_01/3.6/odbc/lib/ivsyb1112.so Figura 10 Driver=/home/db2_07_01/3.6/lib/ivor814.so Figura 11 Driver=/home/db2_07_01/3.6/odbc/lib/ivmsss14.so ------------------------------------------------------------------------ 22.21 Capítulo 3. Configuración de fuentes de depósito 22.21.1 Correlación del campo Memorándum de Microsoft Access con una fuente de depósito El campo Memorándum de una base de datos de Microsoft Access se representa en una fuente del Centro de depósito de datos como un tipo de datos de LONG VARCHAR con un tamaño de columna que sobrepasa 1 GB. Para soportar configuraciones de sistema prácticas, el Centro de depósito de datos trunca los valores que superan 128 KB. Para evitar truncar valores del campo Memorándum de la fuente de depósito, cambie el tipo de datos de la columna que está recibiendo los datos del campo Memorándum de LONG VARCHAR a CLOB antes de utilizar la tabla en un paso. Si no cambia el tipo de datos de la columna, los valores con más de 128 KB se truncarán. El soporte DRDA para el tipo de datos CLOB es necesario para OS/390 y OS/400. El tipo de datos CLOB es soportado para OS/390 empezando por DB2 Versión 6. El tipo de datos CLOB es soportado para OS/400 empezando con la Versión 4, Release 4 con el DB FixPak 4 o posterior (PTF SF99104). Para OS/400, el disco de instalación Versión 4, Release 4, con fecha de Febrero de 1999 también contiene soporte para el tipo de datos CLOB. ------------------------------------------------------------------------ 22.22 Capítulo 10. Mantenimiento de la base de datos del depósito 22.22.1 Enlace de tablas a un subtipo de paso para el programa DB2 UDB RUNSTATS El subtipo de paso para un programa RUNSTATS lee un destino de depósito y graba en él. Enlace un destino al subtipo de paso en la ventana Modelo de proceso antes de definir los valores para el paso. ------------------------------------------------------------------------ 22.23 Base de datos de control del depósito por omisión Durante una instalación típica de DB2 en Windows NT o Windows 2000, DB2 crea e inicializa una base de datos de control del depósito por omisión para el Centro de depósito de datos si no hay ninguna base de datos de control del depósito activa identificada en el registro de Windows NT. La inicialización es el proceso en que el Centro de depósito de datos crea las tablas de control que se requieren para almacenar los metadatos del Centro de depósito de datos. La base de datos de control del depósito por omisión se llama DWCTRLDB. Cuando se inicia una sesión, el Centro de depósito de datos especifica, por omisión, DWCTRLDB como base de datos de control del depósito. Para ver el nombre de la base de datos de control del depósito que se utilizará, pulse el botón Avanzado en la ventana Inicio de sesión del Centro de depósito de datos. ------------------------------------------------------------------------ 22.24 Ventana Gestión de bases de datos de control del depósito La ventana Gestión de bases de datos de control del depósito se instala durante una instalación típica de DB2 en Windows NT o Windows 2000. Puede utilizar esta ventana para cambiar la base de datos de control del depósito activa, crear e inicializar nuevas bases de datos de control del depósito y migrar bases de datos de control del depósito que se han utilizado con IBM Visual Warehouse. En los apartados siguientes se explican cada una de estas actividades. Detenga el servidor de depósito antes de utilizar la ventana Gestión de bases de datos de control del depósito. ------------------------------------------------------------------------ 22.25 Cambio de la base de datos de control del depósito activa Si desea utilizar una base de datos de control del depósito distinta de la que está activa, utilice la ventana Gestión de bases de datos de control del depósito para registrar dicha base de datos como activa. Si, al iniciar una sesión con el Centro de depósito de datos, especifica un nombre distinto al de la base de datos de control del depósito activa, recibirá un mensaje de error indicando que la base de datos especificada no coincide con la especificada por el servidor de depósito. Para registrar la base de datos: 1. Pulse Inicio --> Programas --> IBM DB2 --> Gestión de bases de datos de control del depósito. 2. En el campo Nueva base de datos de control, escriba el nombre de la base de datos de control que desea utilizar. 3. En el campo Esquema, escriba el nombre del esquema que se utilizará para la base de datos. 4. En el campo ID de usuario, escriba el nombre del ID de usuario que se requiere para acceder a la base de datos 5. En el campo Contraseña, escriba la contraseña para el ID de usuario. 6. En el campo Verificar contraseña, vuelva a escribir la contraseña. 7. Pulse en Aceptar. La ventana permanecerá abierta. El campo Mensajes visualizará mensajes indicando el estado del proceso de registro. 8. Una vez que haya finalizado el proceso, cierre la ventana. ------------------------------------------------------------------------ 22.26 Creación e inicialización de una base de datos de control del depósito Si desea utilizar una base de datos de control del depósito distinta de la base de datos por omisión, lo puede hacer durante el proceso de instalación o después del mismo utilizando la ventana Gestión de bases de datos de control del depósito. Puede utilizar el proceso de instalación para crear una base de datos en la misma estación de trabajo que el servidor de depósito o en otra estación de trabajo. Para cambiar el nombre de la base de datos de control del depósito que se crea durante la instalación, debe realizar una instalación personalizada y cambiar el nombre en la ventana Definir una base de datos de control del depósito local. El proceso de instalación creará la base de datos con el nombre que especifique, la inicializará para utilizarla con el Centro de depósito de datos y la registrará como base de datos de control del depósito activa. Para crear una base de datos de control del depósito durante la instalación en una estación de trabajo distinta de aquélla en que se ha instalado el servidor de depósito, seleccione Base de datos de control local del depósito durante una instalación personalizada. El proceso de instalación creará la base de datos. Después de la instalación, deberá utilizar la ventana Gestión de bases de datos de control del depósito en la estación de trabajo del servidor de depósito siguiendo los pasos indicados en el apartado 22.25, Cambio de la base de datos de control del depósito activa. Especifique el nombre de base de datos que ha especificado durante la instalación. La base de datos se inicializará para utilizarla con el Centro de depósito de datos y se registrará como base de datos de control del depósito activa. Para crear e inicializar una base de datos de control del depósito después del proceso de instalación, utilice la ventana Gestión de bases de datos de control del depósito en la estación de trabajo del servidor. Si la nueva base de datos de control del depósito no se encuentra en la estación de trabajo del servidor de depósito, antes la debe crear y catalogarla en dicha estación de trabajo. A continuación, siga los pasos indicados en el apartado 22.25, Cambio de la base de datos de control del depósito activa. Especifique el nombre de base de datos que ha especificado durante la instalación. Cuando inicie una sesión con el Centro de depósito de datos, pulse el botón Avanzado y escriba el nombre de la base de datos de control del depósito activa. ------------------------------------------------------------------------ 22.27 Creación pasos de SQL editados Al crear pasos de SQL editados, basándose en el uso, es posible que desee considerar la posibilidad de crear un índice no exclusivo en la columna de edición para acelerar el rendimiento de la supresión de ediciones. Considere este punto únicamente para grandes tablas de depósito, puesto que el rendimiento de las inserciones se puede ver afectado cuando se inserte un número pequeño de filas. ------------------------------------------------------------------------ 22.28 Cambio de fuentes y destinos en la ventana Modelador de procesos En la ventana Modelo de proceso, si se cambia una fuente o destino, el cambio efectuado se guarda automáticamente. Si efectúa cualquier otro cambio, como por ejemplo la adición de un paso, deberá guardar explícitamente el cambio con tal de hacer que éste sea permanente. Para guardar el cambio, pulse Proceso --> Guardar. ------------------------------------------------------------------------ 22.29 Adición de descripciones a objetos del Centro de depósito de datos Puede especificar hasta 254 caracteres en el campo Descripción de los cuadernos del Centro de depósito de datos. Esta cantidad máxima sustituye a las longitudes máximas especificadas en la ayuda en línea. ------------------------------------------------------------------------ 22.30 Ejecución de Sample Contents * No se puede ejecutar satisfactoriamente una petición de Sample Contents que utilice el agente de AS/400 en una fuente de archivos plana. Aunque se puede crear una fuente de archivos plana e intentar utilizar un agente de AS/400 para emitir una petición sampleContent, la petición fallará. * Puede que reciba un error cuando ejecute Sample Contents sobre un destino de depósito en el modelador de procesos. Este error está relacionado con la disponibilidad de un sitio agente común a la fuente de depósito, al destino de depósito y al paso de un proceso. La lista de sitios agente disponibles para un paso se obtiene de la intersección de los sitios agente IR de fuente de depósito, los sitios agente IR de destino de depósito y los sitios agente disponibles para este paso en concreto (los pasos se seleccionan en la última página del cuaderno de propiedades de los sitios agente). Por ejemplo, se desea ver el Sample Contents de un proceso que ejecuta el programa Put de FTP (VWPRCPY). El paso utilizado en el proceso debe estar seleccionado para el sitio agente en la definición de dicho sitio agente. Cuando se ejecuta Sample Contents sobre el archivo de Destino, habitualmente se utiliza el primer sitio agente de la lista seleccionada. No obstante, las operaciones de mantenimiento de bases de datos pueden afectar al orden de los sitios de agente listados. Sample Contents fallará si el sitio agente seleccionado no reside en el mismo sistema que el archivo de origen o destino. ------------------------------------------------------------------------ 22.31 Edición de una sentencia Create DDL de SQL Cuando intente editar la sentencia Create DDL de SQL para una tabla de destino para un paso en modalidad de desarrollo, verá el mensaje engañoso siguiente: " Cualquier cambio en la sentencia Create DDL SQL no se reflejará en la definición de tabla ni en la tabla física real. ¿Desea continuar?" El cambio se reflejará en la tabla física real. Ignore el mensaje y continúe cambiando la sentencia Create DDL. La versión corregida de este mensaje para los pasos en modalidad de desarrollo debe decir lo siguiente: "Cualquier cambio en la sentencia Create DDL SQL no se reflejará en la definición de la tabla. ¿Desea continuar?" Para los pasos en modalidad de prueba o producción, el mensaje es correcto. El Centro de depósito de datos no cambiará la tabla de destino física que se creó al promover el paso a la modalidad de prueba. ------------------------------------------------------------------------ 22.32 Migración de vistas comerciales de Visual Warehouse Si desea migrar vistas comerciales de sincronización de metadatos de Visual Warehouse al Centro de depósito de datos, promueva las vistas comerciales al estado de producción para poder migrar la base de datos de control de depósito. Si las vistas comerciales están en estado de producción, se migran sus planificaciones al Centro de depósito de datos. Si las vistas comerciales no están en estado de producción, se migrarán en estado de prueba sin las planificaciones. No se pueden promover los pasos migrados al estado de producción. Deberá crear de nuevo los pasos de sincronización en el Centro de depósito de datos y suprimir los pasos migrados. ------------------------------------------------------------------------ 22.33 Generación de tablas de destino y claves primarias Cuando el Centro de depósito de datos genera la tabla de destino para un paso, no genera una clave primaria para dicha tabla de destino. Algunos transformadores, como por ejemplo el Promedio de traslado, utilizan la tabla generada como tabla fuente y también requieren que la tabla fuente tenga una clave primaria. Antes de utilizar la tabla generada con el transformador, defina la clave primaria para la tabla efectuando una pulsación con el botón derecho del ratón sobre la tabla del Centro de control de DB2 y luego pulsando Modificar. ------------------------------------------------------------------------ 22.34 Utilización de controladores ODBC Merant Para acceder a Microsoft SQL Server en Windows NT utilizando los controladores ODBC Merant, verifique si la vía de acceso del sistema contiene el directorio sqllib\odbc32. ------------------------------------------------------------------------ 22.35 Nuevo controlador ODBC Si va a utilizar el agente Sun o AIX del Centro de depósito de datos que se ha enlazado para acceder a fuentes ODBC Merant y accederá también a bases de datos DB2, cambie el valor del atributo "Driver=" en la sección fuente de DB2 del archivo .odbc.ini, del modo siguiente: AIX: El nombre de controlador es /usr/lpp/db2_07_01/lib/db2_36.o Entrada fuente ODBC para AIX: [SAMPLE] Driver=/usr/lpp/db2_07_01/lib/db2_36.o Description=DB2 ODBC Database Database=SAMPLE Sun: El nombre de controlador es /opt/IBMdb2/V7.1/lib/libdb2_36.so Entrada fuente ODBC para Sun: [SAMPLE] Driver=/opt/IBMdb2/V7.1/lib/libdb2_36.so Description=DB2 ODBC Database Database=SAMPLE ------------------------------------------------------------------------ 22.36 Definición de una fuente o destino de depósito en una base de datos de OS/2 Cuando defina una fuente de depósito o un destino de depósito para una base de datos de OS/2, escriba el nombre de la base de datos en letras mayúsculas. ------------------------------------------------------------------------ 22.37 Supervisión del estado de la base de datos de control de depósito El Centro de control de DB2 o el Procesador de línea de mandatos pueden indicar que la base de datos de control de depósito se encuentra en un estado incoherente. Este estado es el esperado porque indica que el servidor de depósito no ha confirmado el mensaje de arranque inicial al iniciador de sesión del depósito. ------------------------------------------------------------------------ 22.38 Utilización de SQL Assist con la base de datos de ejemplo TBC_MD En el ejemplo de depósito de datos que se encuentra en la base de datos TBC_MD, no se puede utilizar SQL Assist para cambiar el SQL del paso Seleccionar SQL de entorno, porque el SQL se ha editado posteriormente a su generación por parte de SQL Assist. ------------------------------------------------------------------------ 22.39 Utilización de la función FormatDate Para utilizar la función FormatDate, pulse Crear SQL en la página Sentencia de SQL del cuaderno Propiedades de un paso de SQL. La salida de la función FormatDate es de tipo de datos varchar(255). No se puede cambiar el tipo de datos seleccionando Fecha, Hora o Fecha/Hora en la lista Categoría de la página Parámetros de función - FormatDate. ------------------------------------------------------------------------ 22.40 Cambio de valor de idioma En AIX y en el Solaris Operating Environment, el proceso de instalación establece el idioma en que ha de publicarse el catálogo de información, así como también para exportar al Servidor de integración OLAP. Si desea utilizar estas funciones en un idioma distinto del que se ha establecido durante la instalación, cree el siguiente enlace dinámico entrando el mandato siguiente en una línea: En AIX /usr/bin/ln -sf /usr/lpp/db2_07_01/msg/locale/flgnxolv.str /usr/lpp/db2_07_01/bin/flgnxolv.str entorno nacional El nombre de entorno nacional del idioma en formato xx_yy En Solaris Operating Environment /usr/bin/ln -sf /opt/IBMdb2/V7.1/msg/entorno nacional/flgnxolv.str /opt/IBMdb2/V7.1/bin/flgnxolv.str entorno nacional El nombre de entorno nacional del idioma en formato xx_yy ------------------------------------------------------------------------ 22.41 Utilización del transformador Generar tabla de claves Cuando utilice la opción Actualizar el valor en la columna de claves del transformador Generar tabla de claves, el transformador sólo actualiza las filas de la tabla que no tienen valores de clave. (Es decir, los valores son nulos). Cuando se insertan filas adicionales en la tabla, los valores de clave son nulos hasta que se vuelve a ejecutar el transformador. Para evitar este problema, utilice el enfoque siguiente: * Después de la ejecución inicial del transformador, utilice la opción Sustituir todos los valores para crear de nuevo las claves para todas las filas. ------------------------------------------------------------------------ 22.42 Mantenimiento de conexiones con las bases de datos El servidor de depósito no mantiene las conexiones con las bases de datos locales o remotas cuando el servidor de DB2 que gestiona las bases de datos se detiene y se reinicia. Si detiene y reinicia DB2, detenga y reinicie también los servicios de depósito. ------------------------------------------------------------------------ 22.43 Configuración de un cliente del Centro de depósito de datos remoto Al instalar DB2 Administration Client y las Herramientas de depósito de datos para configurar un cliente administrativo del Centro de depósito de datos en una estación que no es la que contiene el servidor de depósito, debe añadir el número de puerto TCP/IP al que la estación de trabajo del servidor de depósito está escuchando. Añada una entrada en el archivo de servicios, del modo siguiente: vwkernel 11000/tcp ------------------------------------------------------------------------ 22.44 Definición de una fuente de depósito de DB2 para VM Al definir una fuente de depósito para una base de datos de DB2 para VM, a la que se accede a través de una pasarela DRDA, hay restricciones sobre el uso de los tipos de datos CLOB y BLOB: * No se puede utilizar la función Contenido de ejemplo para ver datos de tipos de datos CLOB y BLOB. * No se pueden utilizar columnas de tipos de datos CLOB y BLOB con un paso de SQL. Se trata de una restricción conocida del servidor de DB2 para VM Versión 5.2 en que no se pueden transmitir objetos LOB utilizando DRDA hacia un cliente de DB2 Versión 7. ------------------------------------------------------------------------ 22.45 Definición de una tabla de destino de DB2 para VM o DB2 para VSE Al definir una tabla de destino de DB2 para VM o DB2 para VSE en el Centro de depósito de datos, no marque el recuadro de selección Otorgar a público. La sintaxis del mandato GRANT que el Centro de depósito de datos genera no está soportada en DB2 para VM ni en DB2 para VSE. ------------------------------------------------------------------------ 22.46 Habilitación del soporte de identificador delimitado Para habilitar el soporte de identificador delimitado para Sybase y Microsoft SQL Server en Windows NT: marque el recuadro de selección Habilitar identificadores entrecomillados de la página Avanzada del cuaderno Configuración del controlador ODBC. Para habilitar el soporte de identificador delimitado para Sybase en UNIX, edite la fuente de datos Sybase del archivo .odbc.ini para incluir el atributo de conexión EQI=1. ------------------------------------------------------------------------ 22.47 Un error de Data Joiner indica un problema de vinculación Los clientes que utilizan DataJoiner con DB2 Versión 7.1 + FixPak 2 o posterior pueden obtener un error que indica un problema de vinculación. Por ejemplo, al utilizar una fuente de DataJoiner con un agente del Centro de depósito de datos V7, puede obtener un error como el siguiente: DWC07356E El proceso de un agente de un mandato del tipo "importTableNames" ha fallado para la edición "0" del paso "?". SQL0001N El proceso de vinculación o de precompilación no se ha completado satisfactoriamente. SQL0001N El paquete "NULLID.SQLL6D05" no se ha encontrado. SQLSTATE=51002 RC = 7356 RC2 = 8600 Para corregir el problema, añada las líneas siguientes al archivo db2cli.ini: [COMMON] DYNAMIC=1 En sistemas UNIX, el archivo db2cli.ini está ubicado en el directorio .../sqllib/cfg. En Windows NT, el archivo db2cli.ini está ubicado en el directorio .../sqllib. ------------------------------------------------------------------------ 22.48 Configuración y ejecución de la duplicación con el Centro de depósito de datos 1. El establecimiento y ejecución de la duplicación con el Centro de depósito de datos requiere que existan tablas de Control de la duplicación tanto en la base de datos de Control del depósito como en las bases de datos de Destino del depósito. La duplicación requiere que existan tablas de Control de la duplicación en las bases de datos de Control y de Destino. Las tablas de Control de la duplicación se encuentran en el esquema ASN y empiezan por IBMSNAP. Las tablas de Control de la duplicación se crean automáticamente en una base de datos cuando el usuario define una Fuente de duplicación mediante el Centro de control, en caso de que todavía no existan tablas de Control. Observe que también deben existir tablas de Control en la BD de Destino. Para que se cree un conjunto de tablas de Control en la BD de destino, puede crear una Fuente de duplicación utilizando el Centro de control y, a continuación, eliminar la Fuente de duplicación, dejando solamente las tablas de Control en su lugar. O también puede utilizar el producto DJRA, Data Joiner Replication Administration, para definir únicamente las tablas de control. 2. Instalación y utilización de DJRA Si desea o necesita utilizar DJRA para definir las tablas de control, antes las tendrá que instalar. DJRA se entrega formando parte de DB2. Para instalar DJRA, diríjase al directorio d:\sqllib\djra (donde está instalado DB2) y pulse el paquete djra.exe. Esta acción instalará DJRA en el sistema. Después de ello, para acceder a DJRA en Windows NT, desde el menú inicial, pulse la selección DB2 para Windows NT, luego seleccione Duplicación y, a continuación, seleccione Herramientas de administración de la duplicación. La interfaz de DJRA es un poco diferente de las aplicaciones NT habituales. Por cada función que realiza, crea un conjunto de SQL que se debe ejecutar, pero no lo ejecuta. El usuario debe guardar de forma manual el SQL generado y seleccionar la función Ejecutar SQL para ejecutarlo. 3. Configuración para ejecutar Capture y Apply Para el sistema que está comprobando, consulte la publicación Replication Guide and Reference Manual para ver instrucciones sobre cómo configurar el sistema para ejecutar los programas Capture y Apply. Debe vincular los programas Capture y Apply en cada base de datos en que se vayan a utilizar. Observe que NO es necesario que cree un archivo de contraseñas. El Centro de depósito de datos creará automáticamente un archivo de contraseñas para la suscripción de Duplicación. 4. Defina una Fuente de duplicación en el Centro de control Utilice el Centro de control para definir una Fuente de duplicación. El Centro de depósito de datos soporta cinco tipos de duplicación: de copia del usuario, puntual en el tiempo, de agregación base, de agregación de cambios y de tablas fases (tablas CCD). Los tipos Copia del usuario, Puntual en el tiempo y de tabla de Fases condensadas requieren que la tabla fuente de duplicación tenga una clave primaria. No así los otros tipos de duplicación. Recuerde este punto cuando elija una tabla de entrada para definirla como Fuente de duplicación. Una Fuente de duplicación es en realidad la definición de la tabla fuente original y una tabla CD (Cambiar datos) creada para contener los cambios efectuados en los datos antes de moverlos a la tabla de destino. Cuando se define una Fuente de duplicación en el Centro de control, se graba un registro en ASN.IBMSNAP_REGISTER para definir la fuente y la tabla CD correspondiente al mismo. La tabla CD se crea al mismo tiempo, pero inicialmente no contiene datos. Cuando se define una Fuente de duplicación, se puede elegir que sólo se incluyan las columnas posteriores a la imagen, o que se incluyan tanto las anteriores como las posteriores a la imagen. Estas opciones se eligen mediante recuadros de selección de la interfaz de Fuente de duplicación del Centro de control. Más adelante, la selección de columnas anteriores y posteriores a la imagen se convierte en columnas creadas en la nueva tabla CD. En la tabla CD, las columnas posteriores a la imagen tienen el mismo nombre que las columnas de la tabla fuente original. Las columnas anteriores a la imagen tendrán el mismo nombre, pero con una 'X' como primer carácter en el nombre de columna para asegurar la unicidad del nombre. 5. Importe la Fuente de duplicación al Centro de depósito de datos Una vez que haya creado la Fuente de duplicación en el Centro de control, lo puede importar al Centro de depósito de datos. Cuando importe la fuente, asegúrese de pulsar el recuadro de selección que dice "Tablas que se pueden duplicar". Esto indica al Centro de depósito de datos que observe los registros de la tabla ASN.IBMSNAP_REGISTER para ver qué tablas se han definido como Orígenes de duplicación. 6. Defina un Paso de duplicación en el Centro de depósito de datos En el modelador de procesos, seleccione uno de los cinco tipos de Duplicación: de agregación base, de agregación de cambios, puntual en el tiempo, de tabla de fases o de copia del usuario. Si desea definir un tipo de duplicación de agregación base o de agregación de cambios, consulte el apartado siguiente sobre Cómo configurar una duplicación de Agregación base o de Agregación de cambios en el Centro de depósito de datos. Seleccione una Fuente de duplicación apropiado para el tipo de Duplicación. Tal como hemos mencionado anteriormente, los tipos de duplicación de: copia del usuario, puntual en el tiempo y de tablas de fases condensadas requieren que la fuente de entrada tenga una clave primaria. Conecte la Fuente de duplicación al Paso de duplicación. Abra las propiedades del Paso de duplicación. Vaya a la pestaña Parámetros. Seleccione las columnas que desee. Seleccione el recuadro de selección para que se cree una tabla de destino. Seleccione un destino del Depósito. Vaya a Opciones del proceso y cumplimente los parámetros. Pulse Bien. 7. Inicie el programa Capture En una ventana de DOS, entre: ASNCCP base-datos-fuente COLD PRUNE El parámetro COLD indica un arranque en frío (COLD) y suprimirá los datos existentes en las tablas CD. El parámetro PRUNE indica al programa de captura que debe conservar la tabla IBMSNAP_PRUNCNTL. Deje el programa Capture en ejecución. Cuando llegue el momento de salir, lo puede detener pulsando Control-Inter en su ventana de DOS. Tenga presente que debe iniciar el programa Capture antes que el programa Apply. 8. Paso de duplicación Promover-a-prueba De nuevo en el Centro de depósito de datos, para el Paso de duplicación definido, promueva el paso a la modalidad de Prueba. Esto hará que la información de Suscripción de duplicación se grabe en las tablas de Control de la duplicación. Verá que se añaden registros a IBMSNAP_SUBS_SET, IBMSNAP_SUBS_MEMBR, IBMSNAP_SUBS_COLS y IBMSNAP_SUBS_EVENT para soportar la suscripción. También se creará la tabla de destino en la base de datos de destino. Si el tipo de duplicación es de copia del usuario, puntual en el tiempo o de tabla de fases condensada, se requiere una clave primaria en la tabla de destino. Vaya al Centro de control para crear la Clave primaria. Observe que algunas tablas de destino de duplicación también requieren índices exclusivos en diversas columnas. En el Centro de depósito de datos existe código para crear estos índices exclusivos al crear la tabla, por lo que NO es necesario que cree la tabla por sí mismo. Aunque también debe observar que, si define una clave primaria, en el Centro de control y ya existe un índice exclusivo para esta columna, recibirá un mensaje de AVISO al crear la clave primaria. Ignore dicho mensaje de aviso. 9. Paso de duplicación Promover-a-producción Durante Promover-a-producción no se efectúa ningún cambio en la suscripción de duplicación. Se trata, estrictamente, de una operación del Centro de depósito de datos igual a cualquier otro paso. 10. Ejecute un Paso de duplicación Después de que un Paso de duplicación se ha promovido a la modalidad de Prueba, se puede ejecutar. Realice una ejecución inicial antes de efectuar ningún cambio en la tabla fuente. Vaya al apartado Trabajo-en-progreso (WIP) y seleccione el Paso de duplicación. Ejecútelo. Cuando se ejecuta el paso, el registro de sucesos de la tabla IBMSNAP_SUBS_EVENT se actualiza y el registro de suscripción de IBMSNAP_SUBS_SET se marca como activo. La suscripción se debe ejecutar de inmediato. Cuando se ejecuta la suscripción, el Agente llama al programa Apply para procesar las suscripciones activas. Si se actualiza la tabla fuente original después de este momento, los datos cambiados se pasarán a la tabla CD. Si a continuación ejecuta el paso de duplicación, de forma que se vuelva a ejecutar el programa Apply, los datos cambiados pasarán de la tabla CD a la tabla de destino. 11. Paso de duplicación Degradar-a-prueba Durante Degradar-a-prueba no se efectúa ningún cambio en la suscripción de duplicación. Se trata, estrictamente, de una operación del Centro de depósito de datos igual a cualquier otro paso. 12. Paso de duplicación Degradar-a-desarrollo Cuando se degrada un Paso de duplicación a desarrollo, la información de suscripción se elimina de las tablas de Control de la duplicación. En las tablas de Control de la duplicación no permanecerá ningún registro para esta suscripción determinada una vez que termine Degradar-a-desarrollo. En este punto también se eliminará la tabla de destino. La tabla CD sigue en su sitio, puesto que pertenece a la definición de la Fuente de duplicación. 13. Cómo configurar una duplicación de Agregación base o de Agregación de cambios en el Centro de depósito de datos. o Tabla de entrada. Elija una tabla de entrada que se pueda utilizar con una sentencia GROUP BY. Para nuestro ejemplo utilizaremos una Tabla de entrada que tiene las columnas siguientes: SALES, REGION, DISTRICT. o Paso de duplicación. Seleccione Agregación base o de cambios. Abra las propiedades del Paso. + Cuando se ejecuta el programa Apply, éste necesita ejecutar una sentencia SELECT que tiene el aspecto siguiente: SELECT SUM(SALES), REGION, DISTRICT GROUP BY REGION, DISTRICT. Por lo tanto, en las columnas de salida seleccionadas tendrá que elegir REGION, DISTRICT y una columna calculada de SUM(SALES). Utilice el botón Añadir columna calculada. Para nuestro ejemplo, entre: SUM(SALES) en el campo Expresión. Guárdelo. + Cláusula Where. Es requisito de una Duplicación que, cuando se configura un Paso de duplicación que sólo requiere una cláusula GROUP BY, también se debe proporcionar una cláusula Where FICTICIA, como por ejemplo 1=1. NO incluya la palabra "WHERE" en la cláusula WHERE. Por consiguiente, en la GUI del Centro de depósito de datos para la Agregación base sólo hay un campo de entrada para la cláusula WHERE. En este campo, para nuestro ejemplo; entre: 1=1 GROUP BY REGION, DISTRICT Para la Agregación de cambios, hay un campo de entrada para la cláusula WHERE y otro para la cláusula GROUP BY: En el campo de la cláusula WHERE entre: 1=1 y en el campo de GROUP BY entre: GROUP BY REGION, DISTRICT + Configure el resto de las propiedades del paso tal como lo haría para cualquier otro tipo de Duplicación. Pulse Bien para guardar el paso y crear el objeto de tabla de destino. o Abra el objeto de tabla de destino. Ahora deberá cambiar el nombre de columna de salida para la expresión de columna calculada por un nombre de columna válido y tendrá que especificar un tipo de datos válido para la columna. Guarde el objeto de tabla de destino. o Ejecute Promover-a-prueba sobre el Paso de duplicación. Se creará la tabla de destino. Esta tabla NO necesita clave primaria. o Ejecute el paso como cualquier otro Paso de duplicación. ------------------------------------------------------------------------ 22.49 Consejos para la resolución de problemas * Para activar el rastreo del programa Apply, establezca el valor de Rastreo del agente = 4 en el panel Propiedades del depósito. El Agente activa el rastreo completo de Apply cuando Rastreo del agente = 4. Si no ve ningún dato en la tabla CD, probablemente no se ha iniciado el programa Capture o no se ha actualizado la tabla fuente original para crear algunos datos cambiados. * En la ayuda en línea falta el campo de servidor de correo de la página Notificación del cuaderno Planificación. * El servidor de correo necesita soporte de ESMTP para que funcione la notificación del Centro de depósito de datos. En la ayuda para la ventana Abrir el trabajo en progreso, pulse Depósito --> Trabajo en progreso en lugar del Centro de depósito --> Trabajo en progreso. ------------------------------------------------------------------------ 22.50 Acceso a fuentes y destinos Las tablas siguientes listan la versión y los niveles de release de las fuentes y destinos soportados por el Centro de depósito de datos. Tabla 7. Versión y niveles de release de los orígenes de depósito IBM soportados Fuente Versión/Release IMS 5.1 DB2 Universal Database para Windows 5.2 - 7.1 NT DB2 Universal Database 5.2 - 7.1 Enterprise-Extended Edition DB2 Universal Database para OS/2 5.2 - 7.1 DB2 Universal Database para AS/400 3.7 - 4.5 DB2 Universal Database para AIX 5.2 - 7.1 DB2 Universal Database para Solaris 5.2 - 7.1 Operating Environment DB2 Universal Database para OS/390 4.1 - 7.1 DB2 DataJoiner 2.1.1 DB2 para VM 5.3.4 o posterior DB2 para VSE 7.1 Fuente Windows NT AIX Informix 7.2.2 - 8.2.1 7.2.4 - 9.2.0 Oracle 7.3.2 - 8.1.5 8.1.5 Microsoft SQL Server 7.0 Microsoft Excel 97 Microsoft Access 97 Sybase 11.5 11.9.2 Tabla 8. Versión y niveles de release de los destinos de depósito IBM soportados Destino Versión/Release DB2 Universal Database para Windows 6 - 7 NT DB2 Universal Database 6 - 7 Enterprise-Extended Edition DB2 Universal Database para OS/2 6 - 7 DB2 Universal Database para AS/400 3.1-4.5 DB2 Universal Database para AIX 6 -7 DB2 Universal Database para Solaris 6 -7 Operating Environment DB2 Universal Database para OS/390 4.1 - 7 DB2 DataJoiner 2.1.1 DB2 DataJoiner/Oracle 8 DB2 para VM 3.4 - 5.3.4 DB2 para VSE 3.2, 7.1 CA/400 3.1.2 ------------------------------------------------------------------------ 22.51 Adiciones a las fuentes de bases de datos soportadas que no son de IBM La tabla siguiente contiene adiciones a las fuentes de bases de datos soportadas que no son de IBM: Requisitos del cliente Base de datos Sistema operativo de la base de datos Informix AIX Informix-Connect y ESQL/C Versión 9.1.4 o posterior Informix Solaris Operating Informix-Connect y Environment ESQL/C Versión 9.1.3 o posterior Informix Windows NT Informix-Connect para plataformas Windows 2.x o Informix-Client Software Developer's Kit para plataformas Windows 2.x Oracle 7 AIX Biblioteca compartida de Oracle7 SQL*Net y Oracle7 SQL*Net (creada por el script genclntsh) Oracle 7 Solaris Operating Biblioteca compartida de Environment Oracle7 SQL*Net y Oracle7 SQL*Net (creada por el script genclntsh) Oracle 7 Windows NT Los archivos DLL apropiados para la versión actual de SQL*Net, más el archivo OCIW32.DLL. Por ejemplo, SQL*Net 2.3 requiere ORA73.DLL, CORE35.DLL, NLSRTL32.DLL, CORE350.DLL y OCIW32.DLL. Oracle 8 AIX Oracle8 Net8 y la biblioteca compartida de Oracle8 SQL*Net (creada por el script genclntsh8) Oracle 8 Solaris Operating Oracle8 Net8 y la Environment biblioteca compartida de Oracle8 SQL*Net (creada por el script genclntsh8) Oracle 8 Windows NT Para acceder a servidores remotos de bases de datos Oracle8 al nivel de la versión 8.0.3 o posterior, instale Oracle Net8 Client Versión 7.3.4.x, 8.0.4 o posterior. En sistemas Intel, instale los archivos DLL apropiados para Oracle Net8 Client (como por ejemplo Ora804.DLL, PLS804.DLL y OCI.DLL) en la vía de acceso. Sybase AIX En un entorno no DCE (controlador ibsyb15 ODBC): biblioteca libct En un entorno DCE (controlador ibsyb1115 ODBC): Biblioteca de cliente libct_r de Sybase 11.1 Sybase Solaris Operating En un entorno no DCE Environment (controlador ibsyb15 ODBC): biblioteca libct En un entorno DCE (controlador ibsyb1115 ODBC): Biblioteca de cliente libct_r de Sybase 11.1 Sybase Windows NT Sybase Open Client-Library 10.0.4 o posterior y Sybase Net-Library apropiado. ------------------------------------------------------------------------ 22.52 Creación manual de una fuente de datos en el Centro de depósito de datos Cuando se crea una fuente de datos utilizando Relational Connect y la sentencia "Create Nickname", la fuente de datos no estará disponible en las funciones relacionadas con la importación de tablas en el Centro de depósito de datos. Para utilizar la fuente de datos como tabla fuente o destino, efectúe los pasos siguientes: 1. Defina fuente/destino sin importar tabla alguna. 2. Amplíe el árbol de Orígenes/Destinos de Depósito en la ventana principal del Centro de depósito de datos y pulse el botón derecho del ratón sobre "Tablas" para fuente/destino que se desee. 3. Pulse en Definir. 4. Defina la fuente de datos utilizando el cuaderno que se abre y asegúrese de que se definen las columnas para cada fuente de datos. Para obtener más información, vea "Definición de una tabla fuente de depósito" o "Definición de una tabla de destino de depósito" en el Centro de información. ------------------------------------------------------------------------ 22.53 Importación y exportación de metadatos utilizando el intercambio de metadatos de depósito común (CWMI) 22.53.1 Introducción Además del soporte existente para los archivos de idioma de código, el Centro de depósito de datos puede ahora importar y exportar metadatos a y desde archivos XML que se adapten al Metamodelo de depósito común (CWM) estándar. Se hace referencia a la importación y exportación de estos archivos XML que se adaptan al CWM como Intercambio de metadatos de depósito común (CWMI). Puede importar y exportar metadatos desde los siguientes objetos del Centro de depósito de datos: * Orígenes de depósito * Destinos de depósito * Áreas del tema, incluyendo procesos, orígenes, destinos y pasos * Programas definidos por el usuario El programa de utilidad de importación y exportación de CWMI no da soporte en la actualidad determinados tipos de metadatos, incluyendo: planificaciones, esquemas de depósito, pasos de atajo, relaciones en cascada, usuarios y grupos. El Centro de depósito de datos crea un archivo de anotaciones cronológicas que contiene el resultado de los procesos de importación y exportación. Normalmente, el archivo de anotaciones cronológicas se crea en el directorio x:\Archivos de programa\sqllib\logging (donde x: es la unidad en que ha instalado DB2), o el directorio que hubiera especificado como variable de entorno VWS_LOGGING. El archivo de anotaciones cronológicas es un texto plano; puede verlo con cualquier editor de texto. 22.53.2 Importación de metadatos Puede importar metadatos desde el Centro de depósito de datos o desde la línea de mandatos. Los objetos nuevos que se crean por medio del proceso de importación se asignan al grupo de seguridad del Centro de depósito de datos por omisión. Para obtener más información, consulte "Actualización de la seguridad después de la importación" en estas Notas de release. Si está importando metadatos sobre un paso, pueden asociarse varios archivos con el paso. Los metadatos acerca del paso se almacenan en un archivo XML, pero a veces un paso tiene datos asociados almacenados como BLOB. Los metadatos BLOB tienen el mismo nombre de archivo que el archivo XML, pero están en archivos independientes que tienen extensiones numeradas. Todos los archivos de paso relacionado deben estar en el mismo directorio al efectuar la importación. Actualización de pasos cuando están en modalidad de prueba o de producción Un paso debe estar en modalidad de desarrollo antes de que el Centro de depósito de datos pueda actualizar los metadatos del paso. Si el paso está en modalidad de prueba o de producción, baje de categoría el paso a la modalidad de desarrollo antes de importar los metadatos: 1. Inicie una sesión en el Centro de depósito de datos. 2. Pulse el botón derecho del ratón sobre el paso que desee bajar de categoría y pulse en Modalidad. 3. Pulse Desarrollo. El paso está ahora en modalidad de desarrollo. Vuelva a cambiar el paso a la modalidad de prueba o de producción después de importar los metadatos. Importación de datos desde el Centro de depósito de datos Puede importar metadatos del Centro de depósito de datos: 1. Inicie una sesión en el Centro de depósito de datos. 2. En el panel izquierdo, pulse en Depósito. 3. Pulse Seleccionado --> Importar metadatos --> Archivo de intercambio... 4. En la ventana Importar metadatos, especifique el nombre de archivo que contiene los metadatos que desea importar. Puede escribir el nombre de archivo o buscarlo. o Si conoce la ubicación, escriba la vía de acceso completamente calificada y el nombre de archivo que desea importar. Asegúrese de incluir la extensión de archivo .xml para especificar que desea importar metadatos en el formato XML. o Para buscar los archivos: a. Pulse sobre el pulsador de puntos suspensivos (...). b. En la ventana Archivo, cambie Archivos de tipo por XML. c. Vaya al directorio correcto y seleccione el archivo que desea importar. Nota: El archivo debe tener una extensión .xml. d. Pulse en Aceptar. 5. En la ventana Importar metadatos, pulse Aceptar para finalizar. Se visualiza la ventana Progreso al tiempo que el Centro de depósito de datos importa el archivo. Utilización de la línea de mandatos para importar metadatos También puede utilizar la línea de mandatos para importar metadatos. Aquí mostramos la sintaxis del mandato de importación: CWMImport XML_file dwcControlDB dwcUserId dwcPW [PREFIX = DWCtbschema] XML_file La vía de acceso completamente calificada y el nombre de archivo (incluyendo la unidad y directorio) del archivo XML que desea importar. Este parámetro es obligatorio. dwcControlDB El nombre de la base de datos de control de depósito en la que desea importar los metadatos. Este parámetro es obligatorio. dwcUserId El ID de usuario que se utiliza para iniciar la sesión en la base de datos de control de depósito. Este parámetro es obligatorio. dwcPW La contraseña de usuario que se utiliza para iniciar la sesión en la base de datos de control de depósito. Este parámetro es obligatorio. [PREFIX=DWCtbschema] El nombre de esquema de base de datos para las tablas de sistema del Centro de depósito de datos, al que a veces se hace referencia como prefijo de tabla. Si no se especifica ningún valor para PREFIX=, el nombre de esquema por omisión es IWH. Este parámetro es opcional. 22.53.3 Actualización de los metadatos después de ejecutar el programa de utilidad de importación Actualización de la seguridad después de la importación Como medida de seguridad, el Centro de depósito de datos no importa ni exporta contraseñas. Ha de actualizar las contraseñas sobre los objetos nuevos a medida que las necesite. Para obtener más detalles sobre las consideraciones de importación, consulte el manual Data Warehouse Center Administration Guide, Capítulo 12, "Exporting and importing Data Warehouse Center metadata." Al importar metadatos, todos los objetos se asignan al grupo de seguridad por omisión. Puede cambiar los grupos que tienen acceso al objeto: 1. Inicie una sesión en el Centro de depósito de datos. 2. Pulse el botón derecho del ratón sobre la carpeta que contiene el objeto que desee cambiar. 3. Pulse en Propiedades y, después pulse la pestaña Seguridad. 4. Elimine grupos de la lista Grupos de depósito seleccionados o añada grupos en la lista Grupos de depósito disponibles. 5. Pulse en Aceptar. 22.53.4 Exportación de metadatos Puede exportar metadatos desde el Centro de depósito de datos o desde la línea de mandatos. Algunos pasos tienen metadatos almacenados como BLOB. Los metadatos BLOB se exportan como archivo independiente que tiene el mismo nombre de archivo que el archivo XML del paso, pero con una extensión con número (.1, .2 etc.). Exportación de datos desde el Centro de depósito de datos Puede exportar metadatos del Centro de depósito de datos: 1. Inicie una sesión en el Centro de depósito de datos. 2. En el panel izquierdo, pulse en Depósito. 3. Pulse Seleccionado --> Exportar metadatos--> Archivo de intercambio. 4. En la ventana Exportar metadatos, especifique el nombre de archivo que contendrá los metadatos exportados. Puede escribir el nombre de archivo o buscarlo: o Si conoce la vía de acceso completamente calificada y el nombre de archivo que desea utilizar, escríbalo en el campo de entrada Nombre de archivo. Asegúrese de incluir la extensión de archivo .xml para especificar que desea exportar metadatos en el formato XML. o Para buscar los archivos: a. Pulse sobre el pulsador de puntos suspensivos (...). b. En la ventana Archivo, cambie Archivos de tipo por XML. c. Vaya al directorio correcto y seleccione el archivo que desea que contenga los metadatos exportados. Nota: Los metadatos exportados sobregrabarán cualquier archivo existente que seleccione. d. Pulse en Aceptar. 5. Cuando la ventana Exportar metadatos visualiza el nombre de archivo correcto, pulse sobre el objeto de la lista Objetos disponibles cuyos metadatos desee exportar. 6. Pulse sobre el signo > para desplazar el objeto seleccionado de la lista de Objetos disponibles a la lista de Objetos seleccionados. Repita la acción hasta que todos los objetos que desee exportar se listen en la lista Objetos seleccionados. 7. Pulse en Aceptar. El Centro de depósito de datos crea un archivo de entrada, que contiene información sobre los objetos del Centro de depósito de datos que se han seleccionado para la exportación y, después exporta los metadatos sobre esos objetos. Mientras el Centro de depósito de datos está exportando los metadatos se visualiza la ventana de progreso. Cuando finaliza el proceso de exportación, recibirá un mensaje informativo sobre el proceso de exportación. Un código de retorno de 0 indica que la exportación fue satisfactoria. También puede ver el archivo de anotaciones cronológicas para obtener una información más detallada. Utilización de la línea de mandatos para exportar metadatos Antes de que pueda exportar metadatos de la línea de mandatos, debe crear en primer lugar un archivo de entrada. El archivo de entrada es un archivo de texto con una extensión .INP y lista todos los objetos por tipo de objeto que desea exportar. Cuando se efectúa la exportación desde el Centro de depósito de datos, el archivo de entrada se crea automáticamente, pero para efectuar la exportación desde la línea de mandatos en primer lugar debe crear el archivo de entrada. Puede crear el archivo de entrada con cualquier editor de texto. Escriba todos los nombres de objeto tal y como aparecen en el Centro de depósito de datos. Asegúrese de crear el archivo en un directorio de lectura/grabación. Cuando se ejecuta el programa de utilidad de exportación, el Centro de depósito de datos graba los archivos de XML en el mismo directorio en el que está el archivo de entrada. Aquí mostramos un archivo de entrada de ejemplo: Proceso de la tabla de hechos de la guía de aprendizaje Fuente de archivo de la guía de aprendizaje Destino de la guía de aprendizaje Grupo de programas nuevos En la sección (procesos), liste todos los procesos que desea exportar. En la sección (recursos de información), liste todos los orígenes y destinos de depósito que desea exportar. El Centro de depósito de datos incluye automáticamente las tablas y columnas que están asociadas con estos orígenes y destinos. En la sección (programas definidos por el usuario), liste todos los grupos de programas que desee exportar. Para exportar metadatos, entre el mandato siguiente en un indicador de mandatos de DOS: CWMExport INPcontrol_file dwcControlDB dwcUserID dwcPW [PREFIX=DWCtbschema] INPcontrol_file La vía de acceso completamente calificada y el nombre de archivo (incluyendo la unidad y directorio) del archivo .INP que contiene los objetos que desee exportar. Este parámetro es obligatorio. dwcControlDB El nombre de la base de datos de control de depósito desde la que desea efectuar la exportación. Este parámetro es obligatorio. dwcUserID El ID de usuario que se utiliza para iniciar la sesión en la base de datos de control de depósito. Este parámetro es obligatorio. dwcPW La contraseña que se utiliza para iniciar la sesión en la base de datos de control de depósito. Este parámetro es obligatorio. [PREFIX=DWCtbschema] El nombre de esquema de base de datos para las tablas de sistema del Centro de depósito de datos, al que a veces se hace referencia como prefijo de tabla. Si no se especifica ningún valor para PREFIX=, el valor por omisión es IWH. Este parámetro es opcional. ------------------------------------------------------------------------ 22.54 Paso del programa de utilidad Runstats de OS/390 Al definir un paso del programa de utilidad Runstats de OS/390 en DWC, el usuario debe tener en cuenta lo siguiente en la pestaña Parámetros del diálogo Propiedades del paso. Para el campo de espacio de tabla, el usuario debe entrar el nombre en mayúsculas. Si el espacio de tabla no está en la base de datos DSNDB04, el nombre de espacio de tabla debe ser calificado por la base de datos que lo contiene. Por ejemplo, entre SAMPLE.EMPLOYEE. La ayuda actualmente no menciona este campo. ------------------------------------------------------------------------ 22.55 Paso del programa de utilidad Load de OS/390 Al definir un paso del programa de utilidad Load de OS/390 en DWC, el usuario debe tener en cuenta lo siguiente en la pestaña Parámetros del diálogo Propiedades del paso. Para que funcione la carga, el usuario siempre debe seleccionar el botón Avanzados. De lo contrario, no se genera la cláusula INTO de la sentencia de carga y la carga fallará cuando se ejecute. Además, el FixPak 3 incluye un arreglo para eliminar las comillas dobles que rodean al nombre del conjunto de datos de carga. Sin este arreglo, la carga no funcionará. ------------------------------------------------------------------------ 22.56 Soporte XML para Common Warehouse Metamodel (CWM) El kit de utilidades CWM de la Versión 7.2 funciona en el Java Development Kit (JDK) 1.2.2 ó 1.3. Ahora es posible importar y exportar los objetos de XML para CWM siguientes: Pasos de atajo desde otros procesos Cuando se exporta un proceso que contiene un paso que está relacionado con un paso de otro proceso (un atajo), se exportan ambos procesos y se mantiene la relación. Relaciones en cascada condicionales Ahora es posible importar y exportar distintas relaciones en cascada entre pasos, incluyendo CHILD, SUCCESS, FAILURE y UNCONDITIONAL. Fuentes de depósito como objetos de vista Al realizar una exportación, ahora se puede definir una fuente de depósito como un objeto de vista. Los objetos de vista se procesan igual que los objetos de tabla. SQLDataType para columnas y campos Ahora se puede utilizar SQLDataType para columnas y campos Varios nombres de correlación para la misma tabla Durante una importación o exportación se puede tener varios nombres de correlación, cada uno de los cuales con su propia correlación de columnas para la misma tabla. Nuevo soporte de fuentes SAP y WebSphere Site Analyzer (WSA) Con la adición de los nuevos identificadores de soporte de fuentes, ahora es posible exportar la información de SAP y WSA que se guarda en el depósito. ------------------------------------------------------------------------ 22.57 Modelador de procesos Puede ajustar el tamaño de la paleta del modelador de procesos para que quepa en la pantalla. Los iconos de la paleta cambiarán automáticamente de posición, pasando a constituir una paleta de varias columnas. Cuando pulse un icono de la paleta, verá una cabecera sobre los objetos de la paleta. Ahora es posible ver los objetos de tablas y archivos por sus nombres comerciales seleccionando la opción Mostrar nombres comerciales en el menú Ver. También se pueden ajustar los valores porcentuales y empequeñecer o agrandar las vistas de procesos seleccionando la opción Zoom. Si se solapan objetos con la paleta, puede pulsar los objetos para llevarlos a la parte superior de la pantalla. Además, ahora los nombres de objeto se reinician en varios filas para ahorrar espacio en la paleta. Actualmente es posible utilizar la tecla Supr para eliminar objetos. Los cambios efectuados en las tablas se guardan cuando se guarda un proceso. La selección del comportamiento no es automática. Si desea eliminar una tabla, un archivo o una vista de una fuente o un destino de depósito y realizar el proceso, puede pulsar el botón derecho del ratón y seleccionar la acción Eliminar de la fuente si el objeto se encuentra en una fuente de depósito, o bien la acción Eliminar del destino si se encuentra en un destino de depósito. Ahora, el cursor muestra el estado de selección de la paleta. Asimismo, la línea de estado muestra el nombre del objeto sobre el que se encuentra el cursor. ------------------------------------------------------------------------ 22.58 Modelador de esquemas Ahora es posible minimizar y maximizar las tablas dentro del modelador de esquemas. Cuando se minimiza una tabla, ésta pasa a ser un icono. Para obtener una mayor exactitud visual, actualmente se puede crear un diseño de esquema en estrella. ------------------------------------------------------------------------ 22.59 Campos obligatorios El Centro de depósito de datos visualiza ahora bordes rojos en los campos obligatorios. Los bordes rojos alertan al usuario sobre la información obligatoria, como por ejemplo nombres de base de datos, ID de usuario o contraseñas, que son necesarios para definir objetos del Centro de depósito de datos. Cuando se entra la información requerida, desaparecen los bordes. ------------------------------------------------------------------------ 22.60 Mejoras en la lanzadera del Centro de depósito de datos Al crear un objeto del Centro de depósito de datos desde la lanzadera, el árbol de navegación se expande para mostrar la ubicación del nuevo objeto. ------------------------------------------------------------------------ 22.61 Impresión de información de los pasos en un archivo Ahora es posible imprimir información sobre un paso (como, por ejemplo, el área de un sujeto, nombres de tablas de origen y nombres de tablas de destino) en un archivo de texto. Para imprimir la información sobre los pasos en un archivo, pulse con el botón derecho del ratón el icono del paso en el modelador de procesos, pulse Imprimir --> Imprimir en archivo y especifique el nombre del archivo en que desea imprimir la información. ------------------------------------------------------------------------ Data Warehouse Center Application Integration Guide En el Capítulo 5. Plantillas de metadatos, la Tabla 16 describe símbolos de códigos de columna. La información del manual debería decir que "*ColumnPositionNumber" debe empezar con "1". El manual da, incorrectamente, "0" como carácter inicial. Más adelante en el Capítulo 5, Tabla 42, el símbolo TableTypeIfFile es necesario si el tipo especificado para el símbolo DatabaseType en el SourceDataBase.tag correspondiente es ISV_IR_FFLan. Si no se especifica, se detectará un error. En el capítulo 6. Metadatos del centro de depósito de datos, la descripción de la propiedad de los objetos de la columna POSNO debería cambiarse a: Un índice, empezando por 1, de la columna o el campo en la fila de la tabla o archivo. En el Capítulo 8. Tipos de objeto de Information Catalog Manager, el directorio en que puede encontrar los archivos .TYP, que incluyen el lenguaje del código para definir un tipo de objeto, se ha cambiado por \SQLLIB\DGWIN\TYPES. ------------------------------------------------------------------------ 23.1 Plantillas de metadatos adicionales En el Capítulo 5, Plantilla de metadatos, se deben incluir las plantillas de metadatos siguientes. Tabla 9. Nuevas plantillas de metadatos suministradas con el Centro de depósito de datos Plantilla Descripción Ver: commit.tag 23.1.1, "Commit.tag" Foreignkey.tag 23.1.2, ForeignKey.tag Foreignkeyadditional.tag 23.1.3, ForeignKeyAdditional.tag Primarykey.tag 23.1.4, PrimaryKey.tag Primarykeyadditional.tag 23.1.5, PrimaryKeyAdditional.tag 23.1.1 Commit.tag Utilice esta plantilla para mejorar el rendimiento cuando utilice archivos de lenguaje de códigos grandes. Se puede insertar una plantilla de confirmación entre cualesquiera de los grupos de plantillas que aquí se describen. No se puede insertar una plantilla de confirmación entre las plantillas de un grupo. Por ejemplo, será válido insertar una plantilla de confirmación entre AgentSite.tag y VWPGroup.tag, pero no lo será insertarla entre VWPProgramTemplate.tag y VWPProgramTemplateParameter.tag. Si las plantillas de confirmación se utilizan de forma incorrecta, las importaciones pueden informar de un error. * AgentSite.tag * VWPGroup.tag * VWPProgramTemplate.tag, VWPProgramTemplateParameter.tag * SourceDatabase.tag * WarehouseDatabase.tag * Table.tag, Column.tag * SubjectArea.tag * Process.tag * Step.tag, StepInputTable.tag, StepOutputTable.tag, StepVWPOutputTable.tag, StepVWPProgramInstance.tag, VWPProgramInstanceParameter.tag * StepCascade.tag * StarSchema.tag, StarSchemaInputTable.tag * PrimaryKey.tag, PrimaryKeyAdditional.tag * ForeignKey.tag, ForeignKeyAdditional.tag El uso de la plantilla de confirmación es opcional. 23.1.1.1 Símbolos La tabla Tabla 10 proporciona información sobre cada uno de los símbolos de la plantilla. Tabla 10. Símbolos de Commit.tag Símbolo Descripción Valores admitidos Parámetros de relación *CurrentCheckPointID++Índice, que empieza Un valor numérico. por 0 y se incrementa cada vez que se sustituye en un símbolo. Este símbolo es obligatorio. 23.1.1.2 Ejemplos de valores La tabla Tabla 11 proporciona valores de ejemplo de cada uno de los símbolos, para ilustrar la clase de metadatos que se pueden proporcionar para cada símbolo. Tabla 11. Valores de ejemplo para símbolos de Commit.tag Símbolo Valor de ejemplo *CurrentCheckPointID++ 1 23.1.2 ForeignKey.tag Utilice esta plantilla para definir las restricciones de claves foráneas en las tablas. La plantilla ForeignKey.tag define las relaciones con la tabla y la columna sobre la que se define la restricción. Esta plantilla define también las relaciones con la tabla y la columna de la clave primaria a la que se hace referencia. Antes de utilizar la plantilla ForeignKey.tag, debe definir la restricción de clave primaria (utilizando la plantilla PrimaryKey.tag) y las tablas y columnas (utilizando las plantillas Table.tag y Column.tag) sobre las que desea definir la restricción de clave foránea. 23.1.2.1 Símbolos La tabla Tabla 12 proporciona información sobre cada uno de los símbolos de la plantilla. Tabla 12. Símbolos de ForeignKey.tag Símbolo Descripción Valores admitidos Parámetros de entidad *ConstraintName Nombre de la Serie de texto con una restricción. longitud máxima de 80 bytes. El nombre debe ser exclusivo dentro de una tabla de un campo. Este símbolo es obligatorio. *ForeignColumnKeyName Nombre de la columna Serie de texto con una sobre la que se está longitud máxima de 254 definiendo la bytes. restricción de clave foránea. *ForeignKeyID Clave que identifica Un valor numérico. de forma exclusiva la clave foránea. La clave debe ser exclusiva respecto a todas las otras claves del archivo de lenguaje de códigos. Consejo: Termine de procesar la plantilla ForeignKey.tag antes de incrementar el valor de la clave. Este símbolo es obligatorio. *MapID Número arbitrario Un valor numérico. que es exclusivo respecto a todas las otras claves del archivo de intercambio. Consejo: Termine de procesar la plantilla ForeignKey.tag antes de incrementar el valor de este símbolo. Este símbolo es obligatorio. *PrimaryColumnKeyName Nombre de columna de Serie de texto con una la columna a que se longitud máxima de 80 hace referencia. bytes. *ReferencedPrimaryKeyID Clave que identifica Un valor numérico. de forma exclusiva la clave primaria. La clave debe ser exclusiva respecto a todas las otras claves del archivo de lenguaje de códigos. Consejo: Termine de procesar la plantilla ForeignKey.tag antes de incrementar el valor de la clave. Este símbolo es obligatorio. Parámetros de relación *DatabaseName Nombre comercial de Serie de texto con una la fuente de longitud máxima de 40 depósito o del bytes. destino de depósito. Este símbolo es obligatorio. *ForeignTablePhysicalNameNombre, definido por Serie de texto con una la base de datos, de longitud máxima de 254 la tabla física que bytes. contiene las claves foráneas que hacen referencia a las claves de otras tablas. *PrimaryTablePhysicalNameNombre, definido por Serie de texto con una la base de datos, de longitud máxima de 80 la tabla física que bytes. contiene las claves foráneas a las que hacen referencia las claves foráneas. *PrimaryTableOwner Propietario, Serie de texto con una calificador de alto longitud máxima de 128 nivel, colección o bytes. esquema de la tabla que contiene la columna de clave primaria a la que se hace referencia. Este símbolo es obligatorio. *ForeignTableOwner Propietario, Serie de texto con una calificador de alto longitud máxima de 128 nivel, colección o bytes. esquema de la tabla que contiene la columna de restricción de clave foránea. Este símbolo es obligatorio. 23.1.2.2 Ejemplos de valores La tabla Tabla 13 proporciona valores de ejemplo de cada uno de los símbolos, para ilustrar la clase de metadatos que se pueden proporcionar para cada símbolo. Tabla 13. Valores de ejemplo para símbolos de ForeignKey.tag Símbolo Valor de ejemplo *ConstraintName Departamento *DatabaseName Depósito financiero *ForeignColumnKeyName Código_país *ForeignKeyID 07011 *ForeignTablePhysicalName Geografía *MapID 02568 *PrimaryColumnKeyName Código_estado *Referenced PrimaryKeyID Nombre *PrimaryTablePhysicalName Ciudad *PrimaryTableOwner DB2ADMIN *ForeignTableOwner IWH 23.1.3 ForeignKeyAdditional.tag Utilice esta plantilla para definir una clave foránea compuesta. Antes de utilizar la plantilla ForeignKeyAdditional.tag, debe definir una restricción (utilizando la plantilla ForeignKey.tag) sobre la primera columna. Luego puede añadir columnas, utilizando esta plantilla para cada una de las columnas que desee añadir. 23.1.3.1 Símbolos La tabla Tabla 14 proporciona información sobre cada uno de los símbolos de la plantilla. Tabla 14. ForeignKeyAdditional.tag, símbolos Símbolo Descripción Valores admitidos Parámetros de entidad *ForeignColumnKeyName Nombre de la columna Serie de texto con una sobre la que se está longitud máxima de 80 definiendo la restricción bytes. de clave foránea. *ForeignKeyID Clave que identifica de Un valor numérico. forma exclusiva la clave foránea. La clave debe ser exclusiva respecto a todas las otras claves del archivo de lenguaje de códigos. Consejo: Termine de procesar la plantilla ForeignKeyAdditional.tag antes de incrementar el valor de la clave. Este símbolo es obligatorio. *MapID Número arbitrario que es Un valor numérico. exclusivo respecto a todas las otras claves del archivo de intercambio. Consejo: Termine de procesar la plantilla ForeignKeyAdditional.tag antes de incrementar el valor de este símbolo. Este símbolo es obligatorio. *MapSeqNo Número que significa cada Número exclusivo, una de las columnas incremental y adicionales añadidas como consecutivo a partir parte de una clave de 2. compuesta a la restricción de clave foránea. *PrimaryColumnKeyName Nombre de columna de la Serie de texto con una columna a que se hace longitud máxima de 80 referencia. bytes. Parámetros de relación *DatabaseName Nombre comercial de la Serie de texto con una fuente de depósito o del longitud máxima de 40 destino de depósito. bytes. Este símbolo es obligatorio. *ForeignTablePhysicalNameNombre, definido por la Serie de texto con una base de datos, de la longitud máxima de 80 tabla física que contiene bytes. las claves foráneas que hacen referencia a las claves de otras tablas. *PrimaryTablePhysicalNameNombre, definido por la Serie de texto con una base de datos, de la longitud máxima de 80 tabla física que contiene bytes. las claves foráneas a las que hacen referencia las claves foráneas. *PrimaryTableOwner Propietario, calificador Serie de texto con una de alto nivel, colección longitud máxima de 128 o esquema de la tabla que bytes. contiene la columna de clave primaria a la que se hace referencia. Este símbolo es obligatorio. *ForeignTableOwner Propietario, calificador Serie de texto con una de alto nivel, colección longitud máxima de 128 o esquema de la tabla que bytes. contiene la columna de restricción de clave foránea. Este símbolo es obligatorio. 23.1.3.2 Ejemplos de valores La tabla Tabla 15 proporciona valores de ejemplo de cada uno de los símbolos, para ilustrar la clase de metadatos que se pueden proporcionar para cada símbolo. Tabla 15. Valores de ejemplo para símbolos de ForeignKeyAdditional.tag Símbolo Valor de ejemplo *DatabaseName Depósito financiero *ForeignColumnKeyName Código_país *ForeignKeyID 07011 *ForeignTablePhysicalName Geografía *MapID 22578 *MapSeqNo 2 *PrimaryColumnKeyName Código_estado *PrimaryTablePhysicalName Ciudad *PrimaryTableOwner DB2ADMIN *ForeignTableOwner IWH 23.1.4 PrimaryKey.tag Utilice esta plantilla para definir las restricciones de claves primarias en las tablas. Esta plantilla define también las relaciones con la tabla y la columna sobre la que se define la restricción. Antes de las tablas y columnas (utilizando las plantillas Table.tag y Column.tag) sobre las que desea definir la restricción de clave primaria. 23.1.4.1 Símbolos La tabla Tabla 16 proporciona información sobre cada uno de los símbolos de la plantilla. Tabla 16. PrimaryKey.tag, símbolos Símbolo Descripción Valores admitidos Parámetros de entidad *ColumnName Nombre de la columna Serie de texto con una o del campo. longitud máxima de 80 bytes. El nombre debe ser exclusivo dentro de una tabla de un campo. Este símbolo es obligatorio. *MapID Número arbitrario Un valor numérico. que es exclusivo respecto a todas las otras claves del archivo de intercambio. Consejo: Termine de procesar la plantilla PrimaryKey.tag antes de incrementar el valor de este símbolo. Este símbolo es obligatorio. *PrimaryKeyID Clave que identifica Un valor numérico. de forma exclusiva la clave primaria. La clave debe ser exclusiva respecto a todas las otras claves del archivo de lenguaje de códigos. Consejo: Termine de procesar la plantilla PrimaryKey.tag antes de incrementar el valor de la clave. Este símbolo es obligatorio. Parámetros de relación *DatabaseName Nombre comercial de Serie de texto con una la fuente de longitud máxima de 40 bytes. depósito o del destino de depósito. Este símbolo es obligatorio. *TableOwner Propietario, Serie de texto con una calificador de alto longitud máxima de 128 bytes. nivel, colección o esquema de la tabla que contiene la columna. Este símbolo es obligatorio. *TablePhysicalName Nombre físico de la Serie de texto con una tabla o del archivo longitud máxima de 80 bytes. que contiene la columna definida para el gestor de bases de datos o el sistema de archivos. Este símbolo es obligatorio. 23.1.4.2 Ejemplos de valores La tabla Tabla 17 proporciona valores de ejemplo de cada uno de los símbolos, para ilustrar la clase de metadatos que se pueden proporcionar para cada símbolo. Tabla 17. Valores de ejemplo para símbolos de PrimaryKey.tag Símbolo Valor de ejemplo *ColumnName Código_país *DatabaseName Depósito financiero *MapID 54627 *PrimaryKeyID 74622 *TableOwner DB2ADMIN *TablePhysicalName GEOGRAPHY 23.1.5 PrimaryKeyAdditional.tag Utilice esta plantilla para definir una clave primaria compuesta. Antes de utilizar la plantilla PrimaryKeyAdditional.tag, debe definir una restricción en la primera columna utilizando la plantilla PrimaryKey.tag. Luego se pueden añadir columnas adicionales utilizando esta plantilla. La plantilla relaciona también las claves primarias adicionales con la primera clave primaria definida utilizando PrimaryKey.tag. 23.1.5.1 Símbolos La tabla Tabla 18 proporciona información sobre cada uno de los símbolos de la plantilla. Tabla 18. PrimaryKeyAdditional.tag, símbolos Símbolo Descripción Valores admitidos Parámetros de entidad *ColumnName Nombre de la columna o Serie de texto con una del campo. longitud máxima de 80 bytes. El nombre debe ser exclusivo dentro de una tabla de un campo. Este símbolo es obligatorio. *FirstPrimaryKeyID Clave que identifica de Un valor numérico. forma exclusiva la clave primaria. La clave debe ser exclusiva respecto a todas las otras claves del archivo de lenguaje de códigos. Consejo: Termine de procesar la plantilla PrimaryKeyAdditional.tag antes de incrementar el valor de la clave. Este símbolo es obligatorio. *MapID Número arbitrario que es Un valor numérico. exclusivo respecto a todas las otras claves del archivo de intercambio. Consejo: Termine de procesar la plantilla PrimaryKeyAdditional.tag antes de incrementar el valor de este símbolo. Este símbolo es obligatorio. *MapSeqNo Número que significa cada Número exclusivo, una de las columnas incremental y consecutivo adicionales añadidas como a partir de 2. parte de una clave compuesta a la restricción de clave primaria. Parámetros de relación *DatabaseName Nombre comercial de la Serie de texto con una fuente de depósito o del longitud máxima de 40 destino de depósito. bytes. Este símbolo es obligatorio. *TableOwner Propietario, calificador Serie de texto con una de alto nivel, colección longitud máxima de 15 o esquema de la tabla que bytes. contiene la columna. Este símbolo es obligatorio. *TablePhysicalName Nombre físico de la tabla Serie de texto con una o del archivo que longitud máxima de 80 contiene la columna bytes. definida para el gestor de bases de datos o el sistema de archivos. Este símbolo es obligatorio. 23.1.5.2 Ejemplos de valores La tabla Tabla 19 proporciona valores de ejemplo de cada uno de los símbolos, para ilustrar la clase de metadatos que se pueden proporcionar para cada símbolo. Tabla 19. Valores de ejemplo para símbolos de PrimaryKeyAdditional.tag Símbolo Valor de ejemplo *ColumnName Código_país *DatabaseName Depósito financiero *MapID 99542 *MapSeqNo 2 *FirstPrimaryKeyID 07801 *TableOwner DB2ADMIN *TablePhysicalName GEOGRAPHY ------------------------------------------------------------------------ Ayuda en línea del Centro de depósito de datos ------------------------------------------------------------------------ 24.1 Definición de tablas o vistas para la duplicación Para que se pueda utilizar el Centro de control de DB2 como fuente de duplicación en el Centro de depósito de datos, antes se debe definir una tabla o vista para la duplicación utilizando el Centro de control de DB2. ------------------------------------------------------------------------ 24.2 Ejecución de VWP de Essbase con el Agente de AS/400 Antes de ejecutar los Essbase VWP con el agente de AS/400, es necesario establecer ARBORLIB y ARBORPATH como variables de entorno *sys. Para ello, el ID de usuario debe tener autorización *jobctl. Es necesario que estas variables de entorno apunten a la biblioteca en que se ha instalado Essbase. ------------------------------------------------------------------------ 24.3 Utilización de la ventana Publicar metadatos del Centro de depósito de datos y la ventana Propiedades asociadas En el paso 10 de la ayuda para la tarea, hay un ejemplo que indica que, si se especifica un valor límite de 1 (Limitar los niveles de objetos en el árbol) y se publica un proceso, sólo se publica y visualiza el paso 1 de dicho proceso. Este ejemplo no es correcto en todos los casos. En el paso 8, en el segundo elemento indicado, la primera frase es incorrecta. Debe decir "Pulse el nivel de la columna para generar un objeto de transformación entre una columna fuente y una columna de destino del catálogo de información." ------------------------------------------------------------------------ 24.4 Claves foráneas Cualquier referencia efectuada en la ayuda en línea a "claves foráneas" debe decir "claves foráneas de depósito." ------------------------------------------------------------------------ 24.5 Cuadernos de duplicación Cualquier referencia efectuada en la ayuda en línea al "cuaderno Definir duplicación" debe decir "cuadernos de pasos de duplicación." ------------------------------------------------------------------------ 24.6 Importación de un lenguaje de códigos Ayuda en línea para Importación de un lenguaje de código: En la lista que muestra errores comunes de importación, hay un elemento que es "Importación de un archivo de lenguaje de código que no se ha exportado correctamente". Este elemento no es aplicable a la lista de errores comunes de entrada. ------------------------------------------------------------------------ 24.7 Enlaces para añadir datos En el tema "Añadir datos" de la ayuda en línea, los enlaces con los temas "Añadir tablas fuente a un proceso" y "Añadir tablas de destino a un proceso" no funcionan. Se pueden encontrar estos temas en el índice de la ayuda. ------------------------------------------------------------------------ 24.8 Importación de tablas Los temas de ayuda "Importar tablas fuente y vistas a una fuente de depósito" e "Importar tablas destino a un destino de depósito" contienen información incorrecta respecto al carácter comodín. La frase: Por ejemplo, XYZ* devolvería tablas y vistas con esquemas que empiezan con estos caracteres. debe decir: Por ejemplo, XYZ% devolvería tablas y vistas con esquemas que empiezan con estos caracteres. ------------------------------------------------------------------------ 24.9 Corrección de la ayuda en línea de RUNSTATS y REORGANIZE TABLE La ayuda en línea para estos programas de utilidad indica que la tabla sobre la que se desean ejecutar estadísticas, o que se va a reorganizar, debe estar enlazada como fuente y destino. Sin embargo, y puesto que el paso graba en la fuente, sólo es necesario enlazar la fuente al paso. ------------------------------------------------------------------------ 24.10 Página Notificación (Cuaderno Propiedades del depósito y Cuaderno Planificación) En la página Notificación del cuaderno Propiedades del depósito, la sentencia: El campo de entrada Remitente se inicializa con la serie . debería cambiarse por: El campo de entrada Remitente se inicializa con la serie . En la página Notificación del cuaderno Planificación, el remitente se inicializará según lo que esté establecido en el cuaderno Propiedades del depósito. Si no se ha establecido nada, se inicializa según la dirección de correo electrónico del usuario de conexión actual. Si no hay ninguna dirección de correo electrónico asociada con el usuario de conexión, el remitente se establece en el ID de usuario de conexión. ------------------------------------------------------------------------ 24.11 Campo Módulo agente del cuaderno Sitios agente El campo Módulo agente del cuaderno Sitios agente proporciona el nombre del programa que se ejecuta cuando el daemon agente del depósito ejecuta el agente del depósito. No cambie el nombre del campo a no ser que IBM así se lo indique. ------------------------------------------------------------------------ Kit de iniciación de DB2 OLAP El Kit de iniciación de DB2 OLAP de IBM 7.2 añade soporte para los sistemas de gestión de bases de datos relacionales (RDBMS) Oracle, MS-SQL, Sybase e Informix en determinadas plataformas de sistemas operativos. La Versión 7.2 contiene scripts y herramientas para todos los RDBMS soportados, incluido DB2. Hay algunas restricciones; consulte 25.8, Problemas y limitaciones conocidos para obtener más información. El nivel de servicio del Kit de iniciación de DB2 OLAP para DB2 Universal Database Versión 7.2 es el equivalente del parche 2 para Hyperion Essbase 6.1 más el parche 2 para Hyperion Integration Server 2.0. ------------------------------------------------------------------------ 25.1 Sitio Web de OLAP Server Para las últimas indicaciones de instalación y utilización para el Kit de iniciación de DB2 OLAP, compruebe la página de Biblioteca del sitio Web de DB2 OLAP Server: http://www.ibm.com/software/data/db2/db2olap/library.html ------------------------------------------------------------------------ 25.2 Niveles de servicio de sistemas operativos soportados Los componentes del servidor del Kit de iniciación de OLAP para Versión 7.2 dan soporte a los siguientes sistemas operativos y niveles de servicio: * Servidores Windows NT 4.0 con SP 5 y Windows 2000 * AIX versión 4.3.3 o superior * Sistema operativo Solaris versión 2.6, 7 y 8 (Sun OS 5.6, 5.7 ó 5.8) Los componentes del cliente se ejecutan en Windows 95, Windows 98, Windows NT 4.0 SP5 y Windows 2000. ------------------------------------------------------------------------ 25.3 Realización de la configuración del Kit de iniciación de DB2 OLAP en UNIX La instalación del Kit de iniciación de DB2 OLAP sigue los procedimientos básicos de la instalación de DB2 Universal Database para UNIX. El programa de instalación sitúa los archivos del producto en un directorio del sistema: (para AIX: /usr/lpp/db2_07_01; para Solaris: /opt/IBMdb2/V7.1). Luego, durante la fase de creación de la instancia, se crean dos directorios de DB2 OLAP (essbase e is) dentro del directorio inicial del usuario de la instancia bajo sqllib. Sólo puede ejecutarse una instancia del servidor OLAP en una máquina al mismo tiempo. Para completar la configuración, el usuario debe definir manualmente el directorio is/bin de modo que no sea un enlace con el directorio is/bin del sistema. Debe enlazar con un directorio en el que se pueda escribir, dentro del directorio inicial de la instancia. Para completar la configuración para Solaris, inicie una sesión utilizando el ID de instancia, cambie al directorio sqllib/is y luego entre lo siguiente: rm bin mkdir bin cd bin ln -s /opt/IBMdb2/V7.1/is/bin/ismesg.mdb ismesg.mdb ln -s /opt/IBMdb2/V7.1/is/bin/olapicmd olapicmd ln -s /opt/IBMdb2/V7.1/is/bin/olapisvr olapisvr ln -s /opt/IBMdb2/V7.1/is/bin/essbase.mdb essbase.mdb ln -s /opt/IBMdb2/V7.1/is/bin/libolapams.so libolapams.so ------------------------------------------------------------------------ 25.4 Configuración de ODBC para el Kit de iniciación de OLAP El Kit de iniciación de DB2 OLAP de IBM 7.2 necesita un archivo ODBC.ini para el funcionamiento de conexiones ODBC (Open Database Connectivity) procedentes del Servidor de integración de OLAP con la fuente de datos relacionales y con el Catálogo de metadatos de OLAP. * En sistemas Windows, este archivo se encuentra en el Registro bajo HKEY_LOCAL_MACHINE/SOFTWARE/ODBC. Utilice el Administrador de fuentes de datos de ODBC para almacenar información sobre cómo establecer conexión con una fuente de datos relacionales. * En sistemas UNIX, el programa de instalación crea un archivo odbc.ini modelo. Para almacenar información sobre cómo establecer conexión con una fuente de datos relacionales, edite el archivo utilizando el editor que prefiera. El archivo ODBC.ini está disponible en paquetes de software de ODBC y se incluye con el software de Microsoft Office. Para obtener más información sobre aplicaciones que instalan controladores ODBC o el Administrador de ODBC, visite el siguiente sitio web: http://support.microsoft.com/support/kb/articles/Q113/1/08.asp. Para usuarios de Oracle en máquinas AIX: para configurar ODBC para Oracle, debe actualizar el archivo ODBC.ini para que apunte a los controladores MERANT 3.6. En la Versión 7.2, el Kit de iniciación de OLAP gestiona conexiones ODBC con la fuente de datos relacionales y con el Catálogo de metadatos de OLAP. Para acomodar estas conexiones ODBC, el Kit de iniciación de OLAP utiliza controladores ODBC en Windows NT 4.0, Windows 2000, AIX y Solaris. * Cliente de bases de datos DB2 Universal Database Versión 6: controladores ODBC de DB2 Versión 6 en Windows NT 4.0 SP5 o Windows 2000, AIX 4.3.3 y sistema operativo Solaris 2.6, 7 u 8 (Sun OS 5.6, 5.7 ó 5.8). * Cliente de bases de datos DB2 Universal Database Versión 7.1: controladores ODBC de DB2 Versión 7 en Windows NT 4.0 SP5 o Windows 2000, AIX 4.3.3 y sistema operativo Solaris 2.6, 7 u 8 (Sun OS 5.6, 5.7 ó 5.8). * Cliente de bases de datos Oracle 8.04 y 8i SQL*Net 8.0: controladores ODBC de MERANT 3.6 en Windows NT 4.0 SP5 o Windows 2000, AIX 4.3.3, sistema operativo Solaris 2.6, 7 u 8 (Sun OS 5.6, 5.7 ó 5.8). * MS SQL Server 6.5.201 (no se necesita cliente de bases de datos): controladores ODBC de MS SQL Server 6.5 en Windows NT 4.0 SP5 o Windows 2000. * MS SQL Server 7.0 (no se necesita cliente de bases de datos): controladores ODBC de MS SQL Server 7.0 en Windows NT 4.0 SP5 o Windows 2000. 25.4.1 Configuración de fuentes de datos en sistemas UNIX En AIX y Solaris, debe definir de forma manual variables de entorno para ODBC y editar el archivo odbc.ini para configurar la fuente de datos relacionales y el Catálogo de metadatos de OLAP. Asegúrese de editar el archivo odbc.ini y de añadir un nuevo controlador o fuente de datos si cambia el controlador o fuente de datos. 25.4.1.1 Configuración de variables de entorno de ODBC En sistemas UNIX, debe definir variables de entorno para permitir el acceso a los componentes básicos de ODBC. Los scripts de shell is.sh e is.csh que definen las variables necesarias se suministran en el directorio inicial del Kit de iniciación. Debe ejecutar uno de estos scripts antes de utilizar ODBC para conectar con fuentes de datos. Debe incluir estos scripts en el script de inicio de sesión correspondiente al nombre de usuario que utilice para ejecutar el Kit de iniciación de OLAP. 25.4.1.2 Edición del archivo odbc.ini Para configurar una fuente de datos en un archivo odbc.ini, debe añadir un nombre y descripción correspondientes a la fuente de datos ODBC y suministrar una vía de acceso y nombre de archivo del controlador ODBC y otros valores de controlador en una sección separada que cree para el nombre de la fuente de datos. El programa de instalación instala un archivo odbc.ini de ejemplo en el directorio ISHOME. El archivo contiene información genérica de configuración y conexión de ODBC para los controladores ODBC soportados. Utilice el archivo como punto de inicio para correlacionar los controladores ODBC que utilice con la fuente de datos relacionales y el Catálogo de metadatos de OLAP. Si utiliza un archivo que no sea odbc.ini, asegúrese de definir la variable de entorno ODBCINI con el nombre del archivo que utilice. 25.4.1.3 Adición de una fuente de datos a un archivo odbc.ini 1. En el sistema que ejecuta los servidores del Kit de iniciación de OLAP, abra el archivo odbc.ini utilizando un editor de texto como vi. 2. Busque la sección que comienza con [ODBC Data Sources] y añada una nueva línea con el nombre y la descripción de la fuente de datos, como por ejemplo mydata=fuente de datos para análisis. Para evitar confusiones, el nombre de la fuente de datos debe coincidir con el nombre de la base de datos en el RDBMS. 3. Añada una nueva sección al archivo creando una nueva línea con el nombre de la nueva fuente de datos entre corchetes, como por ejemplo: [mydata]. 4. En las líneas que siguen al nombre de la fuente de datos, añada la vía de acceso completa y el nombre de archivo del controlador ODBC necesario para esta fuente de datos y otra información necesaria sobre el controlador ODBC. Utilice los ejemplos que se muestran en las siguientes secciones como guía para correlacionar con la fuente de datos de su RDBMS. Asegúrese de que el archivo de controlador ODBC existe en la ubicación especificada para el valor Driver=. 5. Cuando termine de editar odbc.ini, guarde el archivo y salga del editor de texto. 25.4.1.4 Ejemplo de valores de ODBC para DB2 El siguiente ejemplo muestra cómo puede editar odbc.ini para conectar con una fuente de datos relacionales, db2data, en DB2 Universal Database Versión 6.1 en AIX, utilizando un controlador ODBC nativo de IBM DB2. En el editor vi editor, utilice el mandato $ODBCINI para editar el archivo odbc.ini e insertar las siguientes sentencias: [ODBC Data Sources] db2data=DB2 Source Data on AIX ... [db2data] Driver=/home/db2inst1/sqllib/lib/db2.o Description=Fuente de datos DB2 - AIX, nativo 25.4.1.5 Ejemplo de valores de ODBC para Oracle A continuación se muestra un ejemplo de cómo puede editar odbc.ini para conectar con una fuente de datos relacionales, oradata, en Oracle Versión 8 (en Solaris), utilizando un controlador ODBC de MERANT Versión 3.6. En este ejemplo, LogonID y Password se alteran temporalmente con los valores reales utilizados en el nombre de usuario y contraseña del Kit de iniciación de OLAP. [ODBC Data Sources] oradata=Oracle8 Source Data on Solaris ... [myoracle] Driver= /export/home/users/dkendric/is200/odbclib/ARor815.so Description=mi fuente oracle 25.4.2 Configuración del Catálogo de metadatos de OLAP en sistemas UNIX La configuración de un Catálogo de metadatos de OLAP en AIX y Solaris es parecido a configurar una fuente de datos. Para la base de datos del Catálogo de metadatos de OLAP, añada un nombre de fuente de datos y sección al archivo odbc.ini, tal como se describe en 25.4.1.2, Edición del archivo odbc.ini. No hace falta realizar ningún otro cambio. Debe crear una base de datos de Catálogo de metadatos de OLAP en un RDBMS soportado antes de configurarlo como una fuente de datos ODBC. A continuación se muestra un ejemplo de cómo puede editar odbc.ini para conectar con el Catálogo de metadatos de OLAP , TBC_MD, en DB2 Versión 6.1 (en Solaris), utilizando un controlador ODBC nativo: [ODBC Data Sources] ocd6a5a=db2 v6 ... [ocd6a5a] Driver=/home/db2instl/sqllib/lib/db2.0 Description=db2 25.4.3 Configuración de fuentes de datos en sistemas Windows Para configurar una fuente de datos relacionales en sistemas Windows NT o Windows 2000, debe iniciar el Administrador de ODBC y luego crear una conexión con la fuente de datos que vaya a utilizar para crear modelos y metaperfiles de OLAP. Ejecute el programa de utilidad Administrador de ODBC desde el Panel de control de Windows. El siguiente ejemplo crea una fuente de datos DB2; los recuadros de diálogo correspondientes a otros RDBMS diferirán. Para configurar una fuente de datos relacionales con el Administrador de ODBC, lleve a cabo los pasos siguientes: 1. En el escritorio de Windows, abra la ventana Panel de control. 2. En la ventana Panel de control, lleve a cabo uno de los pasos siguientes: a. En Windows NT, efectúe una doble pulsación en el icono ODBC para abrir el recuadro de diálogo Administrador de fuentes de datos ODBC. b. En Windows 2000, efectúe una doble pulsación en el icono Herramientas administrativas y luego efectúe una doble pulsación en el icono Fuentes de datos (ODBC) para abrir el recuadro de diálogo Administrador de fuentes de datos ODBC. 3. En el recuadro de diálogo Administrador de fuentes de datos ODBC, pulse la pestaña DSN del sistema. 4. Pulse Añadir para abrir el recuadro de diálogo Crear nueva fuente de datos. 5. En el recuadro de lista de controladores del recuadro de diálogo Crear nueva fuente de datos del Administrador de ODBC, seleccione un controlador adecuado, como Controlador ODBC de IBM DB2 y pulse Finalizar para abrir el recuadro de diálogo Controlador ODBC de IBM DB2 - Añadir. 6. En el recuadro de diálogo Controlador ODBC de IBM DB2 - Añadir, en la lista desplegable Alias de base de datos, seleccione el nombre de la base de datos correspondiente a su fuente de datos relacionales (por ejemplo, TBC en la aplicación de ejemplo). 7. En el recuadro de texto Descripción, escriba una descripción opcional que indique cómo utilizar este controlador y pulse Añadir. Por ejemplo, escriba lo siguiente para describir la base de datos My Business: Clientes, productos, mercados Puede escribir lo siguiente para describir la base de datos de aplicación de ejemplo: Fuente de datos relacionales de ejemplo La descripción ayuda a identificar las fuentes de datos disponibles para s selección cuando se conecta desde el escritorio del Kit de iniciación de OLAP. 8. Pulse Aceptar para volver al recuadro de diálogo Administrador de fuentes de datos ODBC. El nombre que ha especificado y el controlador que ha correlacionado se muestran en el recuadro de lista Fuentes de datos del sistema de la pestaña DSN del sistema. Para editar información de configuración correspondiente a una fuente de datos: 1. Seleccione el nombre de la fuente de datos y pulse Configurar para abrir el recuadro de diálogo ODBC IBM DB2 - Añadir. 2. Corrija la información que desee modificar. 3. Pulse Aceptar dos veces para salir. 25.4.4 Configuración del Catálogo de metadatos de OLAP en sistemas Windows Para configurar un Catálogo de metadatos de OLAP en Windows NT o Windows 2000, inicie el Administrador de ODBC y luego cree una conexión con la fuente de datos que contiene la base de datos del Catálogo de metadatos de OLAP. El siguiente ejemplo crea una fuente de datos de DB2; los recuadros de diálogo correspondientes a otros RDBMS diferirán. Para crear una fuente de datos para el Catálogo de metadatos de OLAP, siga estos pasos: 1. En el escritorio, abra la ventana Panel de control. 2. En la ventana Panel de control, lleve a cabo uno de los pasos siguientes: a. En Windows NT, efectúe una doble pulsación en el icono ODBC para abrir el recuadro de diálogo Administrador de fuentes de datos ODBC. b. En Windows 2000, efectúe una doble pulsación en el icono Herramientas administrativas y luego efectúe una doble pulsación en el icono Fuentes de datos (ODBC) para abrir el recuadro de diálogo Administrador de fuentes de datos ODBC. 3. En el recuadro de diálogo Administrador de fuentes de datos ODBC, pulse la pestaña DSN del sistema. 4. Pulse Añadir para abrir el recuadro de diálogo Crear nueva fuente de datos. 5. En el recuadro de lista de controladores del recuadro de diálogo Crear nueva fuente de datos del Administrador de ODBC, seleccione un controlador adecuado, como Controlador ODBC de IBM DB2 y pulse Finalizar para abrir el recuadro de diálogo Controlador ODBC de IBM DB2 - Añadir. 6. En el recuadro de diálogo Controlador ODBC de IBM DB2 - Añadir, en la lista desplegable Alias de base de datos, seleccione el nombre de la base de datos correspondiente a su Catálogo de metadatos de OLAP (por ejemplo, TBC_MD en la aplicación de ejemplo). El nombre de la base de datos seleccionada se muestra automáticamente en el recuadro de texto Nombre de fuente de datos. 7. Si desea cambiar el nombre de la fuente de datos, seleccione el nombre que aparece en el recuadro de texto Nombre de fuente de datos, escriba un nuevo nombre para indicar cómo utilizar este controlador y pulse Añadir. Por ejemplo, puede escribir el siguiente nombre para indicar que está utilizando el controlador para conectar con el primer Catálogo de metadatos de OLAP: Primer catálogo de OLAP Escribiría el siguiente nombre para indicar que está conectando con la base de datos del Catálogo de metadatos de OLAP de la aplicación de ejemplo: TBC_MD 8. En el recuadro de texto Descripción, entre una descripción que indique cómo utiliza este controlador. Por ejemplo, puede escribir lo siguiente para describir el Catálogo de metadatos de OLAP: Mis primeros modelos y metaperfiles Puede escribir lo siguiente para describir la base de datos del Catálogo de metadatos de OLAP de la aplicación de ejemplo: Modelos y metaperfiles de ejemplo Las descripciones le ayudan a identificar el catálogo que desea seleccionar cuando se conecta al Catálogo de metadatos de OLAP desde el escritorio del Kit de iniciación de OLAP. 9. Pulse Aceptar para volver al recuadro de diálogo Administrador de fuentes de datos ODBC. El nombre que ha especificado y el controlador que ha correlacionado se muestran en el recuadro de lista Fuentes de datos del sistema de la pestaña DSN del sistema. Para editar información de configuración correspondiente a una fuente de datos: 1. Seleccione el nombre de la fuente de datos y pulse Configurar para abrir el recuadro de diálogo ODBC IBM DB2 - Añadir. 2. Corrija la información que desee modificar. 3. Pulse Aceptar dos veces para salir. 25.4.5 Después de configurar una fuente de datos Después de configurar la fuente de datos relacionales y el Catálogo de metadatos de OLAP, puede conectarse a los mismos desde el Kit de iniciación de OLAP. Luego puede crear, modificar y guardar modelos y metaperfiles de OLAP. Es posible que se exceda el tiempo de espera del controlador ODBC de SQL Server durante una llamada a una base de datos de SQL Server. Vuelva a intentarlo cuando la base de datos no esté ocupada. Puede evitar este problema aumentando el periodo de tiempo de espera excedido del controlador. Para obtener más información, consulte la documentación de ODBC correspondiente al controlador que esté utilizando. Para obtener más información sobre problemas de conexión a ODBC y soluciones, consulte el manual OLAP Integration Server System Administrator's Guide. ------------------------------------------------------------------------ 25.5 Inicio de una sesión desde el escritorio del Kit de iniciación de OLAP Para utilizar el escritorio del Kit de iniciación de OLAP para crear modelos y metaperfiles de OLAP, debe conectar el software del cliente a dos componentes del servidor: DB2 OLAP Integration Server y DB2 OLAP Server. El diálogo de inicio de sesión le solicitará la información necesaria para que el Escritorio conecte con estos dos servidores. En la parte izquierda del diálogo, entre información sobre el Servidor de integración DB2 OLAP. En la parte derecha, entre información sobre DB2 OLAP Server. Para conectar con el Servidor de integración DB2 OLAP: * Servidor: Entre el nombre de sistema principal o la dirección IP del Servidor de integración Si ha instalado el Servidor de integración en la misma estación de trabajo que el escritorio, los valores típicos son "localhost" o "127.0.0.1". * Catálogo de metadatos de OLAP: Cuando conecte con el Servidor de integración OLAP, también debe especificar un Catálogo de metadatos. El Servidor de integración OLAP almacena información sobre los modelos y metaperfiles de OLAP que se crean en una base de datos relacional conocida como Catálogo de metadatos. Esta base de datos relacional se debe registrar para ODBC. La base de datos de catálogos contiene un conjunto especial de tablas relacionales que el Servidor de integración OLAP reconoce. En el diálogo de inicio de sesión, se puede especificar un Servidor de integración y luego expandir el menú desplegable para el campo Catálogo de metadatos OLAP para ver una lista de los nombres de fuentes de datos ODBC conocidas para el Servidor de integración OLAP. Elija una base de datos ODBC que contenga las tablas de catálogos de metadatos. * Nombre de usuario y Contraseña: OLAP Integration Server conectará con el Catálogo de metadatos utilizando el Nombre de usuario y la contraseña que especifique en este panel. Ésta es una cuenta de inicio de sesión que existe en el servidor (y no en el cliente, a no ser que el servidor y el cliente se ejecuten en la misma máquina). El nombre de usuario debe ser el correspondiente al usuario que ha creado el Catálogo de metadatos de OLAP. De lo contrario, OLAP Integration Server no encontrará las tablas relacionales en la base de datos de catálogos porque los nombres de esquema de las tablas son distintos. La información de DB2 OLAP Server es opcional, por lo que los campos de entrada que se encuentran en la parte derecha del diálogo Inicio de sesión se pueden dejar en blanco. Sin embargo, algunas operaciones del Escritorio y del Gestor de administración requieren que se realice una conexión con un DB2 OLAP Server. Si deja estos campos en blanco, el Escritorio visualizará el diálogo Inicio de sesión de nuevo si el Integration Server necesita conectar con DB2 OLAP Server para poder completar una operación que se le ha solicitado. Es recomendable cumplimentar siempre los campos de DB2 OLAP Server en el diálogo Inicio de sesión. Para conectar con DB2 OLAP Server: * Servidor: Entre el nombre de sistema principal o la dirección IP del DB2 OLAP Server. Si está ejecutando el Kit de iniciación de OLAP, el OLAP Server y el Integration Server son el mismo. Si el Servidor de integración y el OLAP Server están instalados en sistemas principales distintos, entre el nombre de sistema principal o la dirección IP definidos en el Servidor de integración OLAP. * Nombre de usuario y Contraseña: el Servidor de integración OLAP conectará con el DB2 OLAP Server utilizando el Nombre de usuario y la contraseña que especifique en este panel. Este nombre de usuario y esta contraseña tienen que estar definidos para el DB2 OLAP Server. El OLAP Server gestiona sus propios nombres de usuario y contraseñas de forma independiente del sistema operativo principal. 25.5.1 Ejemplo de inicio de sesión del Kit de iniciación En el ejemplo siguiente se supone que se ha creado el Ejemplo de OLAP y se ha seleccionado db2admin como ID de usuario de administrador, y contraseña como contraseña de administrador durante la instalación del Kit de iniciación de OLAP. * Para OLAP Integration Server: El servidor es localhost, el Catálogo de metadatos de OLAP es TBC_MD, el Nombre de usuario es db2admin, la Contraseña es contraseña * Para DB2 OLAP Server: El servidor es localhost, el Nombre de usuario es db2admin ------------------------------------------------------------------------ 25.6 Creación y configuración manual de las bases de datos de ejemplo para el Kit de iniciación de OLAP Las bases de datos de ejemplo se crean automáticamente al instalar el Kit de iniciación de OLAP. En las instrucciones siguientes se explica cómo configurar manualmente las bases de datos de Catálogos y Ejemplos, en caso de que sea necesario. 1. En Windows, abra la ventana Centro de mandatos pulsando Inicio -->Programas-->DB2 para Windows NT--> Ventana Mandato. 2. Cree la base de datos de catálogos de producción: a. Escriba db2 create db OLAP_CAT b. Escriba db2 connect to OLAP_CAT 3. Cree tablas en la base de datos: a. Navegue a \SQLLIB\IS\ocscript\ocdb2.sql b. Escriba db2 -tf ocdb2.sql 4. Cree la base de datos fuente de ejemplo: a. Escriba db2 connect reset b. Escriba db2 create db TBC c. Escriba db2 connect to TBC 5. Cree tablas en la base de datos: a. Navegue a \SQLLIB\IS\samples\ b. Copie tbcdb2.sql a \SQLLIB\samples\db2sampl\tbc c. Copie lddb2.sql a \SQLLIB\samples\db2sampl\tbc d. Navegue a \SQLLIB\samples\db2sampl\tbc e. Escriba db2 -tf tbcdb2.sql f. Escriba db2 - vf lddb2.sql para cargar datos fuente de ejemplo en las tablas. 6. Cree la base de datos de catálogos de ejemplo: a. Escriba db2 connect reset b. Escriba db2 create db TBC_MD c. Escriba db2 connect to TBC_MD 7. Cree tablas en la base de datos: a. Navegue a \SQLLIB\IS\samples\tbc_md b. Copie ocdb2.sql a \SQLLIB\samples\db2sampl\tbcmd c. Copie lcdb2.sql a \SQLLIB\samples\db2sampl\tbcmd d. Navegue a \SQLLIB\samples\db2sampl\tbcmd e. Escriba db2 -tf ocdb2.sql f. Escriba db2 -vf lcdb2.sql para cargar metadatos de ejemplo en las tablas. 8. Configure ODBC para TBC_MD, TBC, AND OLAP_CAT: a. Abra el panel de control de NT pulsando Inicio-->Configuración-->Panel de control b. Seleccione ODBC (o fuentes de datos ODBC) en la lista. c. Seleccione la pestaña System DSM. d. Pulse Añadir. Se abrirá la ventana Crear nueva fuente de datos. e. Seleccione IBM DB2 ODBC DRIVER en la lista. f. Pulse Finalizar. Se abrirá la ventana ODBC IBM D2 Driver - Añadir. g. Escriba el nombre de la fuente de datos (OLAP_CAT) en el campo Nombre de fuente de datos. h. Escriba el alias en el campo Alias de base de datos, o pulse la flecha abajo y seleccione OLAP_CAT en la lista. i. Pulse Aceptar. j. Repita estos pasos para las bases de datos TBC_MD y TBC. ------------------------------------------------------------------------ 25.7 Migración de aplicaciones al Kit de iniciación de OLAP Versión 7.2 El programa de instalación no instala las aplicaciones, bases de datos y archivos de datos de ejemplo del Kit de iniciación de OLAP. Las aplicaciones y bases de datos existentes no se ven afectadas. Sin embargo, siempre resulta recomendable realizar una copia de seguridad de las aplicaciones y las bases de datos antes de realizar una instalación. Las aplicaciones se migran automáticamente a la Versión 7.2 cuando las abre. ------------------------------------------------------------------------ 25.8 Problemas y limitaciones conocidos Esta sección contiene las limitaciones conocidas del Kit de iniciación de DB2 OLAP. Compatibilidad de RDBMS de Informix con controladores Merant para plataformas Windows Para que los controladores Merant para plataformas Windows funcionen con el RDBMS Informix, se deben añadir las dos entradas siguientes a la sentencia PATH: o C:\Informix o C:\Informix\bin Ambas entradas deben estar al principio de la sentencia PATH. Posible incoherencia entre dimensiones en modelos OLAP y metaperfiles asociados Bajo determinadas circunstancias, puede crear una dimensión en un metaperfil que no tenga una dimensión correspondiente en el modelo OLAP. Esto puede suceder si: 1. Crea un nuevo modelo OLAP y lo guarda. 2. Crea un metaperfil basado en el modelo, pero no lo guarda. 3. Vuelve al modelo OLAP y suprime una dimensión en la que se basa una de las dimensiones del metaperfil. 4. Vuelve al metaperfil, lo guarda, lo cierra y lo vuelve a abrir. El metaperfil contendrá una dimensión que no tiene una dimensión correspondiente en el modelo OLAP. El Kit de iniciación de OLAP no puede distinguir entre una dimensión incoherente creada de esta forma y una dimensión definida por el usuario en un metaperfil. Por lo tanto, la dimensión incoherente se mostrará en el metaperfil, pero el metaperfil la tratará como una dimensión definida por el usuario, puesto que no existe ninguna dimensión correspondiente en el modelo OLAP. En plataformas Windows 2000, el valor de variable de entorno correspondiente a TMP hace que fallen cargas de datos y de miembros Debido a una diferencia en los valores de variables de entorno del usuario y del sistema por omisión para TMP entre Windows 2000 y Windows NT, las cargas de miembros y de datos fallan cuando el Kit de iniciación de OLAP se está ejecutando en plataformas Windows 2000. El mensaje de error resultante indica a los usuarios que no se ha podido crear el archivo temporal. Puede solucionar esta limitación en Windows 2000 siguiendo estos pasos: 1. Cree un directorio denominado C:\TEMP 2. Establezca la variable de entorno TMP para el sistema y para el usuario en TMP=C:\TEMP La instalación de ODBC no sustituye el controlador Merant existente Los controladores ODBC 3.6 Merant existentes no se actualizan con esta instalación. Si está actualizando desde el Kit de iniciación de OLAP Versión 7.1, fixpack 2 o anterior, debe continuar utilizando los controladores ODBC instalados anteriormente Utilización de controladores ODBC Informix Merant en plataformas UNIX Para utilizar controladores ODBC Informix Merant en plataformas UNIX, debe hacer una de las siguientes cosas: o Antes de iniciar el Kit de iniciación, establezca la variable de entorno LANG en "en_US". Por ejemplo, para el shell korn, escriba: export LANG='en_US' Establezca esta variable cada vez que inicie el Kit de iniciación de OLAP. o Si la variable de entorno LANG ya está establecida con un valor diferente, realice el siguiente enlace simbólico después de la instalación: ln -s $ISHOME/locale/en_US $ISHOME/locale/$LANG Combinación de niveles de servicio de clientes y servidores OLAP IBM recomienda mantener los componentes cliente y servidor del Kit de iniciación de DB2 OLAP con la misma versión y nivel de fixpack. Pero, en algunas situaciones, es posible que pueda combinar diferentes niveles de servicio de los componentes cliente y servidor: Utilizando clientes y servidores con distintos niveles de servicio dentro de una versión IBM no da soporte, y recomienda que no se haga, a la utilización de clientes más actualizados que los servidores. Sin embargo, es posible que pueda utilizar clientes antiguos con servidores más modernos, aunque IBM no le dé soporte. Es posible que se produzcan problemas. Por ejemplo: + Los mensajes procedentes del servidor pueden no ser correctos. Puede solucionar este problema actualizando el archivo message.MDB en el cliente para que coincida con el nivel del servidor. + Las características nuevas del servidor no funcionan. El cliente, servidor o ambos pueden fallar cuando intente utilizar una característica nueva. + Es posible que el cliente no se conecte correctamente con el servidor. Utilizando varios servidores con un solo cliente dentro de una versión Si tiene que conectar un cliente a varios servidores OLAP en distintas máquinas o sistemas operativos, IBM recomienda que los coloque a la misma versión y nivel de servicio. El cliente debe estar al menos al mismo nivel que el servidor con el nivel inferior. Si tiene problemas, es posible que tenga que utilizar distintas máquinas cliente para que coincidan con el sistema principal adecuado o actualizar todos los clientes y servidores al mismo nivel de servicio. Combinando clientes y servidores de distintas versiones IBM no da soporte a la utilización de clientes y servidores del Kit de iniciación de OLAP de la Versión 7.1 con clientes y servidores de la Versión 7.2. Cuando se actualizan productos IBM OLAP a un nuevo nivel de versión, suele haber actualizaciones de red y cambios de formato de datos que necesitan que el cliente y el servidor estén al mismo nivel de versión. Combinando productos de IBM (Kit de iniciación de DB2 OLAP) con productos de Hyperion (Hyperion Essbase e Hyperion Integration Server) IBM no da soporte a la combinación de clientes y servidores de OLAP de IBM con clientes y servidores de OLAP de Hyperion Solutions. Hay algunas diferencias en características que pueden causar problemas, aunque la combinación de estos componentes puede funcionar en algunas situaciones. ------------------------------------------------------------------------ 25.9 Falta de archivos EQD del Complemento de hoja de cálculo de OLAP En el Kit de iniciación de DB2 OLAP, el Complemento de hoja de cálculo tiene un componente llamado Query Designer (EQD). El menú de la ayuda en línea para EQD incluye un botón llamado Guía de aprendizaje que no muestra nada. El material que debería visualizarse en las guías de aprendizaje de EQD es un subconjunto del capítulo dos de los manuales OLAP Spreadsheet Add-in Guía del usuario para Excel y OLAP Spreadsheet Add-in Guía del usuario para 1-2-3. Toda la información de la guía de aprendizaje de EQD está disponible en las versiones HTML de estos libros en el Centro de información y en las versiones PDF. ------------------------------------------------------------------------ Information Catalog Manager Administration Guide ------------------------------------------------------------------------ 26.1 Programa de utilidad Inicialización del Gestor de catálogos de información 26.1.1 Con el programa de utilidad ICM (Inicializar el Gestor de catálogos de información), ahora se puede añadir una sentencia de SQL al final de la sentencia CREATE TABLE utilizando el mandato siguiente: CREATEIC \DBTYPE tipobd \DGNAME dgname \USERID idusuario \PASSWORD contraseña \KA1 idusuario \TABOPT "directorio:\archivo.tabopt" Se puede especificar la palabra clave TABOPT en el programa de utilidad CREATEIC desde el directorio donde está instalado DB2. El valor que sigue a la palabra clave TABOPT es el nombre de archivo del archivo.tabopt con la vía de acceso completa. Si el nombre del directorio contiene espacios en blanco, encierre el nombre entre comillas. El contenido del archivo.tabopt debe contener información para añadir a la sentencia CREATE TABLE. Puede utilizar cualquiera de las siguientes sentencias de SQL para grabar en este archivo archivo.tabopt. El programa de utilidad ICM leerá este archivo y luego lo añadirá a la sentencia CREATE TABLE. Tabla 20. Sentencias de SQL IN MYTABLESPACE Crea una tabla con sus datos en MYTABLESPACE DATA CAPTURE CHANGES Crea una tabla y anota cronológicamente los cambios de SQL en un formato ampliado IN ACCOUNTING INDEX IN Crea una tabla con sus datos en ACCOUNTING y ACCOUNT_IDX su índice en ACCOUNT_IDX El tamaño máximo del archivo de contenido es 1000 caracteres de un único byte. Esta nueva capacidad está disponible sólo en sistemas Windows y UNIX. 26.1.2 Temas sobre licencia Si obtiene el mensaje siguiente: FLG0083E: No tiene una licencia válida para el programa de utilidad Inicialización del Gestor de catálogos de información de IBM. Póngase en contacto con el comerciante de software local o con un representante de marketing de IBM. Debe adquirir DB2 Warehouse Manager o IBM DB2 OLAP Server e instalar el componente Gestor de catálogos de información, que incluye el programa de utilidad Inicialización de catálogos de información. 26.1.3 Temas sobre la instalación Si ha instalado el DB2 Warehouse Manager o el IBM DB2 OLAP Server y luego ha instalado otro componente Administrador del Gestor de catálogos de información (utilizando el CD-ROM de DB2 Universal Database) en la misma estación de trabajo, puede que haya sobreescrito el programa de utilidad de Inicialización de catálogos de información. En este caso, desde el directorio \sqllib\bin, busque los archivos createic.bak y flgnmwcr.bak y renómbrelos como createic.exe y flgnmwcr.exe respectivamente. Si instala componentes del Gestor de catálogos de información desde DB2 Universal Database, los componentes deben estar en otra estación de trabajo que no sea donde ha instalado el Data Warehouse Manager. Para más información, consulte el Capítulo 3, Instalación de componentes del Gestor de catálogos de información, en el manual DB2 Warehouse Manager Installation Guide. ------------------------------------------------------------------------ 26.2 Acceso a catálogos de información de DB2 Versión 5 con el Gestor de catálogos de información de DB2 Versión 7 Los subcomponentes del Gestor de catálogos de información de DB2 Versión 7, configurados por el proceso de instalación de DB2 Versión 7, soportan el acceso a catálogos de información almacenados en bases de datos de DB2 Versión 6 y DB2 Versión 7. Puede modificar la configuración de los subcomponentes para acceder a catálogos de información almacenados en bases de datos de DB2 Versión 5. Los subcomponentes del Gestor de catálogos de información de DB2 Versión 7 no soportan el acceso a datos de DB2 Versión 2 ni de otras versiones anteriores. Para configurar el Administrador de catálogos de información, el Usuario de catálogos de información y el Programa de utilidad de inicialización de catálogos de información para acceder a catálogos de información almacenados en bases de datos de DB2 Versión 5, haga lo siguiente: 1. Instale DB2 Connect Enterprise Edition Versión 6 en una estación de trabajo distinta de aquélla en la que se ha instalado el Gestor de catálogos de información de DB2 Versión 7. DB2 Connect Enterprise Edition se incluye formando parte de DB2 Universal Database Enterprise Edition y de DB2 Universal Database Enterprise - Extended Edition. Si se ha instalado la Versión 6 de cualquiera de estos productos de DB2, no es necesario instalar DB2 Connect por separado. Restricción: no se pueden instalar varias versiones de DB2 en la misma estación de trabajo Windows NT u OS/2. Puede instalar DB2 Connect en otra estación de trabajo Windows NT o en una estación de trabajo OS/2 o UNIX. 2. Configure al Gestor de catálogos de información y DB2 Connect Versión 6 para acceder a los datos de DB2 Versión 5. Para obtener más información, consulte la publicación DB2 Connect User's Guide. Los pasos siguientes constituyen una visión general de los pasos necesarios: a. En el sistema DB2 Versión 5, utilice el Procesador de línea de mandatos de DB2 para catalogar la base de datos de Versión 5 a la que va a acceder el Gestor de catálogos de información. b. En el sistema DB2 Connect, utilice el Procesador de línea de mandatos de DB2 para catalogar: + El nodo TCP/IP para el sistema DB2 Versión 5 + La base de datos para el sistema DB2 Versión 5 + La entrada DCS para el sistema DB2 Versión 5 c. En la estación de trabajo que contiene el Gestor de catálogos de información, utilice el Procesador de línea de mandatos de DB2 para catalogar: + El nodo TCP/IP para el sistema DB2 Connect + La base de datos para el sistema DB2 Connect Para obtener información sobre cómo catalogar bases de datos, consulte la publicación DB2 Universal Database Suplemento de instalación y configuración. 3. En el depósito que contiene el Gestor de catálogos de información, vincule el paquete de la CLI de DB2 con cada una de las bases de datos a las que se vaya a acceder a través de DB2 Connect. Los mandatos siguientes de DB2 proporcionan un ejemplo de vinculación con v5database, base de datos hipotética de DB2 versión 5. Utilice el Procesador de línea de mandatos de DB2 para emitir los mandatos siguientes. db2cli.lst y db2ajgrt están ubicados en el directorio \sqllib\bnd. db2 connect to v5database user idusuario using contraseña db2 bind db2ajgrt.bnd db2 bind @db2cli.lst blocking all grant public donde idusuario es el ID de usuario para v5database y contraseña es la contraseña para el ID de usuario. Se produce un error cuando se vincula db2cli.list a la base de datos de DB2 Versión 5. Sucede este error porque en esta configuración no se soportan objetos grandes (LOB). Este error no afectará al acceso por parte del agente de depósito a la base de datos de DB2 Versión 5. Para acceder a datos de DB2 Versión 5 a través de DB2 Connect, se requiere el FixPak 14 para DB2 Universal Database Versión 5, que estará disponible en junio de 2000. Consulte el número de APAR JR14507 en dicho FixPak. ------------------------------------------------------------------------ 26.3 Configuración de un Catálogo de información El paso 2 del primer apartado del capítulo 1, "configuración de un catálogo de información", dice: Al instalar DB2 Warehouse Manager o DB2 OLAP Server, se crea un catálogo de información por omisión en DB2 Universal Database para Windows NT. Esta declaración es incorrecta. Se debe definir un nuevo catálogo de información. Para obtener más información, consulte el apartado "Creación del catálogo de información". ------------------------------------------------------------------------ 26.4 Intercambio de metadatos con otros productos En el capítulo 6, "Intercambio de metadatos con otros productos", del apartado "Identificación de objetos OLAP que se publicarán", hay una frase en el segundo párrafo que dice: Al publicar metadatos de DB2 OLAP Integration Server, se crea una relación enlazada entre un tipo de objeto "dimensiones dentro de una base de datos multidimensional" de un catálogo de información y un objeto de tabla en el OLAP Integration Server. La frase debe decir: Al publicar metadatos de DB2 OLAP Integration Server, se crea una relación enlazada entre un tipo de objeto "dimensiones dentro de una base de multidimensional y un objeto de tabla" de un catálogo de información. Esta frase aparece también en el apéndice C, "Correlaciones de metadatos", en el apartado "Correlaciones de metadatos entre el Gestor de catálogos de información y el OLAP Server. ------------------------------------------------------------------------ 26.5 Intercambio de metadatos utilizando el mandato flgnxoln En el capítulo 6, "Intercambio de metadatos", hay el apartado "Identificación de objetos OLAP que se publicarán". Al final de este apartado, se muestra un ejemplo de utilización del mandato flgnxoln para publicar metadatos del servidor OLAP en un catálogo de información. El ejemplo muestra, incorrectamente, como directorio para los archivos db2olap.ctl y db2olap.ff x:\Archivos de programa\sqllib\logging. El nombre de directorio debe ser x:\Archivos de programa\sqllib\exchange, tal como se describe en la página 87. ------------------------------------------------------------------------ 26.6 Intercambio de metadatos utilizando el mandato MDISDGC Capítulo 6. Intercambio de metadatos con otros productos: "Conversión de metadatos conformes con MDIS a un archivo de lenguaje de códigos", página 97. No se puede emitir el mandato MDISDGC desde el indicador de mandatos de MS-DOS. Debe emitir el mandato MDISDGC desde una ventana de mandatos de DB2. La primera frase de la sección, "Conversión de un archivo de lenguaje de códigos a metadatos conformes con MDIS," también dice que debe emitir el mandato DGMDISC desde el indicador de mandatos de MS-DOS. Debe emitir el mandato DGMDISC desde una ventana de mandatos de DB2. ------------------------------------------------------------------------ 26.7 Invocación de programas Algunos ejemplos de la publicación Information Catalog Administration Guide muestran mandatos que contiene el nombre de directorio Archivos de programa. Cuando invoque a un programa que contenga Archivos de programa como parte del nombre de vía de acceso, debe incluir la invocación del programa entre comillas. Por ejemplo, el apéndice B, "Tipos de objetos del gestor de catálogos de información predefinidos", contiene un ejemplo en el apartado "Inicialización del catálogo de información con los tipos de objetos predefinidos". Si utiliza el ejemplo de este apartado, obtendrá un error al ejecutarlo desde la solicitud de DOS. El ejemplo siguiente es correcto: "X:Archivos de programa\SQLLIB\SAMPLES\SAMPDATA\DGWDEMO" /T IDusuario contraseña dgname ------------------------------------------------------------------------ Information Catalog Manager Programming Guide and Reference ------------------------------------------------------------------------ 27.1 Códigos de razón del Gestor de catálogos de información En el Apéndice D: Códigos de razón del Gestor de catálogos de información, puede estar truncado por la columna de la derecha parte del texto para los códigos de razón siguientes: 31014, 32727, 32728, 32729, 32730, 32735, 32736, 32737, 33000, 37507, 37511 y 39206. Si el texto aparece truncado, vea la columna completa en la versión de HTML de esta publicación. ------------------------------------------------------------------------ Information Catalog Manager User's Guide En el capítulo 2, hay un apartado que se llama "Registro de un nodo de servidor y del catálogo de información remota." Este apartado enumera los pasos que puede realizar desde el Centro de control de DB2 antes de registrar un catálogo de información remota utilizando el gestor de catálogos de información. El último párrafo de este apartado dice que después de realizar una serie de pasos desde el Centro de control de DB2 (añadir un sistema, añadir una instancia y añadir una base de datos), debe concluir el Centro de control antes de abrir el Gestor de catálogos de información. Esta información es incorrecta. No es necesario cerrar el centro de control antes de abrir el gestor de catálogos de información. La misma corrección también es aplicable a función de la ayuda en línea "Registro de un nodo del servidor y de un catálogo de información remota" y a la ayuda en línea para Registrar nodo del servidor y Ventana del catálogo de información. ------------------------------------------------------------------------ Gestor de catálogos de información: Mensajes en línea ------------------------------------------------------------------------ 29.1 Mensaje FLG0260E En la segunda frase de la explicación de este mensaje debe decir: El error ha ocasionado una retrotracción del catálogo de información, que ha fallado. El catálogo de información no está en una condición estable, pero no se han efectuado cambios. ------------------------------------------------------------------------ 29.2 Mensaje FLG0051E En el segundo apartado de la explicación de este mensaje debe decir: El catálogo de información contiene demasiados objetos o tipos de objeto. En la respuesta del administrador debe decir: Suprima algunos objetos o tipos de objeto del catálogo de información actual utilizando la función de importación. ------------------------------------------------------------------------ 29.3 Mensaje FLG0003E En la explicación de este mensaje debe decir: Para poder utilizar el catálogo de información, antes se debe registrar. Es posible que no se haya registrado correctamente el catálogo de información. ------------------------------------------------------------------------ 29.4 Mensaje FLG0372E En la primera frase de la explicación de este mensaje debe decir: Se ha ignorado el valor ATTACHMENT-IND para un objeto porque dicho objeto es un objeto de Conexión. ------------------------------------------------------------------------ 29.5 Mensaje FLG0615E La segunda frase del mensaje debe decir: El gestor de catálogos de información ha hallado un error de base de datos inesperado o no puede encontrar el archivo de vinculación en el directorio o vía de acceso actuales. ------------------------------------------------------------------------ Gestor de catálogos de información: Ayuda en línea Ventana Catálogo de información: La ayuda en línea para el elemento Abrir del menú Seleccionado dice, incorrectamente, "Abre el objeto seleccionado". Debe decir "Abre la ventana Definir búsqueda". ------------------------------------------------------------------------ 30.1 Gestor de catálogos de información para la Web Cuando se utiliza un catálogo de información que está ubicado en un sistema DB2 UDB para OS/390, no se dispone de búsqueda sensible a las mayúsculas/minúsculas. Esto es así tanto para una búsqueda simple como para una búsqueda avanzada. La ayuda en línea no explica que todas las búsquedas realizadas sobre un catálogo de información de DB2 UDB para OS/390 son sensible a las mayúsculas y minúsculas para una búsqueda simple. Por otra parte, todos los objetos de la categoría de agrupamiento son ampliables, aunque no sean objetos fundamentales. ------------------------------------------------------------------------ DB2 Warehouse Manager Installation Guide ------------------------------------------------------------------------ 31.1 Requisitos de software para transformadores de almacén de datos Debe estar instalado Java Developer's Kit (JDK) Versión 1.1.8 o posterior en la base de datos en la que tiene intención de utilizar los transformadores de almacén de datos. ------------------------------------------------------------------------ 31.2 Conector para SAP R/3 Cuando correlaciona columnas procedentes de campos de un objeto comercial SAP R/3 con tablas DB2, es posible que algunos nombres de columnas generados tengan más de 30 caracteres. En este caso, el nombre de columna generado sólo reflejará los 30 primeros caracteres del nombre del campo SAP. Si el nombre generado no es el que desea, puede cambiarlo utilizando el cuaderno Propiedades correspondiente a la tabla. 31.2.1 Requisitos previos a la instalación Establezca la variable de entorno RFC_INI. Por ejemplo, Set RFC_INI=c:\rfcapl.ini. Una vez establecida esta variable, debe volver a arrancar la máquina. ------------------------------------------------------------------------ 31.3 Conector para la Web Si tiene problemas para ejecutar el conector para la Web, puede que IBM Service le solicite que envíe un rastreo correspondiente al conector. Para habilitar el rastreo correspondiente al conector para la Web, establezca el agente de Warehouse Center en un nivel mayor que 0. El archivo de rastreo se denomina WSApid.log, donde pid es el ID de proceso de Windows correspondiente al agente. El archivo de rastreo se crea en el directorio \sqllib\logging. 31.3.1 Requisitos previos a la instalación Instale el entorno de ejecución de Java (JRE) o Java Virtual Machine (JVM), versión 1.2.2 o posterior y conviértalo en su valor por omisión. Para convertir una versión del JRE en su valor por omisión, añada la vía de acceso de 1.2.2 JRE a la variable PATH del sistema (por ejemplo, C:\JDKs\IBM\java12\bin;). Después de cambiar el JRE por omisión, debe volver a arrancar la máquina. Si no tiene Java instalado, puede instalarlo desde el CD de instalación de conectores de Data Warehouse. ------------------------------------------------------------------------ Query Patroller Administration Guide ------------------------------------------------------------------------ 32.1 El cliente de DB2 Query Patroller es un componente separado El cliente de DB2 Query Patroller es un componente separado que no forma parte del DB2 Administration Client. Esto significa que no se instala durante la instalación del DB2 Administration Client, tal como se indica en la publicación Query Patroller Installation Guide. En lugar de esto, el cliente de Query Patroller se debe instalar por separado. La versión y nivel del cliente Query Patroller y del servidor Query Patroller deben coincidir. ------------------------------------------------------------------------ 32.2 Migración desde la Versión 6 de DB2 Query Patroller utilizando dqpmigrate El mandato dqpmigrate debe utilizarse en el caso de que se hubiera instalado la Versión 7 de Query Patroller Server sobre la Versión 6 de Query Patroller Server. Para el FixPak 2 o posterior, no ha de ejecutar dqpmigrate manualmente ya que la instalación del FixPak ejecuta este mandato en su lugar. Si no se utiliza este mandato, los usuarios existentes definidos en la v6 no tendrían privilegios de EXECUTE sobre diversos procedimientos almacenados nuevos que se han añadido en la Versión 7. Nota: dqpmigrate.bnd se halla en el directorio sqllib/bnd y dqpmigrate.exe se halla en el directorio sqllib/bin. Para utilizar dqpmigrate manualmente para otorgar privilegios de EXECUTE, haga lo siguiente después de instalar el FixPak: 1. Vincule el archivo de paquete /sqllib/bnd/dqpmigrate.bnd con la base de datos en la que se ha instalado el servidor de Query Patroller entrando el mandato siguiente: db2 bind dqpmigrate.bnd 2. Ejecute dqpmigrate entrando lo siguiente: dqpmigrate dbalias userid passwd ------------------------------------------------------------------------ 32.3 Habilitación de la Gestión de consultas En el capítulo "Iniciación", bajo "Habilitación de la Gestión de consultas", el texto debe decir: Para establecer parámetros de configuración de base de datos, debe ser el propietario de la base de datos o tener autorización SYSADM, SYSCTRL o SYSMAINT. ------------------------------------------------------------------------ 32.4 Ubicación del espacio de tabla para tablas de control En el Capítulo 1, Visión general del sistema, bajo tablas de control de DB2 Query Patroller se debe añadir el siguiente texto al final del primer párrafo de la sección: El espacio de tabla correspondiente a las tablas de control de DB2 Query Patroller debe residir en un grupo de nodos de un solo nodo o DB2 Query Patroller no funcionará correctamente. ------------------------------------------------------------------------ 32.5 Nuevos parámetros para el mandato dqpstart En el Capítulo 2, Iniciación, bajo Inicio y detención de DB2 Query Patroller, se debe añadir el siguiente texto al final del último párrafo: Nuevos parámetros para el mandato dqpstart: Parámetro RESTART: Permite al usuario sustituir el nombre del sistema principal y/o el tipo de nodo del nodo especificado en el archivo dqpnodes.cfg. DB2 Query Patroller se iniciará en este nodo. Nota: Antes de ejecutar el mandato DQPSTART con el parámetro RESTART asegúrese de que: 1. DB2 Query Patroller ya está detenido en el sistema principal que se va a sustituir. 2. DB2 Query Patroller aún no se está ejecutando en el nuevo sistema principal. La sintaxis es la siguiente: dqpstart nodenum núm_nodo restart nombre_sistema_principal server | agent | none Parámetro ADDNODE: Permite al usuario añadir un nodo nuevo al archivo dqpnodes.cfg. DB2 Query Patroller se iniciará en este nodo después de que la entrada del nuevo nodo se añada al archivo dqpnodes.cfg. La sintaxis es la siguiente: dqpstart nodenum núm_nodo addnode nombre_sistema_principal server | agent | none Parámetro DROPNODE: Permite al usuario eliminar un nodo del archivo dqnodes.cfg. DB2 Query Patroller se detendrá en este nodo antes de que la entrada del nodo se elimine del archivo dqpnodes.cfg. La sintaxis es la siguiente: dqpstop nodenum núm_nodo dropnode ------------------------------------------------------------------------ 32.6 Nuevo parámetro para el mandato iwm_cmd Se añadido el nuevo parámetro -v al mandato iwm_cmd para permitir al usuario recuperar el estado de los trabajos que se estaban ejecutando en el nodo especificado. Sólo se pueden recuperar los trabajos de un nodo inactivo. Este mandato se debe emitir cuando hay un error en un nodo y hay algunos trabajos ejecutándose en dicho nodo o en proceso de cancelación en ese momento. Los trabajos que estaban en estado "En ejecución" se volverán a someter y volverán al estado "En cola ". Los trabajos que estaban en estado "En cancelación" se colocarán en estado "Cancelado". La sintaxis parcial es la siguiente: >>-iwm_cmd----+--------------------------------------+----------> '--u--id_usuario--+-----------------+--' '--p--contraseña--' >-----v--id_nodo_a_recuperar----------------------------------->< id_nodo_a_recuperar Especifica el nodo en el que se tienen que recuperar los trabajos. ------------------------------------------------------------------------ 32.7 Nueva variable de registro: DQP_RECOVERY_INTERVAL Hay una nueva variable de registro denominada DQP_RECOVERY_INTERVAL que sirve para definir el intervalo de tiempo en minutos en que iwm_scheduler busca archivos de recuperación. El valor por omisión es 60 minutos. ------------------------------------------------------------------------ 32.8 Inicio del Administrador de consultas En el capítulo "Utilización de QueryAdministrator para administrar DB2 Query Patroller", se proporcionan instrucciones para iniciar QueryAdministrator desde el menú Inicio de Windows. El primer paso contiene el texto siguiente: Si está utilizando Windows, puede seleccionar DB2 Query Patroller --> QueryAdministrator en el grupo de programas IBM DB2. Dicho texto debe decir: DB2 Query Patroller --> QueryAdmin. ------------------------------------------------------------------------ 32.9 Administración de usuarios En el apartado "Administración de usuarios" del capítulo "Utilización de QueryAdministrator para administrar DB2 Query Patroller", la definición del parámetro Tiempo máximo transcurrido indica que, si el valor se establece en 0 o -1, la consulta siempre se ejecutará hasta que termine. Este parámetro no se puede establecer con un valor negativo. El texto debe indicar que, si el valor se establece en 0, la consulta siempre se ejecutará hasta su finalización. El parámetro Número máximo de consultas especifica el número máximo de trabajos que DB2 Query Patroller ejecutará simultáneamente. El Número máximo consultas debe ser un número entero dentro del rango de 0 a 32767. ------------------------------------------------------------------------ 32.10 Creación de una cola de trabajos En el apartado "Administración de colas de trabajos" del capítulo "Utilización de QueryAdministrator para administrar DB2 Query Patroller", la captura de pantalla incluida en los pasos para "Crear una cola de trabajos" se debe visualizar después del segundo paso. La ventana Información sobre nuevas Colas de trabajos aparece una vez que se pulsa Nuevo en la página Administración de colas de trabajos de la herramienta QueryAdministrator. Las referencias a la página Colas de trabajos o a la pestaña Colas de trabajos deben decir, respectivamente, página Administración de colas de trabajos y pestaña Administración de colas de trabajos. ------------------------------------------------------------------------ 32.11 Utilización de la interfaz de línea de mandatos Para un usuario que tiene autorización User sobre el sistema DB2 Query Patroller para someter una consulta y que se cree una tabla de resultados, es posible que el usuario necesite autorización CREATETAB sobre la base de datos. El usuario no necesitará dicha autorización sobre la base de datos si la variable de perfil DQP_RES_TBLSPC se deja sin establecer o si la variable de perfil DQP_RES_TBLSPC se establece con el nombre del espacio de tablas por omisión. En este caso, la creación de las tablas de resultados será satisfactoria puesto que los usuarios tienen autorización para crear tablas en el espacio de tablas por omisión. ------------------------------------------------------------------------ 32.12 Notas sobre Query Enabler * Al utilizar herramientas de consulta de terceros que utilicen un cursor de conjunto de claves, no se interceptarán las consultas. Para que Query Enabler intercepte estas consultas, debe modificar el archivo db2cli.ini para que incluya: [common] DisableKeySetCursor=1 * Para clientes AIX, asegúrese de que la variable de entorno LIBPATH no esté establecida. La biblioteca libXext.a, que se suministra con el JDK, no es compatible con la biblioteca del subdirectorio /usr/lib/X11. Esto ocasionará problemas con la GUI de Query Enabler. ------------------------------------------------------------------------ 32.13 DB2 Query Patroller Tracker puede devolver una página de columnas en blanco El FixPak 3 incluye un arreglo para DB2 Query Patroller Tracker. El Tracker ahora informará correctamente acerca de las consultas que no coinciden con ninguna columna. Un ejemplo de este tipo de consulta es "SELECT COUNT(*) FROM ...". Puesto que esta clase de consulta no coincide con ninguna columna de la tabla, el Tracker presentará una página en blanco para la página de columnas. Esta página de columnas en blanco no es ningún defecto. ------------------------------------------------------------------------ 32.14 Query Patroller y Herramientas de duplicación Query Patroller Versión 7 interceptará las consultas de las herramientas de duplicación (asnapply, asnccp, djra y analyze) y hará que estas herramientas no funcionen correctamente. Para solucionarlo hay que inhabilitar la gestión de consultas dinámicas cuando se ejecutan estas herramientas. ------------------------------------------------------------------------ 32.15 Apéndice B. Resolución de problemas de clientes de DB2 Query Patroller En el Apéndice B, Resolución de problemas de clientes de DB2 Query Patroller, la sección: Problemas comunes de Query Enabler, problema nº 2, el texto del primer punto se sustituye por: Asegúrese de que el valor de la vía de acceso incluya jre. ------------------------------------------------------------------------ Desarrollo de aplicaciones Tabla de contenido parcial * Administrative API Reference o 33.1 db2ArchiveLog (nueva API) + db2ArchiveLog o 33.2 db2ConvMonStream o 33.3 db2DatabasePing (nueva API) + db2DatabasePing - Base de datos Ping o 33.4 db2HistData o 33.5 db2HistoryOpenScan o 33.6 db2XaGetInfo (nueva API) + db2XaGetInfo - Obtener información para el gestor de recursos o 33.7 db2XaListIndTrans (nueva API que reemplaza a sqlxphqr) + db2XaListIndTrans - Listar transacciones dudosas o 33.8 db2GetSnapshot - Obtener instantánea o 33.9 Forget Log Record o 33.10 sqlaintp - Obtener mensaje de error o 33.11 sqlbctcq - Cerrar consulta de contenedor de espacio de tabla o 33.12 sqlubkp - Copia de seguridad de la base de datos o 33.13 sqlureot - Reorganizar tabla o 33.14 sqlurestore - Restaurar base de datos o 33.15 Error de documentación sobre el soporte de memoria compartida ampliada AIX (EXTSHM) o 33.16 SQLFUPD + 33.16.1 locklist o 33.17 SQLEDBDESC o 33.18 Error de documentación de SQLFUPD * Application Building Guide o 34.1 Capítulo 1. Introducción + 34.1.1 Software soportado + 34.1.2 Programas de ejemplo o 34.2 Capítulo 3. Información general para crear aplicaciones de DB2 + 34.2.1 Archivos de creación, makefiles y programas de utilidad de comprobación de errores o 34.3 Capítulo 4. Creación de aplicaciones y applets de Java + 34.3.1 Establecimiento del entorno + 34.3.1.1 Requisito de nivel de JDK en OS/2 + 34.3.1.2 Java2 en HP-UX o 34.4 Capítulo 5. Creación de procedimientos de SQL + 34.4.1 Establecimiento del entorno de procedimientos de SQL + 34.4.2 Establecimiento de las variables de entorno del compilador + 34.4.3 Personalización del mandato de compilación + 34.4.4 Conservación de archivos intermedios + 34.4.5 Copia de seguridad y restauración + 34.4.6 Creación de procedimientos de SQL + 34.4.7 Llamada de procedimientos almacenados + 34.4.8 Distribución de procedimientos de SQL compilados o 34.5 Capítulo 7. Creación de aplicaciones HP-UX. + 34.5.1 HP-UX C + 34.5.2 HP-UX C++ o 34.6 Capítulo 9. Creación de aplicaciones OS/2 + 34.6.1 VisualAge C++ para OS/2 Versión 4.0 o 34.7 Capítulo 10. Creación de aplicaciones PTX + 34.7.1 ptx/C++ o 34.8 Capítulo 12. Creación de aplicaciones Solaris + 34.8.1 SPARCompiler C++ o 34.9 Capítulo 13. Creación de aplicaciones para sistemas operativos Windows de 32 bits + 34.9.1 VisualAge C++ Versioó 4.0 * Application Development Guide o 35.1 Capítulo 2. Codificación de una aplicación de DB2 + 35.1.1 Activación IBM DB2 Universal Database Project y Tool Add-ins para Microsoft Visual C++ o 35.2 Capítulo 6. Técnicas comunes de aplicación de DB2 + 35.2.1 Generación de valores secuenciales + 35.2.1.1 Control del comportamiento de secuencias + 35.2.1.2 Mejora del rendimiento con objetos de secuencia + 35.2.1.3 Comparación de objetos de secuencia y columnas de identidad o 35.3 Capítulo 7. Procedimientos almacenados + 35.3.1 El Tipo DECIMAL no se soporta en rutinas Java de Linux + 35.3.2 Utilización de cursores en procedimientos almacenados repetitivos + 35.3.3 Escritura de procedimientos almacenados de automatización OLE o 35.4 Capítulo 12. Trabajar con objetos completos: Tipos estructurados definidos por el usuario + 35.4.1 Inserción de atributos de tipo estructurado en columnas o 35.5 Capítulo 13. Utilización de objetos grandes (LOB) + 35.5.1 Soporte de objetos grandes (LOB) en sistemas de bases de datos federados + 35.5.1.1 Cómo DB2 recupera los LOB + 35.5.1.2 Cómo pueden las aplicaciones utilizar localizadores de LOB + 35.5.1.3 Restricciones de los LOB + 35.5.1.4 Correlaciones entre tipos de datos LOB y no LOB + 35.5.2 Ajuste del sistema o 35.6 Parte 5. Consideraciones sobre programación de DB2 + 35.6.1 IBM DB2 OLE DB Provider o 35.7 Capítulo 20. Programación en C y C++ + 35.7.1 Tipos de C/C++ para procedimientos almacenados, funciones y métodos o 35.8 Capítulo 21. Programación en Java + 35.8.1 Signatura del método Java en procedimientos y funciones PARAMETER STYLE JAVA + 35.8.2 Conexión al servidor de applet de JDBC o 35.9 Apéndice B. Programas de ejemplo * CLI Guide and Reference o 36.1 Vinculación de programas de utilidad para bases de datos utilizando el Cliente de tiempo de ejecución o 36.2 Utilización de SQL estático en aplicaciones de la CLI o 36.3 Limitaciones de perfil estático JDBC/ODBC/CLI o 36.4 Transformaciones de ADT o 36.5 Capítulo 3. Utilización de características avanzadas + 36.5.1 Cómo escribir aplicaciones de varias hebras + 36.5.2 Cursores desplazables + 36.5.2.1 Soporte de cursor desplazable para OS/390 en el extremo del servidor + 36.5.3 Utilización de SQL compuesto + 36.5.4 Utilización de procedimientos almacenados + 36.5.4.1 Escritura de un procedimiento almacenado en CLI + 36.5.4.2 Procedimientos almacenados de CLI y vinculación automática o 36.6 Capítulo 4. Configuración de CLI/ODBC y ejecución de aplicaciones de ejemplo + 36.6.1 Palabras clave de configuración o 36.7 Capítulo 5. Funciones de CLI de DB2 + 36.7.1 SQLBindFileToParam - Vincular referencia de archivo LOB a parámetro de LOB + 36.7.2 SQLNextResult - Asociar el conjunto de resultados siguiente con otro descriptor de contexto de sentencias + 36.7.2.1 Objetivo + 36.7.2.2 Sintaxis + 36.7.2.3 Argumentos de función + 36.7.2.4 Utilización + 36.7.2.5 Códigos de retorno + 36.7.2.6 Diagnósticos + 36.7.2.7 Restricciones + 36.7.2.8 Referencias o 36.8 Apéndice D. Funciones escalares ampliadas + 36.8.1 Funciones de fecha y hora o 36.9 Apéndice K. Utilización del recurso de rastreo CLI/ODBC/JDBC de DB2 * Consulta de mensajes o 37.1 Obtención de ayuda de mensajes y SQLSTATE o 37.2 Cambio de recorrelación de SQLCODE en DB2 Connect o 37.3 Mensajes nuevos y modificados + 37.3.1 Mensajes de la Interfaz de nivel de llamadas (CLI) + 37.3.2 Mensajes de DB2 + 37.3.3 Mensajes de DBI + 37.3.4 Mensajes del Centro de depósito de datos (DWC) + 37.3.5 Mensajes de SQL o 37.4 SQLSTATES corregidos * Consulta de SQL o 38.1 La Consulta de SQL se proporciona en un archivo PDF o 38.2 Capítulo 3. Elementos de lenguaje + 38.2.1 Convenios de denominación y calificaciones implícitas de nombres de objetos + 38.2.2 Asignaciones de DATALINK + 38.2.3 Expresiones + 38.2.3.1 Diagrama de sintaxis + 38.2.3.2 Funciones de OLAP + 38.2.3.3 Referencia a secuencia o 38.3 Capítulo 4. Funciones + 38.3.1 Cómo habilitar las nuevas funciones y procedimientos + 38.3.2 Funciones escalares + 38.3.2.1 ABS o ABSVAL + 38.3.2.2 DECRYPT_BIN y DECRYPT_CHAR + 38.3.2.3 ENCRYPT + 38.3.2.4 GETHINT + 38.3.2.5 IDENTITY_VAL_LOCAL + 38.3.2.6 LCASE y UCASE (Unicode) + 38.3.2.7 MQPUBLISH + 38.3.2.8 MQREAD + 38.3.2.9 MQRECEIVE + 38.3.2.10 MQSEND + 38.3.2.11 MQSUBSCRIBE + 38.3.2.12 MQUNSUBSCRIBE + 38.3.2.13 MULTIPLY_ALT + 38.3.2.14 REC2XML + 38.3.2.15 ROUND + 38.3.2.16 WEEK_ISO + 38.3.3 Funciones de tabla + 38.3.3.1 MQREADALL + 38.3.3.2 MQRECEIVEALL + 38.3.4 Procedimientos + 38.3.4.1 GET_ROUTINE_SAR + 38.3.4.2 PUT_ROUTINE_SAR o 38.4 Capítulo 5. Consultas + 38.4.1 sentencia-select/diagrama de sintaxis + 38.4.2 sentencia-select/cláusula-fetch-first o 38.5 Capítulo 6. Sentencias de SQL + 38.5.1 Soporte para actualizar la clave de particionamiento + 38.5.1.1 Sentencia: ALTER TABLE + 38.5.1.2 Sentencia: CREATE TABLE + 38.5.1.3 Sentencia: DECLARE GLOBAL TEMPORARY TABLE PARTITIONING KEY (nombre-columna,...) + 38.5.1.4 Sentencia: UPDATE + 38.5.2 Claves de índice mayores para bases de datos Unicode + 38.5.2.1 ALTER TABLE + 38.5.2.2 CREATE INDEX + 38.5.2.3 CREATE TABLE + 38.5.3 ALTER SEQUENCE + ALTER SEQUENCE + 38.5.4 ALTER TABLE + 38.5.5 SQL compuesto (intercalado) + 38.5.6 Sentencia compuesta (dinámica) + Sentencia compuesta (dinámica) + 38.5.7 CREATE FUNCTION (fuente o plantilla) + 38.5.8 CREATE FUNCTION (función escalar, tabla o fila de SQL) + 38.5.9 CREATE METHOD + CREATE METHOD + 38.5.10 CREATE SEQUENCE + CREATE SEQUENCE + 38.5.11 CREATE TRIGGER + CREATE TRIGGER + 38.5.12 CREATE WRAPPER + 38.5.13 DECLARE CURSOR + 38.5.14 DELETE + 38.5.15 DROP + 38.5.16 GRANT (privilegios para secuencias) + GRANT (privilegios para secuencias) + 38.5.17 INSERT + 38.5.18 SELECT INTO + 38.5.19 SET ENCRYPTION PASSWORD + SET ENCRYPTION PASSWORD + 38.5.20 SET variable-transición + SET Variable + 38.5.21 UPDATE o 38.6 Capítulo 7. Procedimientos de SQL (ahora llamado "Sentencias de control de SQL") + 38.6.1 Sentencia de procedimiento SQL + Sentencia de procedimiento SQL + 38.6.2 FOR + FOR + 38.6.3 Sentencia compuesta (ahora pasa a llamarse "Sentencia compuesta (procedimiento)" + 38.6.4 RETURN + RETURN + 38.6.5 SIGNAL + SIGNAL o 38.7 Apéndice A. Límites de SQL o 38.8 Apéndice D. Vistas de catálogo + 38.8.1 SYSCAT.SEQUENCES * DB2 Stored Procedure Builder o 39.1 Soporte de Java 1.2 para DB2 Stored Procedure Builder o 39.2 Depuración remota de procedimientos almacenados de DB2 o 39.3 Creación de procedimientos de SQL en las plataformas Windows, OS/2 o UNIX o 39.4 Utilización de DB2 Stored Procedure Builder en la plataforma Solaris o 39.5 Problemas y limitaciones conocidos o 39.6 Utilización de DB2 Stored Procedure Builder con el entorno nacional de chino tradicional o 39.7 Instalaciones de UNIX (AIX, Sun Solaris, Linux) y Stored Procedure Builder o 39.8 Creación de procedimientos almacenados de SQL en OS/390 o 39.9 Depuración de procedimientos almacenados de SQL o 39.10 Exportación de procedimientos almacenados de Java o 39.11 Inserción de procedimientos almacenados en OS/390 o 39.12 Establecimiento de opciones de creación para procedimientos almacenados de SQL en un servidor de estaciones de trabajo o 39.13 Renovación automática del espacio de direcciones WLM para procedimientos almacenados creados en OS/390 o 39.14 Desarrollo de procedimientos almacenados Java en OS/390 o 39.15 Creación de una función definida por el usuario (UDF) de tablas DB2 para MQ Series y OLE DB * Actualizaciones de Unicode o 40.1 Introducción + 40.1.1 Bases de datos y aplicaciones Unicode de DB2 + 40.1.2 Actualizaciones de documentación o 40.2 Consulta de SQL + 40.2.1 Capítulo 3 Elementos de lenguaje + 40.2.1.1 Promoción de tipos de datos + 40.2.1.2 Difusión entre tipos de datos + 40.2.1.3 Asignaciones y comparaciones + 40.2.1.4 Normas para los tipos de datos de resultado + 40.2.1.5 Normas para las conversiones de serie + 40.2.1.6 Expresiones + 40.2.1.7 Predicados + 40.2.2 Capítulo 4 Funciones + 40.2.2.1 Funciones escalares o 40.3 CLI Guide and Reference + 40.3.1 Capítulo 3. Utilización de características avanzadas + 40.3.1.1 Escritura de una aplicación Unicode de DB2 CLI + 40.3.2 Apéndice C. DB2 CLI y ODBC + 40.3.2.1 Aplicaciones Unicode de ODBC o 40.4 Data Movement Utilities Guide and Reference + 40.4.1 Apéndice C. Formatos de archivo de programa de utilidad de Exportación/Importación/Carga ------------------------------------------------------------------------ Administrative API Reference ------------------------------------------------------------------------ 33.1 db2ArchiveLog (nueva API) db2ArchiveLog Cierra y trunca el archivo de anotaciones cronológicas activo para una base de datos recuperable. Si la salida de usuario está habilitada, emite una petición de archivado. Autorización Uno de los siguientes: * sysadm * sysctrl * sysmaint * dbadm Conexión necesaria Esta API establece automáticamente una conexión con la base de datos especificada. Si ya hay una conexión con la base de datos especificada, la API devolverá un error. Notas db2ApiDf.h Sintaxis de API C /* Archivo: db2ApiDf.h */ /* API: Archivar anotación cronológica activa */ SQL_API_RC SQL_API_FN db2ArchiveLog ( db2Uint32 version, void *pDB2ArchiveLogStruct, struct sqlca * pSqlca); typedef struct { char *piDatabaseAlias; char *piUserName; char *piPassword; db2Uint16 iAllNodeFlag; db2Uint16 iNumNodes; SQL_PDB_NODE_TYPE *piNodeList; db2Uint32 iOptions; } Sintaxis genérica de API /* Archivo: db2ApiDf.h */ /* API: Archivar anotación cronológica activa */ SQL_API_RC SQL_API_FN db2gArchiveLog ( db2Uint32 version, void *pDB2ArchiveLogStruct, struct sqlca * pSqlca); typedef struct { db2Uint32 iAliasLen; db2Uint32 iUserNameLen; db2Uint32 iPasswordLen; char *piDatabaseAlias; char *piUserName; char *piPassword; db2Uint16 iAllNodeFlag; db2Uint16 iNumNodes; SQL_PDB_NODE_TYPE *piNodeList; db2Uint32 iOptions; } Parámetros de API version Entrada. Especifica la versión y el nivel de release de la variable que se pasa como segundo parámetro, pDB2ArchiveLogStruct. pDB2ArchiveLogStruct Entrada. Puntero hacia la estructura db2ArchiveLogStruct. pSqlca Salida. Puntero hacia la estructura sqlca. iAliasLen Entrada. Entero no firmado de 4 bytes que representa la longitud en bytes del alias de base de datos. iUserNameLen Entero no firmado de 4 bytes que representa la longitud en bytes del nombre de usuario. Establézcalo en cero si no se utiliza nombre de usuario. iPasswordLen Entrada. Entero no firmado de 4 bytes que representa la longitud en bytes de la contraseña. Establézcalo en cero si no se utiliza contraseña. piDatabaseAlias Entrada. Serie que contiene el alias de base de datos (tal como se ha catalogado en el directorio de bases de datos del sistema) de la base de datos para la que deberá archivarse la anotación cronológica activa. piUserName Entrada. Serie que contiene el nombre de usuario que se utilizará al intentar realizar una conexión. piPassword Entrada. Serie que contiene la contraseña que se utilizará al intentar realizar una conexión. iAllNodeFlag Sólo MPP. Entrada. Distintivo que indica si la operación se debe aplicar a todos los nodos listados en el archivo db2nodes.cfg. Los valores válidos son: DB2ARCHIVELOG_NODE_LIST Aplicar a los nodos de una lista de nodos que se pasa en piNodeList. DB2ARCHIVELOG_ALL_NODES Aplicar a todos los nodos. piNodeList debe ser NULL. Este es el valor por omisión. DB2ARCHIVELOG_ALL_EXCEPT Aplicar a todos los nodos excepto aquellos de la lista de nodos que se ha pasado en piNodeList. iNumNodes Sólo MPP. Entrada. Especifica el número de nodos del conjunto piNodeList. piNodeList Sólo MPP. Entrada. Puntero hacia un conjunto de números de nodo a los que se aplicará la operación archive log. iOptions Entrada. Reservado para su utilización en el futuro. ------------------------------------------------------------------------ 33.2 db2ConvMonStream En las Notas de uso, la estructura del tipo de corriente de datos variable de instantánea SQLM_ELM_SUBSECTION debe ser sqlm_subsección. ------------------------------------------------------------------------ 33.3 db2DatabasePing (nueva API) db2DatabasePing - Base de datos Ping Comprueba el tiempo de respuesta en la red de la conectividad subyacente entre un cliente y un servidor de bases de datos. Una aplicación puede utilizar esta API cuando se accede a un servidor de bases de datos principal mediante DB2 Connect directamente o utilizando una pasarela. Autorización Ninguna Conexión necesaria Base de datos Notas db2ApiDf.h Sintaxis de API C /* Archivo: db2ApiDf.h */ /* API: Base de datos Ping */ /* ... */ SQL_API_RC SQL_API_FN db2DatabasePing ( db2Uint32 versionNumber, void *pParmStruct, struct sqlca *pSqlca); /* ... */ typedef SQL_STRUCTURE db2DatabasePingStruct { char iDbAlias[SQL_ALIAS_SZ + 1]; db2Uint16 iNumIterations; db2Uint32 *poElapsedTime; } Sintaxis genérica de API /* Archivo: db2ApiDf.h */ /* API: Base de datos Ping */ /* ... */ SQL_API_RC SQL_API_FN db2gDatabasePing ( db2Uint32 versionNumber, void *pParmStruct, struct sqlca *pSqlca); /* ... */ typedef SQL_STRUCTURE db2gDatabasePingStruct { db2Uint16 iDbAliasLength; char iDbAlias[SQL_ALIAS_SZ]; db2Uint16 iNumIterations; db2Uint32 *poElapsedTime; } Parámetros de API versionNumber Entrada. Versión y release del producto DB2 Universal Database o DB2 Connect que utiliza la aplicación. Nota: se debería utilizar la constante db2Version710 o superior para DB2 versión 7.1 o superior. iDbAliasLength Entrada. Longitud del nombre de alias de la base de datos. Nota: Este parámetro no se utiliza actualmente. Está reservado para su utilización en el futuro. iDbAlias Entrada. Nombre del alias de la base de datos. Nota: Este parámetro no se utiliza actualmente. Está reservado para su utilización en el futuro. iNumIterations Entrada. Número de iteraciones de peticiones de comprobación. El valor debe estar entre 1 y 32767, ambos inclusive. poElapsedTime Salida. Puntero hacia una matriz de enteros de 32 bits donde el número de elementos es igual a iNumIterations. Todos los elementos de la matriz contendrán el tiempo transcurrido en microsegundos para una iteración de petición de comprobación. Nota: La aplicación es responsable de la asignación de memoria para esta matriz antes de llamar a esta API. pSqlca Salida. Puntero hacia la estructura sqlca. Para obtener más información sobre esta estructura, consulte el manual Administrative API Reference. Notas sobre uso Debe existir una conexión a la base de datos antes de llamar a esta API. En caso contrario, se produce un error. También es posible llamar a esta función utilizando el mandato PING. Para obtener una descripción de este mandato, consulte el manual Consulta de mandatos. ------------------------------------------------------------------------ 33.4 db2HistData Deben añadirse las entradas siguientes a la Tabla 11. Campos de la estructura de db2HistData: Nombre de campo Tipo de datos Descripción oOperation char Ver Tabla 12. oOptype char Ver Tabla 13. Se añadirá la tabla siguiente a continuación de la Tabla 11. Tabla 12. Valores de sucesos válidos para oOperation en la estructura de db2HistData Valor Descripción Definición C Definición COBOL/FORTRAN A añadir DB2HISTORY_OP_ADD DB2HIST_OP_ADD_TABLESPACE espacio de _TABLESPACE tabla B copia de DB2HISTORY_OP_BACKUP DB2HIST_OP_BACKUP seguridad C cargar copia DB2HISTORY_OP_LOAD_COPY DB2HIST_OP_LOAD_COPY D tabla DB2HISTORY_OP_DROPPED_TABLE DB2HIST_OP_DROPPED_TABLE descartada F recuperación DB2HISTORY_OP_ROLLFWD DB2HIST_OP_ROLLFWD de avance G reorganizar DB2HISTORY_OP_REORG DB2HIST_OP_REORG tabla L cargar DB2HISTORY_OP_LOAD DB2HIST_OP_LOAD N renombrar DB2HISTORY_OP_REN DB2HIST_OP_REN espacio de _TABLESPACE _TABLESPACE tabla O descartar DB2HISTORY_OP_DROP DB2HIST_OP_DROP espacio de _TABLESPACE _TABLESPACE tabla Q inmovilizar DB2HISTORY_OP_QUIESCE DB2HIST_OP_QUIESCE R restaurar DB2HISTORY_OP_RESTORE DB2HIST_OP_RESTORE S ejecutar DB2HISTORY_OP_RUNSTATS DB2HIST_OP_RUNSTATS estadísticas T modificar DB2HISTORY_OP_ALT DB2HIST_OP_ALT_TBS espacio de _TABLESPACE tabla U descargar DB2HISTORY_OP_UNLOAD DB2HIST_OP_UNLOAD También se añadirá la tabla siguiente: Tabla 13. Valores de oOptype válidos en la estructura db2HistData: oOperationoOptype Descripción Definición C/COBOL/FORTRAN B F Fuera de línea DB2HISTORY_OPTYPE_OFFLINE N En línea DB2HISTORY_OPTYPE_ONLINE I Fuera de línea DB2HISTORY_OPTYPE_INCR_OFFLINE incremental O En línea incremental DB2HISTORY_OPTYPE_INCR_ONLINE D Fuera de línea delta DB2HISTORY_OPTYPE_DELTA_OFFLINE E En línea delta DB2HISTORY_OPTYPE_DELTA_ONLIN F E Fin de anotaciones DB2HISTORY_OPTYPE_EOL cronológicas P Punto en el tiempo DB2HISTORY_OPTYPE_PIT L I Insertar DB2HISTORY_OPTYPE_INSERT R Sustituir DB2HISTORY_OPTYPE_REPLACE Q S Inmovilización DB2HISTORY_OPTYPE_SHARE compartida U Inmovilización DB2HISTORY_OPTYPE_UPDATE actualizada X Inmovilización DB2HISTORY_OPTYPE_EXCL exclusiva Z Restablecer DB2HISTORY_OPTYPE_RESET inmovilización R F Fuera de línea DB2HISTORY_OPTYPE_OFFLINE N En línea DB2HISTORY_OPTYPE_ONLINE I Fuera de línea DB2HISTORY_OPTYPE_INCR_OFFLINE incremental O En línea incremental DB2HISTORY_OPTYPE_INCR_ONLINE T C Añadir contenedores DB2HISTORY_OPTYPE_ADD_CONT R Reequilibrio DB2HISTORY_OPTYPE_REB ------------------------------------------------------------------------ 33.5 db2HistoryOpenScan Se añadirá el valor siguiente al parámetro iCallerAction. DB2HISTORY_LIST_CRT_TABLESPACE Seleccionar sólo los registros CREATE TABLESPACE y DROP TABLESPACE que pasan por los otros filtros. ------------------------------------------------------------------------ 33.6 db2XaGetInfo (nueva API) db2XaGetInfo - Obtener información para el gestor de recursos Extrae información para un gestor de recursos determinado una vez se ha efectuado una llamada xa_open. Autorización Ninguna Conexión necesaria Base de datos Notas sqlxa.h Sintaxis de API C /* Archivo: sqlxa.h */ /* API: Obtener información para el gestor de recursos */ /* ... */ SQL_API_RC SQL_API_FN db2XaGetInfo ( db2Uint32 versionNumber, void * pParmStruct, struct sqlca * pSqlca); typedef SQL_STRUCTURE db2XaGetInfoStruct { db2int32 iRmid; struct sqlca oLastSqlca; } db2XaGetInfoStruct; Parámetros de API versionNumber Entrada. Especifica la versión y el nivel de release de la estructura que se pasa como segundo parámetro, pParmStruct. pParmStruct Entrada. Puntero hacia la estructura db2XaGetInfoStruct. pSqlca Salida. Puntero hacia la estructura sqlca. Para obtener más información sobre esta estructura, consulte el manual Administrative API Reference. iRmid Entrada. Especifica el gestor de recursos para el cual se necesita información. oLastSqlca Salida. Contiene la sqlca para la última llamada de API XA. Nota: Sólo se puede recuperar la sqlca que ha resultado de la última API XA que ha fallado. ------------------------------------------------------------------------ 33.7 db2XaListIndTrans (nueva API que reemplaza a sqlxphqr) db2XaListIndTrans - Listar transacciones dudosas Proporciona una lista de todas las transacciones dudosas para la base de datos actualmente conectada. Ámbito Esta API sólo afecta al nodo en el que se emite. Autorización Una de las siguientes: * sysadm * dbadm Conexión necesaria Base de datos Notas db2ApiDf.h Sintaxis de API C /* Archivo: db2ApiDf.h */ /* API: Listar transacciones dudosas */ /* ... */ SQL_API_RC SQL_API_FN db2XaListIndTrans ( db2Uint32 versionNumber, void * pParmStruct, struct sqlca * pSqlca); typedef SQL_STRUCTURE db2XaListIndTransStruct { db2XaRecoverStruct * piIndoubtData; db2Uint32 iIndoubtDataLen; db2Uint32 oNumIndoubtsReturned; db2Uint32 oNumIndoubtsTotal; db2Uint32 oReqBufferLen; } db2XaListIndTransStruct; typedef SQL_STRUCTURE db2XaRecoverStruct { sqluint32 timestamp; SQLXA_XID xid; char dbalias[SQLXA_DBNAME_SZ]; char applid[SQLXA_APPLID_SZ]; char sequence_no[SQLXA_SEQ_SZ]; char auth_id[SQL_USERID_SZ]; char log_full; char connected; char indoubt_status; char originator; char reserved[8]; } db2XaRecoverStruct; Parámetros de API versionNumber Entrada. Especifica la versión y el nivel de release de la estructura que se pasa como segundo parámetro, pParmStruct. pParmStruct Entrada. Puntero a la estructura db2XaListIndTransStruct. pSqlca Salida. Puntero hacia la estructura sqlca. Para obtener más información sobre esta estructura, consulte el manual Administrative API Reference. piIndoubtData Entrada. Puntero hacia el almacenamiento intermedio suministrado de la aplicación donde se devolverán datos dudosos. Los datos dudosos están en formato db2XaRecoverStruct. La aplicación puede atravesar la lista de transacciones dudosas utilizando el tamaño de la estructura db2XaRecoverStruct, empezando en la dirección proporcionada por este parámetro. Si el valor es NULL, DB2 calculará el tamaño del almacenamiento intermedio necesario y devolverá este valor en oReqBufferLen. oNumIndoubtsTotal contendrá el número total de transacciones dudosas. La aplicación puede asignar el tamaño de almacenamiento intermedio necesario y volver a emitir la API. oNumIndoubtsReturned Salida. El número de registros de transacciones dudosas que se devuelven en el almacenamiento intermedio especificado por pIndoubtData. oNumIndoubtsTotal Salida. El Número total de registros de transacciones dudosas disponibles en el momento de la invocación de API. Si el almacenamiento intermedio piIndoubtData es demasiado pequeño para contener todos los registros, oNumIndoubtsTotal será mayor que el total para oNumIndoubtsReturned. La aplicación puede volver a emitir la API a fin de obtener todos los registros. Nota: Este número puede cambiar entre invocaciones de la API como resultado de la resincronización automática o heurística de transacciones dudosas o como resultado de otras transacciones que pasan al estado de dudosas. oReqBufferLen Salida. Longitud de almacenamiento intermedio necesario para contener todos los registros de transacciones dudosas en el momento de la invocación de la API. La aplicación puede utilizar este valor para determinar el tamaño de almacenamiento intermedio necesario llamando a la API con pIndoubtData establecido en NULL. A continuación, este valor se puede utilizar para asignar el almacenamiento intermedio necesario y la API se puede emitir con pIndoubtData establecido en la dirección del almacenamiento intermedio asignado. Nota: El tamaño de almacenamiento intermedio necesario puede cambiar entre invocaciones de la API como resultado de la resincronización automática o heurística de transacciones dudosas o como resultado de otras transacciones que pasan al estado de dudosas. La aplicación puede asignar un almacenamiento intermedio más grande para ajustarse a ello. timestamp Salida. Especifica la hora en que la transacción ha pasado al estado de dudoso. xid Salida. Especifica el identificador XA asignado por el gestor de transacciones para identificar exclusivamente una transacción global. dbalias Salida. Especifica el alias de la base de datos en la que se ha encontrado la transacción dudosa. applid Salida. Especifica el identificador de aplicación asignado por el gestor de bases de datos para esta transacción. sequence_no Salida. Especifica el número de secuencia asignado por el gestor de bases de datos como una extensión de applid. auth_id Salida. Especifica el ID de autorización del usuario que ha ejecutado la transacción. log_full Salida. Indica si la transacción ha causado o no una condición de anotación cronológica completa. Los valores válidos son: SQLXA_TRUE Esta transacción dudosa ha causado una condición de anotación cronológica completa. SQLXA_FALSE Esta transacción dudosa no ha causado una condición de anotación cronológica completa. connected Salida. Indica si la aplicación está o no conectada. Los valores válidos son: SQLXA_TRUE La transacción está en un proceso de punto de sincronismo normal y está esperando la segunda fase de la confirmación en dos fases. SQLXA_FALSE La transacción quedó en estado dudoso en una anomalía anterior y ahora espera resincronización desde el gestor de bases de datos. indoubt_status Salida. Indica el estado de esta transacción dudosa. Los valores válidos son: SQLXA_TS_PREP La transacción está preparada. El parámetro conectado se puede utilizar para determinar si la transacción espera la segunda fase de un proceso de confirmación normal o si se ha producido un error y es necesario resincronizar con el gestor de transacciones. SQLXA_TS_HCOM La transacción se ha confirmado heurísticamente. SQLXA_TS_HROL La transacción se ha retrotraído heurísticamente. SQLXA_TS_MACK Falta el reconocimiento de confirmación desde un nodo de una base de datos particionada para la transacción. SQLXA_TS_END La transacción ha finalizado en esta base de datos. Esta transacción se puede reactivar, confirmar o retrotraer más adelante. También es posible que el gestor de transacciones haya encontrado un error y la transacción no se completará. Si éste es el caso, esta transacción necesita acciones heurísticas dado que puede estar reteniendo bloqueos e impedir que otras aplicaciones accedan a los datos. Notas sobre uso Una aplicación típica realizará los pasos siguientes después de establecer la conexión actual con la base de datos o con el nodo coordinador de bases de datos particionadas: 1. Llame a db2XaListIndTrans con piIndoubtData establecido en NULL. Esta acción devolverá valores en oReqBufferLen y oNumIndoubtsTotal. 2. Utilice el valor que se devuelve en oReqBufferLen para asignar un almacenamiento intermedio. Es posible que este almacenamiento intermedio no sea suficientemente grande si existen transacciones dudosas adicionales debido a la invocación inicial de esta API para obtener oReqBufferLen. La aplicación puede proporcionar un almacenamiento intermedio más grande que oReqBufferLen. 3. Determine si se han obtenido todos los registros de transacciones dudosas. Puede llevarlo a cabo comparando oNumIndoubtsReturned con oNumIndoubtTotal. Si oNumIndoubtsTotal es mayor que oNumIndoubtsReturned, la aplicación puede repetir los pasos anteriores. Consulte también "sqlxhfrg - Olvidar estado de transacción", "sqlxphcm - Confirmar una transacción dudosa" y "sqlxphrl - Retrotraer una transacción dudosa" en el manual Administrative API Reference. ------------------------------------------------------------------------ 33.8 db2GetSnapshot - Obtener instantánea La sintaxis para la API db2GetSnapshot debe ser la siguiente: int db2GetSnapshot( unsigned char version; db2GetSnapshotData *data, struct sqlca *sqlca); Los parámetros descritos en los datos son: typedef struct db2GetSnapshotData{ sqlma *piSqlmaData; sqlm_collected *poCollectedData void *poBuffer; db2uint32 iVersion; db2int32 iBufferSize; db2uint8 iStoreResult; db2uint16 iNodeNumber; db2uint32 *poOutputFormat; }db2GetSnapshotData; ------------------------------------------------------------------------ 33.9 Forget Log Record La siguiente información se añadirá al Apéndice F después de la sección de preparación de subordinado MPP. Este registro de anotación cronológica se graba después de una retrotracción de transacciones dudosas o tras una confirmación de una confirmación en dos fases. El registro de anotación cronológica se graba para marcar el final de la transacción y libera los recursos de anotación cronológica mantenidos. Para que se olvide la transacción, debe estar en estado completado heurísticamente. Tabla 21. Estructura de Forget Log Record Descripción Tipo Offset (Bytes) Log header LogManagerLogRecordHeader 0(20) time sqluint64 20(8) Longitud total: 28 bytes ------------------------------------------------------------------------ 33.10 sqlaintp - Obtener mensaje de error La nota de uso siguiente debe añadirse a la descripción de esta API: En una aplicación de múltiples hebras, sqlaintp debe conectarse a un contexto válido; de lo contrario, no se puede obtener el texto del mensaje para SQLCODE -1445. ------------------------------------------------------------------------ 33.11 sqlbctcq - Cerrar consulta de contenedor de espacio de tabla La carga no es un nivel de autorización válido para esta API. ------------------------------------------------------------------------ 33.12 sqlubkp - Copia de seguridad de la base de datos Para el parámetro BackupType, el valor SQLUB_FULL se sustituirá por SQLUB_DB. Se realizará una copia de seguridad de todos los espacios de tabla de la base de datos. Para dar soporte a la nueva funcionalidad de copia de seguridad incremental, también se añadirán los parámetros SQLUB_INCREMENTAL y SQLUB_DELTA. Una imagen de copia de seguridad incremental es una copia de todos los datos de base de datos que han cambiado desde la copia de seguridad completa más reciente que ha sido satisfactoria. Una imagen de copia de seguridad delta es una copia de todos los datos de base de datos que han cambiado desde la copia de seguridad más reciente de cualquier tipo que ha sido satisfactoria. ------------------------------------------------------------------------ 33.13 sqlureot - Reorganizar tabla Se añadirá la frase siguiente a las Notas sobre el uso: REORGANIZE TABLE no puede utilizar un índice que está basado en una extensión de índice. ------------------------------------------------------------------------ 33.14 sqlurestore - Restaurar base de datos Para el parámetro RestoreType, el valor SQLUD_FULL se sustituirá por SQLUD_DB. Se realizará una restauración de todos los espacios de tabla de la base de datos. Esto se ejecutará fuera de línea. Para dar soporte a la nueva funcionalidad de restauración incremental, también se añadirá el parámetro SQLUD_INCREMENTAL. Una imagen de copia de seguridad incremental es una copia de todos los datos de base de datos que han cambiado desde la copia de seguridad completa más reciente que ha sido satisfactoria. ------------------------------------------------------------------------ 33.15 Error de documentación sobre el soporte de memoria compartida ampliada AIX (EXTSHM) En el "Apéndice E. Aplicaciones enhebradas con acceso simultáneo", la Nota 2 debería expresar en este momento: 2. Por omisión, AIX no permite que las aplicaciones de 32 bits conecten más de 11 segmentos de memoria compartida, de los que se puede utilizar un máximo de 10 para conexiones DB2 locales. Para utilizar EXTSHM con DB2, haga lo siguiente: En sesiones cliente: export EXTSHM=ON Cuando inicie DB2: export EXTSHM=ON db2set DB2ENVLIST=EXTSHM db2start En EEE, añada también las siguientes líneas a sqllib/db2profile: EXTSHM=ON export EXTSHM ------------------------------------------------------------------------ 33.16 SQLFUPD 33.16.1 locklist El nombre del símbolo ha cambiado de SQLF_DBTN_LOCKLIST a SQLF_DBTN_LOCK_LIST. El parámetro locklist ha cambiado de SMALLINT a un INTEGER (entero) no firmado de 64 bits. Debe realizarse la suma siguiente en la tabla de Parámetros de configuración de base de datos actualizables. Nombre de Símbolo Valor del símbolo Tipo de datos parámetro locklist SQLF_DBTN_LOCK 704 Uint64 _LIST El nuevo valor máximo para este parámetro es 524 288. ------------------------------------------------------------------------ 33.17 SQLEDBDESC Se añadirán dos valores a la lista de valores válidos para SQLDBCSS (se definen en sqlenv). Son: SQL_CS_SYSTEM_NLSCHAR Orden de clasificación del sistema que utiliza la versión NLS de rutinas de comparación para tipos de caracteres. SQL_CS_USER_NLSCHAR Orden de clasificación del usuario que utiliza la versión NLS de rutinas de comparación para tipos de caracteres. ------------------------------------------------------------------------ 33.18 Error de documentación de SQLFUPD En el "Capítulo 3. Estructuras de datos", Tabla 53. Parámetros de configuración de la base de datos actualizable lista incorrectamente el valor de señal para dbheap como 701. El valor correcto es 58. ------------------------------------------------------------------------ Application Building Guide ------------------------------------------------------------------------ 34.1 Capítulo 1. Introducción 34.1.1 Software soportado Nota: PHP. Ahora se puede utilizar PHP como método de acceso a DB2 desde aplicaciones basadas en la web. PHP es un lenguaje de script del lado del cliente, incorporado a HTML y que se puede utilizar en varias plataformas. Da soporte al acceso a DB2 utilizando el método de acceso ODBC unificado, en el que el PHP de nivel de usuario se comunica con DB2 mediante llamadas ODBC. A diferencia de ODBC estándar, con el método ODBC unificado la comunicación se realiza directamente a la capa CLI de DB2, no a través de la capa ODBC. Para obtener más información sobre cómo utilizar PHP con DB2, busque el sitio de soporte de DB2 en www.ibm.com/software/data/db2/udb/winos2unix/support. AIX Las versiones listadas para el compilador C y C++ deben ser las siguientes: Compiladores IBM C y C++ para AIX versión 3.6.6 (versión 3.6.6.3 para 64 bits) IBM C para AIX 4.4 IBM VisualAge C++ versión 4.0 Nota: Baje los FixPaks más recientes que haya disponibles para estas versiones del compilador desde http://www.ibm.com/software/ad/vacpp/service/csd.html Las versiones listadas para el compilador Micro Focus COBOL deben ser las siguientes: AIX 4.2.1 Micro Focus COBOL Versión 4.0.20 (PRN 12.03 o posterior) Micro Focus COBOL Versión 4.1.10 (PRN 13.04 o posterior) AIX 4.3 Micro Focus COBOL Server Express Versión 1.0 Nota: Para obtener información sobre el soporte de DB2 para procedimientos y UDF almacenados de Micro Focus COBOL en AIX 4.3, consulte la página Web de DB2 Application Development: http://www.ibm.com/software/data/db2/udb/ad Para crear aplicaciones de 64 bits con el compilador IBM XL Fortran para AIX Versión 5.1.0, utilice la opción "-q64" en los pasos de compilación y enlace. Observe que en las versiones anteriores de este compilador no se da soporte a aplicaciones de 64 bits. HP-UX La versión listada para el compilador C++ debe ser la siguiente: HP aC++, Versión A.03.25 Nota: HP no soporta la compatibilidad binaria entre objetos compilados con compiladores nuevos y antiguos, por lo que se forzará una nueva compilación de las aplicaciones C++ creadas para acceder a DB2 en HP-UX. También se deben crear aplicaciones C++ para manejar las excepciones con este nuevo compilador. Este es el URL para la guía de transición aCC: http://www.hp.com/esy/lang/cpp/tguide. La porción de incompatibilidad con C++ se encuentra aquí: http://www.hp.com/esy/lang/cpp/tguide/transcontent.html#RN.CVT.1.2 http://www.hp.com/esy/lang/cpp/tguide/transcontent.html#RN.CVT.3.3 La porción de C frente a C++ está aquí: http://www.hp.com/esy/lang/cpp/tguide/transcontent.html#RN.CVT.3.3.1 Aunque C y aCC son compatibles, si se utilizan los dos distintos tipos de objeto, el objeto que contiene "main" se debe compilar con aCC y el ejecutable final se debe enlazar con aCC. Linux DB2 para Linux da soporte a la siguiente versión de REXX: Object REXX Interpreter para Linux Versión 2.1 Linux/390 DB2 para Linux/390 sólo da soporte a Java, C y C++. OS/2 Las versiones listadas para el compilador C/C++ deben ser las siguientes: IBM VisualAge C++ para OS/2 Versión 3.6.5 y Versión 4.0 Nota: Baje los FixPaks más recientes que haya disponibles para estas versiones del compilador desde http://www.ibm.com/software/ad/vacpp/service/csd.html Para ver las limitaciones del futuro soporte de servicio para estos compiladores C++ de VisualAge, consulte la sección de noticias en: http://www-4.ibm.com/software/ad/vacpp/ Solaris Las versiones listadas para el compilador Micro Focus COBOL deben ser: Micro Focus COBOL Server Express Versión 1.0 Sistemas operativos Windows de 32 bits Las versiones listadas para el compilador IBM VisualAge C++ deben ser las siguientes: IBM VisualAge C++ para Windows Versiones 3.6.5 y 4.0 Nota: Baje los FixPaks más recientes que haya disponibles para estas versiones del compilador desde http://www.ibm.com/software/ad/vacpp/service/csd.html Para ver las limitaciones del futuro soporte de servicio para estos compiladores C++ de VisualAge, consulte la sección de noticias en: http://www-4.ibm.com/software/ad/vacpp/ Las versiones listadas para el compilador Micro Focus COBOL deben ser las siguientes: Micro Focus COBOL Versión 4.0.20 Micro Focus COBOL Net Express Versión 3.0 34.1.2 Programas de ejemplo Debe añadirse lo siguiente a la sección "Ejemplos de enlace e intercalación de objetos": salarycltvc Ejemplo de CLI de Visual C++ DB2 que llama al procedimiento almacenado de Visual Basic, salarysrv. SALSVADO Un procedimiento almacenado de automatización de OLE (SALSVADO) y un cliente SALCLADO (SALCLADO), implementado en Visual Basic y ADO de 32 bits, que calcula el salario medio en la tabla staff2. Debe añadirse lo siguiente al apartado "Ejemplos de salida de usuario de gestión de anotaciones cronológicas": Las aplicaciones en AIX que utilizan el Cliente de API ADSM en el nivel 3.1.6 y superior deben crearse con las invocaciones de compilador xlc_r o xlC_r, no con xlc ni xlC, incluso si las aplicaciones son de una única hebra. Esto asegura que las bibliotecas tengan seguridad en los pasos. Esto se aplica al Ejemplo de salida de usuario de gestión de anotaciones cronológicas, db2uext2.cadsm. Si tiene una aplicación compilada con una biblioteca sin seguridad en las hebras puede aplicar esta prueba de arreglo IC21925E o ponerse en contacto con el proveedor de la aplicación. La prueba de arreglo está disponible en el servidor ftp anónimo index.storsys.ibm.com. Esto devuelve el nivel de API ADSM a 3.1.3. ------------------------------------------------------------------------ 34.2 Capítulo 3. Información general para crear aplicaciones de DB2 34.2.1 Archivos de creación, makefiles y programas de utilidad de comprobación de errores La entrada para bldevm en la tabla 16 debe ser: bldevm Programa de ejemplo de supervisor de sucesos, evm (sólo está disponible en sistemas operativos AIX, OS/2 y Windows de 32 bits). La Tabla 17 debe incluir las entradas siguientes: bldmevm Programa de ejemplo de supervisor de sucesos, evm, con el compilador Microsoft Visual C++. bldvevm Programa de ejemplo de supervisor de sucesos, evm, con el compilador VisualAge C++. ------------------------------------------------------------------------ 34.3 Capítulo 4. Creación de aplicaciones y applets de Java 34.3.1 Establecimiento del entorno Si está utilizando IBM JDK 1.1.8 en plataformas soportadas para crear programas SQLJ, se requiere una fecha de creación del JDK igual o posterior al 24 de noviembre de 1999. De lo contrario, se pueden producir errores de pánico JNI durante la compilación. Si está utilizando IBM JDK 1.2.2 en plataformas soportadas para crear programas SQLJ, se requiere una fecha de creación del JDK igual o posterior al 17 de abril de 2000. De lo contrario, se pueden producir errores de Tipo de Java no válido durante la compilación. Para las subsecciones correspondientes a AIX, HP-UX, Linux y Solaris, sustituya la información sobre JDBC 2.0 por la siguiente: Utilización del controlador JDBC 2.0 con aplicaciones de Java El controlador JDBC 1.22 todavía es el controlador por omisión en todos los sistemas operativos. Para sacar partido de las nuevas características de JDBC 2.0, debe instalar el soporte JDK 1.2. Antes de ejecutar una aplicación que aproveche las nuevas características de JDBC 2.0, debe establecer el entorno emitiendo el mandato usejdbc2 desde el directorio sqllib/java12. Si desea que las aplicaciones utilicen siempre el controlador JDBC 2.0, considere la adición de la línea siguiente en el perfil de inicio de sesión, como por ejemplo .profile o en el script de inicialización del shell, como por ejemplo .bashrc, .cshrc o .kshrc: . sqllib/java12/usejdbc2 Asegúrese de que este mandato esté situado después del mandato para ejecutar db2profile, dado que usejdbc2 debe ejecutarse después de db2profile. Para conmutar al controlador JDBC 1.22, ejecute el mandato siguiente desde el directorio sqllib/java12: . usejdbc1 Utilización del controlador JDBC 2.0 con UDF y procedimientos almacenados de Java Para utilizar el controlador JDBC 2.0 con UDF y procedimientos almacenados de Java, debe establecer el entorno para el ID de usuario protegido para su instancia. El ID de usuario protegido por omisión es db2fenc1. Para establecer el entorno para el ID de usuario protegido, realice los pasos siguientes: 1. Añada la línea siguiente al perfil de ID de usuario protegido, como por ejemplo .profile, o al script de inicialización del shell de ID de usuario protegido, como por ejemplo .bashrc, .cshrc o .kshrc: . sqllib/java12/usejdbc2 2. Emita el mandato siguiente desde el CLP: db2set DB2_USE_JDK12=1 Para conmutar de nuevo al soporte de controlador JDBC 1.22 para UDF y procedimientos almacenados de Java, realice los pasos siguientes: 1. Elimine la línea siguiente del perfil de ID de usuario protegido, como por ejemplo .profile, o del script de inicialización de shell de ID de usuario protegido, como por ejemplo .bashrc, .cshrc o .kshrc: . sqllib/java12/usejdbc2 2. Emita el mandato siguiente desde el CLP: db2set DB2_USE_JDK12= Si desea que las aplicaciones utilicen siempre el controlador JDBC 2.0, puede añadir la línea siguiente al perfil de inicio de sesión, como por ejemplo .profile, o al script de inicialización de shell, como por ejemplo .bashrc, .cshrc o .kshrc: . sqllib/java12/usejdbc2 Asegúrese de que este mandato esté situado después del mandato para ejecutar db2profile, dado que usejdbc2 debe ejecutarse después de db2profile. HP-UX En DB2 no se da soporte a los procedimientos almacenados de Java ni a las funciones definidas por el usuario para HP-UX con JDK 1.1. IRIX de Silicon Graphics Cuando se crean aplicaciones SQLJ con el tipo de objeto -o32, utilizando el compilador JIT de Java con JDK 1.2.2, si el conversor de SQLJ falla con un error de segmentación, intente desactivar el compilador JIT mediante el mandato siguiente: export JAVA_COMPILER=NONE Se requiere JDK 1.2.2 para crear programas SQLJ de Java en IRIX de Silicon Graphics. Sistemas operativos Windows de 32 bits Utilización del controlador JDBC 2.0 con UDF y procedimientos almacenados de Java Para utilizar el controlador JDBC 2.0 con procedimientos almacenados y UDF de Java, debe establecer el entorno realizando los pasos siguientes: 1. Emita el mandato siguiente en el directorio sqllib\java12: usejdbc2 2. Emita el mandato siguiente desde el CLP: db2set DB2_USE_JDK12=1 Para conmutar de nuevo al soporte de controlador JDBC 1.22 para UDF y procedimientos almacenados de Java, realice los pasos siguientes: 1. Emita el mandato siguiente en el directorio sqllib\java12: usejdbc2 2. Emita el mandato siguiente desde el CLP: db2set DB2_USE_JDK12= 34.3.1.1 Requisito de nivel de JDK en OS/2 Algunos mensajes no se visualizarán en OS/2 si se ejecutan versiones del JDK 1.1.8 con releases anteriores al 09/99. Asegúrese de tener el JDK Versión 1.1.8 más reciente. 34.3.1.2 Java2 en HP-UX Para ejecutar procedimientos almacenados Java2, la vía de acceso a la biblioteca compartida se tiene que modificar para que sea parecida a la siguiente: export SHLIB_PATH=$JAVADIR/jre/lib/PA_RISC:$JAVADIR/ jre/lib/PA_RISC/classic:$HOME/sqllib/lib:/usr/lib:$SHLIB_PATH $JAVADIR es la ubicación de Java2 SDK. ------------------------------------------------------------------------ 34.4 Capítulo 5. Creación de procedimientos de SQL 34.4.1 Establecimiento del entorno de procedimientos de SQL Estas instrucciones se añaden a las instrucciones para configurar el entorno de DB2 en "Configuración". Para el soporte de procedimientos de SQL, debe instalar en el servidor el Application Development Client. Para obtener información sobre cómo instalar el Application Development Client, consulte el manual Guía rápida de iniciación de su plataforma. Para ver qué compiladores C y C++ soporta DB2 en su plataforma, consulte "Supported Software by Platform". Nota: En un sistema de archivos FAT de OS/2, el nombre de esquema para los procedimientos de SQL está limitado a ocho caracteres o menos. Deberá utilizar el sistema de archivos HPFS para nombres de esquema con una longitud superior a ocho caracteres. La configuración del compilador tiene dos partes: establecer las variables de entorno para el compilador y definir el mandato de compilación. Las variables de entorno proporcionan las vías de acceso a los binarios del compilador, las bibliotecas y los archivos de inclusión. El mandato de compilación es el mandato completo que DB2 utilizará para compilar los archivos C generados para los procedimientos de SQL. 34.4.2 Establecimiento de las variables de entorno del compilador Existen distintas normas para la configuración del entorno en sistemas operativos basados en OS/2, Windows y UNIX, tal como se explica a continuación. En algunos casos, no es necesaria ninguna configuración; en otros casos, es necesario establecer la variable de registro DB2_SQLROUTINE_COMPILER_PATH DB2 para que apunte a un script ejecutable que establece las variables de entorno correctamente. Nota: puede utilizar el mandato db2set o el diálogo Opciones de creación de procedimientos almacenados de SQL del Stored Procedure Builder para establecer el valor de esta variable de registro de DB2. La utilización del diálogo Opciones de creación de procedimientos almacenados de SQL elimina la necesidad de acceder físicamente al servidor de bases de datos o de reiniciar el servidor de bases de datos para que los cambios surtan efecto. En OS/2: para IBM VisualAge C++ para OS/2 Versión 3.6: db2set DB2_SQLROUTINE_COMPILER_PATH="c:\ibmcxxo\bin\setenv.cmd" para IBM VisualAge C++ para OS/2 Versión 4: db2set DB2_SQLROUTINE_COMPILER_PATH="c:\ibmcpp40\bin\setenv.cmd" Nota: Para estos mandatos, se asume que el compilador C++ está instalado en la unidad c:. Si es necesario, cambie la unidad o la vía de acceso, para que refleje la ubicación del compilador C++ en el sistema. En sistemas operativos Windows de 32 bits, si las variables de entorno para el compilador están establecidas como variables SYSTEM, no se precisa ninguna configuración. En caso contrario, establezca la variable de registro DB2_SQLROUTINE_COMPILER_PATH DB2 de la forma siguiente: para Microsoft Visual C++ Versiones 5.0: db2set DB2_SQLROUTINE_COMPILER_PATH="c:\devstudio\vc\bin\vcvars32.bat" para Microsoft Visual C++ Versiones 6.0: db2set DB2_SQLROUTINE_COMPILER_PATH="c:\Micros~1\vc98\bin\vcvars32.bat" para IBM VisualAge C++ para Windows Versión 3.6: db2set DB2_SQLROUTINE_COMPILER_PATH="c:\ibmcxxw\bin\setenv.bat" para IBM VisualAge C++ para Windows Versión 4: db2set DB2_SQLROUTINE_COMPILER_PATH="c:\ibmcppw40\bin\setenv.bat" Nota: Para estos mandatos, se asume que el compilador C++ está instalado en la unidad c:. Si es necesario, cambie la unidad o la vía de acceso, para que refleje la ubicación del compilador C++ en el sistema. En los sistemas operativos basados en UNIX, DB2 generará el archivo script ejecutable $HOME/sqllib/function/routine/sr_cpath (que contiene los valores por omisión para las variables del entorno del compilador) la primera vez que compile un procedimiento almacenado. Es posible editar este archivo si los valores por omisión no son los correctos para el compilador. También puede establecer la variable de registro de DB2 DB2_SQLROUTINE_COMPILER_PATH DB2 para que contenga el nombre completo de la vía de acceso de otro script ejecutable que especifique los valores que desee (vea los ejemplos a continuación). 34.4.3 Personalización del mandato de compilación La instalación de Application Development Client proporciona un mandato de compilación por omisión que funciona con por lo menos uno de los compiladores a los que cada plataforma da soporte: AIX: IBM C Set++ para AIX Versión 3.6.6 Solaris: SPARCompiler C++ Versiones 4.2 y 5.0 HP-UX: HP-UX C++ Versión A.12.00 Linux: GNU/Linux g++ Versión egcs-2.90.27 980315 (egcs-1.0.2 release) PTX: ptx/C++ Versión 5.2 OS/2: IBM VisualAge C++ para OS/2 Versión 3 Windows NT y Windows 2000: Microsoft Visual C++ Versiones 5.0 y 6.0 Para utilizar otros compiladores o para personalizar el mandato por omisión, establezca la variable de registro de DB2 DB2_SQLROUTINE_COMPILE_COMMAND con un mandato como: db2set DB2_SQLROUTINE_COMPILE_COMMAND=mandato_compilación donde mandato_compilación es el mandato de compilación C o C++, incluyendo las opciones y los parámetros necesarios para crear procedimientos almacenados. En el mandato de compilación, utilice la palabra clave SQLROUTINE_FILENAME para sustituir el nombre de archivo de los archivos SQC, C, PDB, DEF, EXP, registro de mensajes y de biblioteca compartida generados. Sólo para AIX, utilice la palabra clave SQLROUTINE_ENTRY para sustituir el nombre del punto de entrada. Nota: puede utilizar el mandato db2set o el diálogo Opciones de creación de procedimientos almacenados de SQL del Stored Procedure Builder para establecer el valor de esta variable de registro de DB2. La utilización del diálogo Opciones de creación de procedimientos almacenados de SQL elimina la necesidad de acceder físicamente al servidor de bases de datos o de reiniciar el servidor de bases de datos para que los cambios surtan efecto. A continuación se indican los valores por omisión para DB2_SQLROUTINE_COMPILE_COMMAND para compiladores C o C++ en plataformas de servidor soportadas. AIX Para utilizar IBM C para AIX Versión 3.6.6: db2set DB2_SQLROUTINE_COMPILE_COMMAND=xlc -H512 -T512 \ -I$HOME/sqllib/include SQLROUTINE_FILENAME.c -bE:SQLROUTINE_FILENAME.exp \ -e SQLROUTINE_ENTRY -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -lc -ldb2 Para utilizar IBM C Set++ para AIX Versión 3.6.6: db2set DB2_SQLROUTINE_COMPILE_COMMAND=xlC -H512 -T512 \ -I$HOME/sqllib/include SQLROUTINE_FILENAME.c -bE:SQLROUTINE_FILENAME.exp \ -e SQLROUTINE_ENTRY -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -lc -ldb2 Éste es el mandato de compilación por omisión si no se establece la variable de registro DB2_SQLROUTINE_COMPILE_COMMAND de DB2. Nota: Para compilar procedimientos de SQL de 64 bits en AIX, añada la opción -q64 a los mandatos anteriores. Para utilizar IBM VisualAge C++ para AIX Versión 4: db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld" Si no se especifica el archivo de configuración detrás del mandato vacbld, DB2 creará el archivo de configuración por omisión siguiente en el primer intento de crear cualquier procedimiento de SQL: $HOME/sqllib/function/routine/sqlproc.icc Si desea utilizar su propio archivo de configuración, puede especificarlo al establecer el valor de registro de DB2 para DB2_SQLROUTINE_COMPILE_COMMAND: db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld %DB2PATH%/function/sqlproc.icc" HP-UX Para utilizar HP C Compiler Versión A.11.00.03: db2set DB2_SQLROUTINE_COMPILE_COMMAND=cc +DAportable +ul -Aa +z \ -I$HOME/sqllib/include -c SQLROUTINE_FILENAME.c; \ ld -b -o SQLROUTINE_FILENAME SQLROUTINE_FILENAME.o \ -L$HOME/sqllib/lib -ldb2 Para utilizar HP-UX C++ Versión A.12.00: db2set DB2_SQLROUTINE_COMPILE_COMMAND=CC +DAportable +a1 +z -ext \ -I$HOME/sqllib/include -c SQLROUTINE_FILENAME.c; \ ld -b -o SQLROUTINE_FILENAME SQLROUTINE_FILENAME.o \ -L$HOME/sqllib/lib -ldb2 Éste es el mandato de compilación por omisión si no se establece la variable de registro DB2_SQLROUTINE_COMPILE_COMMAND de DB2. Linux Para utilizar GNU/Linux gcc Versión 2.7.2.3: db2set DB2_SQLROUTINE_COMPILE_COMMAND=cc \ -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \ -shared -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -ldb2 Para utilizar GNU/Linux g++ Versión egcs-2.90.27 980315 (release egcs-1.0.2): db2set DB2_SQLROUTINE_COMPILE_COMMAND=g++ \ -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \ -shared -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -ldb2 Éste es el mandato de compilación por omisión si no se establece la variable de registro DB2_SQLROUTINE_COMPILE_COMMAND de DB2. PTX Para utilizar ptx/C Versión 4.5: db2set DB2_SQLROUTINE_COMPILE_COMMAND=cc -KPIC \ -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \ -G -o SQLROUTINE_FILENAME.so -L$HOME/sqllib/lib -ldb2 ; \ cp SQLROUTINE_FILENAME.so SQLROUTINE_FILENAME Para utilizar ptx/C++ Versión 5.2: db2set DB2_SQLROUTINE_COMPILE_COMMAND=c++ -KPIC \ -D_RWSTD_COMPILE_INSTANTIATE=0 -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \ -G -o SQLROUTINE_FILENAME.so -L$HOME/sqllib/lib -ldb2 ; \ cp SQLROUTINE_FILENAME.so SQLROUTINE_FILENAME Éste es el mandato de compilación por omisión si no se establece la variable de registro DB2_SQLROUTINE_COMPILE_COMMAND de DB2. OS/2 Para utilizar IBM VisualAge C++ para OS/2 Versión 3: db2set DB2_SQLROUTINE_COMPILE_COMMAND="icc -Ge- -Gm+ -W2 -I%DB2PATH%\include SQLROUTINE_FILENAME.c /B\"/NOFREE /NOI /ST:64000\" SQLROUTINE_FILENAME.def %DB2PATH%\lib\db2api.lib" Éste es el mandato de compilación por omisión si no se establece la variable de registro DB2_SQLROUTINE_COMPILE_COMMAND de DB2. Para utilizar IBM VisualAge C++ para OS/2 Versión 4: db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld" Si no se especifica el archivo de configuración detrás del mandato vacbld, DB2 creará el archivo de configuración por omisión siguiente en el primer intento de crear cualquier procedimiento de SQL: %DB2PATH%\function\routine\sqlproc.icc Si desea utilizar su propio archivo de configuración, puede especificarlo al establecer el valor de registro de DB2 para DB2_SQLROUTINE_COMPILE_COMMAND: db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld %DB2PATH%\function\sqlproc.icc" Solaris Para utilizar SPARCompiler C Versiones 4.2 y 5.0: db2set DB2_SQLROUTINE_COMPILE_COMMAND=cc -xarch=v8plusa -Kpic \ -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \ -G -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib \ -R$HOME/sqllib/lib -ldb2 Para utilizar SPARCompiler C++ Versiones 4.2 y 5.0: db2set DB2_SQLROUTINE_COMPILE_COMMAND=CC -xarch=v8plusa -Kpic \ -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \ -G -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib \ -R$HOME/sqllib/lib -ldb2 Éste es el mandato de compilación por omisión si no se establece la variable de registro DB2_SQLROUTINE_COMPILE_COMMAND de DB2. Notas: 1. Se ha añadido la opción de compilador -xarch=v8plusa al mandato de compilador por omisión. Para obtener detalles sobre por qué se ha añadido esta opción, vea 34.8, "Capítulo 12. Creación de aplicaciones Solaris". 2. Para compilar procedimientos de SQL de 64 bits en Solaris, extraiga la opción -xarch=v8plusa y añada la opción -xarch=v9 a los mandatos anteriores. Windows NT y Windows 2000 Nota: No se soportan procedimientos de SQL en Windows 98 ni en Windows 95. Para utilizar Microsoft Visual C++ Versiones 5.0 y 6.0: db2set DB2_SQLROUTINE_COMPILE_COMMAND=cl -Od -W2 /TC -D_X86_=1 -I%DB2PATH%\include SQLROUTINE_FILENAME.c /link -dll -def:SQLROUTINE_FILENAME.def /out:SQLROUTINE_FILENAME.dll %DB2PATH%\lib\db2api.lib Éste es el mandato de compilación por omisión si no se establece la variable de registro DB2_SQLROUTINE_COMPILE_COMMAND de DB2. Para utilizar IBM VisualAge C++ para Windows Versión 3.6: db2set DB2_SQLROUTINE_COMPILE_COMMAND="ilib /GI SQLROUTINE_FILENAME.def & icc -Ti -Ge- -Gm+ -W2 -I%DB2PATH%\include SQLROUTINE_FILENAME.c /B\"/ST:64000 /PM:VIO /DLL\" SQLROUTINE_FILENAME.exp %DB2PATH%\lib\db2api.lib" Para utilizar IBM VisualAge C++ para Windows Versión 4: db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld" Si no se especifica el archivo de configuración detrás del mandato vacbld, DB2 creará el archivo de configuración por omisión siguiente en el primer intento de crear cualquier procedimiento de SQL: %DB2PATH%\function\routine\sqlproc.icc Si desea utilizar su propio archivo de configuración, puede especificarlo al establecer el valor de registro de DB2 para DB2_SQLROUTINE_COMPILE_COMMAND: db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld %DB2PATH%\function\sqlproc.icc" Para volver a las opciones de compilador por omisión, establezca el valor de registro de DB2 para DB2_SQLROUTINE_COMPILE_COMMAND en nulo mediante el mandato siguiente: db2set DB2_SQLROUTINE_COMPILE_COMMAND= 34.4.4 Conservación de archivos intermedios Cuando un procedimiento de SQL no se cree satisfactoriamente, deberá suprimir de forma manual los archivos intermedios que puedan quedar. Estos archivos se encuentran en los directorios siguientes: UNIX $DB2PATH/function/routine/sqlproc/$DATABASE/$SCHEMA/tmp donde $DB2PATH representa el directorio en que se ha creado la instancia, $DATABASE represente el nombre de la base de datos y $SCHEMA representa el nombre de esquema con el que se han creado los procedimientos de SQL. OS/2 y Windows %DB2PATH%\function\routine\sqlproc\%DATABASE%\% SCHEMA%\tmp donde %DB2PATH% representa el directorio en el que se ha creado la instancia, %DATABASE% representa el nombre de la base de datos y %SCHEMA% representa el nombre de esquema con el que se han creado los procedimientos de SQL. 34.4.5 Copia de seguridad y restauración Cuando se crea un procedimiento de SQL, la biblioteca/DLL compartida que se genera también se guarda en la tabla de catálogos si la biblioteca/DLL compartida que se genera es menor que 2 MB. Cuando se realiza una copia de seguridad de la base de datos y se restaura, esto se realizará con la versión guardada en la tabla de catálogos para todos los procedimientos de SQL con una biblioteca/DLL compartida generada menor que 2 MB. Si tiene procedimientos de SQL con una biblioteca/DLL compartida generada mayor que 2 MB, asegúrese de que también realice una copia de seguridad y una restauración del sistema de archivos junto con la copia de seguridad y restauración de la base de datos. En caso contrario, tendrá que volver a crear la biblioteca/DLL compartida del procedimiento de SQL manualmente, utilizando la fuente de la tabla de catálogos syscat.procedures. Nota: En el momento de recuperación de la base de datos, se eliminarán todos los ejecutables de procedimientos de SQL del sistema de archivos que pertenezcan a la base de datos que se recupera. Si el parámetro de configuración de creación de índices (indexrec) está establecido en RESTART, en la próxima conexión todos los ejecutables de procedimientos de SQL se extraerán de la tabla de catálogos y se volverán a colocar en el sistema de archivos. En caso contrario, los ejecutables de SQL se extraerán cuando se ejecuten los procedimientos de SQL por primera vez. Los ejecutables volverán a colocarse en el directorio siguiente: UNIX $DB2PATH/function/routine/sqlproc/$DATABASE donde $DB2PATH representa el directorio en que se ha creado la instancia y $DATABASE representa el nombre de base de datos con que se han creado los procedimientos de SQL. OS/2 y Windows %DB2PATH%\function\routine\sqlproc\%DATABASE% donde %DB2PATH% representa el directorio en el que se ha creado la instancia, %DATABASE% representa el nombre de la base de datos con el que se han creado los procedimientos de SQL. 34.4.6 Creación de procedimientos de SQL Establezca el parámetro de configuración del gestor de bases de datos KEEPDARI en 'NO' para desarrollar procedimientos de SQL. Si un procedimiento de SQL se mantiene cargado una vez que se ha ejecutado, se pueden experimentar problemas al eliminar y volver a crear el procedimiento almacenado con el mismo nombre, puesto que la biblioteca no se puede renovar y los ejecutables no se pueden eliminar del sistema de archivos. También tendrá problemas si intenta retrotraer los cambios o eliminar la base de datos, ya que los ejecutables no se pueden suprimir. Para obtener más información sobre el establecimiento del parámetro KEEPDARI, consulte el apartado 'Updating the Database Manager Configuration File' en "Chapter 2. Setup" de la publicación 'Application Building Guide'. Nota: Los procedimientos de SQL no soportan los tipos de datos siguientes para los parámetros: o LONG VARGRAPHIC o Binary Large Object (BLOB) o Character Large Object (CLOB) o Double-byte Character Large Object (DBCLOB) 34.4.7 Llamada de procedimientos almacenados El primer párrafo de 'Utilización del mandato CALL' debe ser: Para utilizar el mandato call, debe entrar el nombre del procedimiento almacenado junto con los parámetros IN o INOUT, además de '?' como área de retención de posición para cada parámetro OUT. Para conocer detalles sobre la sintaxis del mandato CALL, consulte el apartado 10.14, "CALL". 34.4.8 Distribución de procedimientos de SQL compilados Nota: Para distribuir procedimientos de SQL compilados entre servidores DB2, deberá llevar a cabo los pasos siguientes para cada servidor DB2 que sirve como fuente o como destino de un procedimiento de SQL compilado: Paso 1. Instale el FixPak 3 Paso 2. Emita el mandato db2updv7 para habilitar DB2 para extraer e instalar procedimientos de SQL compilados: db2updv7 -d nombre_basedatos Cuando se define un procedimiento de SQL, se convierte en un programa C, se precompila, se vincula frente a la base de datos de destino, se compila y se enlaza para crear una biblioteca compartida. Los pasos de compilación y enlace requieren que haya un compilador C o C++ disponible en la máquina servidor de bases de datos. Sin embargo, una vez que se haya definido un procedimiento de SQL, puede distribuirse en formato compilado a bases de datos DB2 que se ejecutan en la misma plataforma pero no necesariamente tienen acceso a un compilador C o C++. DB2 permite al usuario extraer procedimientos de SQL en formato compilado de una base de datos e instalarlos en formato compilado en otra base de datos. DB2 proporciona una interfaz de línea de mandatos y una interfaz de programación para las operaciones de extracción e instalación. La interfaz de línea de mandatos consta de dos mandatos CLP: GET ROUTINE y PUT ROUTINE. La interfaz programática consta de dos procedimientos almacenados incorporados: GET_ROUTINE_SAR y PUT_ROUTINE_SAR. Para obtener más información sobre la interfaz de línea de mandatos, consulte el manual Consulta de mandatos. Para obtener más información sobre la interfaz de programación, consulte el manual Consulta de SQL. Para distribuir un procedimiento de SQL compilado de un servidor de bases de datos a otro, lleve a cabo los pasos siguientes: Paso 1. Desarrolle la aplicación, incluyendo la definición de los procedimientos de SQL que formen parte de la aplicación. Paso 2. Después de probar los procedimientos, extraiga la versión compilada de cada procedimiento en un archivo diferente. Para obtener más información, consulte el mandato GET ROUTIN del manual Consulta de mandatos o el procedimiento almacenado GET_ROUTINE_SAR del manual Consulta de SQL. Paso 3. Instale la versión compilada de cada procedimiento en cada servidor, emitiendo el mandato PUT ROUTINE o invocando el procedimiento almacenado PUT_ROUTINE_SAR, utilizando los archivos creados por el Paso 2. Cada servidor de bases de datos debe tener el mismo sistema operativo y nivel de DB2. ------------------------------------------------------------------------ 34.5 Capítulo 7. Creación de aplicaciones HP-UX. 34.5.1 HP-UX C En "Aplicaciones de múltiples hebras", el archivo de script bldmt se ha revisado con opciones de compilación diferentes. La nueva versión se encuentra en el directorio sqllib/samples/c. 34.5.2 HP-UX C++ En los scripts de creación, la variable CC de compilador C++ se ha sustituido por aCC, para el compilador HP aC++. Los scripts de creación revisados se encuentran en el directorio sqllib/samples/cpp. La opción de compilación "+u1" se utiliza para crear UDF y procedimientos almacenados con el compilador aCC. Esta opción permite el acceso a datos no alineados. Los scripts de creación de ejemplo enviados con DB2 para HP-UX, bldsrv y bldudf y el makefile de ejemplo no se han actualizado con esta opción. Deberían revisarse para añadir esta opción antes de utilizarlos. Este es el nuevo paso de compilación para los scripts bldsrv y bldudf: aCC +DAportable +u1 -Aa +z -ext -I$DB2PATH/include -c $1.C En "Aplicaciones de múltiples hebras", el archivo de script bldmt se ha revisado con opciones de compilación diferentes. La nueva versión se encuentra en el directorio sqllib/samples/cpp. ------------------------------------------------------------------------ 34.6 Capítulo 9. Creación de aplicaciones OS/2 34.6.1 VisualAge C++ para OS/2 Versión 4.0 Para OS/2 y Windows, utilice el mandato set en lugar del mandato export que se documenta en esta sección. Por ejemplo, set CLI=tbinfo. En el apartado 'Aplicaciones de la CLI de DB2', subapartado 'Creación y ejecución de aplicaciones SQL incorporadas', para OS/2 y Windows se debe utilizar el archivo cliapi.icc en lugar del archivo cli.icc, puesto que las aplicaciones SQL incorporadas necesitan que la biblioteca db2api.lib se enlace mediante cliapi.icc. ------------------------------------------------------------------------ 34.7 Capítulo 10. Creación de aplicaciones PTX 34.7.1 ptx/C++ Para crear procedimientos almacenados y funciones definidas por el usuario, es necesario enlazar las bibliotecas con la opción -shared. En el directorio sqllib/samples, el makefile, los scripts de creación bldsrv y bldudf se han actualizado de forma que incluyan esta opción, como en el paso de enlace siguiente desde bldsrv: c++ -shared -G -o $1 $1.o -L$DB2PATH/lib -ldb2 ------------------------------------------------------------------------ 34.8 Capítulo 12. Creación de aplicaciones Solaris 34.8.1 SPARCompiler C++ Problemas con la ejecución de aplicaciones C/C++ y de procedimientos de SQL en Solaris Cuando se utiliza Sun WorkShop Compiler C/C++, si tiene problemas con el ejecutable en el que recibe errores como los siguientes: 1. error de sintaxis en la línea 1: `(' inesperado 2. ksh: : no puede ejecutarse (donde nombre aplicación es el nombre del ejecutable compilado) puede tener el problema de que el compilador no produce ejecutables válidos cuando se enlaza con libdb2.so. Una sugerencia para solucionar este problema consiste en añadir la opción de compilador siguiente a los mandatos de compilación y enlace: -xarch=v8plusa por ejemplo, cuando compila la aplicación de ejemplo, dynamic.sqc: embprep dynamic sample embprep utilemb sample cc -c utilemb.c -xarch=v8plusa -I/export/home/db2inst1/sqllib/include cc -o dynamic dynamic.c utilemb.o -xarch=v8plusa -I/export/home/db2inst1/sqllib/include \ -L/export/home/db2inst1/sqllib/lib -R/export/home/db2inst1/sqllib/lib -l db2 Notas: 1. Si está utilizando Procedimientos de SQL en Solaris y utiliza su propia serie de compilación mediante la variable de perfil DB2_SQLROUTINE_COMPILE_COMMAND, asegúrese de incluir la opción de compilador indicada anteriormente. El mandato de compilador por omisión incluye esta opción: db2set DB2_SQLROUTINE_COMPILE_COMMAND="cc -# -Kpic -xarch=v8plusa -I$HOME/sqllib/include \ SQLROUTINE_FILENAME.c -G -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -R$HOME/sqllib/lib -ldb2 2. Para compilar procedimientos de SQL de 64 bits en Solaris, extraiga la opción -xarch=v8plusa y añada la opción -xarch=v9 a los mandatos anteriores. ------------------------------------------------------------------------ 34.9 Capítulo 13. Creación de aplicaciones para sistemas operativos Windows de 32 bits 34.9.1 VisualAge C++ Versioó 4.0 Para OS/2 y Windows, utilice el mandato set en lugar del mandato export que se documenta en esta sección. Por ejemplo, set CLI=tbinfo. En el apartado 'Aplicaciones de la CLI de DB2', subapartado 'Creación y ejecución de aplicaciones SQL incorporadas', para OS/2 y Windows se debe utilizar el archivo cliapi.icc en lugar del archivo cli.icc, puesto que las aplicaciones SQL incorporadas necesitan que la biblioteca db2api.lib se enlace mediante cliapi.icc. ------------------------------------------------------------------------ Application Development Guide ------------------------------------------------------------------------ 35.1 Capítulo 2. Codificación de una aplicación de DB2 35.1.1 Activación IBM DB2 Universal Database Project y Tool Add-ins para Microsoft Visual C++ Antes de ejecutar el mandato db2vccmd (paso 1), asegúrese de haber iniciado y detenido Visual C++ por lo menos una vez con el ID de inicio de sesión actual. La primera vez que se ejecuta Visual C++, se crea un perfil para el ID de usuario, y esto es lo que se actualiza mediante el mandato db2vccmd. Si no lo ha iniciado una vez e intenta ejecutar db2vccmd, se puede encontrar errores como los siguientes: "Registering DB2 Project add-in ...Failed! (rc = 2)" ------------------------------------------------------------------------ 35.2 Capítulo 6. Técnicas comunes de aplicación de DB2 35.2.1 Generación de valores secuenciales La generación de valores secuenciales es un problema común del desarrollo de aplicaciones de base de datos. La mejor solución a ese problema es la utilización de objetos de secuencia y expresiones de secuencia en SQL. Cada objeto de secuencia es un objeto de base de datos con nombre exclusivo al que sólo pueden acceder las expresiones de secuencia. Hay dos expresiones de secuencia: la expresión PREVVAL y la expresión NEXTVAL. La expresión PREVVAL devuelve el valor generado más recientemente para la secuencia especificada para una sentencia anterior. La expresión de secuencia NEXTVAL incrementa el valor del objeto de secuencia y devuelve el nuevo valor del objeto de secuencia. Para crear un objeto de secuencia, emita la sentencia CREATE SEQUENCE. Por ejemplo, para crear un objeto de secuencia llamado id_values utilizando los atributos por omisión, emita la sentencia siguiente: CREATE SEQUENCE id_values Para visualizar el valor actual del objeto de secuencia, emita una sentencia VALUES utilizando la expresión PREVVAL: VALUES PREVVAL FOR id_values 1 ----------- 1 1 registro(s) seleccionado(s). Se puede recuperar el valor actual del objeto de secuencia repetidamente y el valor que el objeto de secuencia devuelve no cambia hasta que se emite una expresión NEXTVAL. En el ejemplo siguiente, la expresión PREVVAL devuelve un valor de 1, hasta que la expresión NEXTVAL aumenta el valor del objeto de secuencia: VALUES PREVVAL FOR id_values 1 ----------- 1 1 registro(s) seleccionado(s). VALUES PREVVAL FOR id_values 1 ----------- 1 1 registro(s) seleccionado(s). VALUES NEXTVAL FOR id_values 1 ----------- 2 1 registro(s) seleccionado(s). VALUES PREVVAL FOR id_values 1 ----------- 2 1 registro(s) seleccionado(s). Para actualizar el valor de una columna con el siguiente valor del objeto de secuencia, incluya la expresión NEXTVAL en la sentencia UPDATE, del modo siguiente: UPDATE personal SET id = NEXTVAL FOR id_values WHERE id = 350 Para insertar una nueva fila en una tabla utilizando el siguiente valor del objeto de secuencia, incluya la expresión NEXTVAL en la sentencia INSERT, del modo siguiente: INSERT INTO personal (id, nombre, dept, cargo) VALUES (NEXTVAL FOR id_values, 'Kandil', 51, 'Director') Si desea obtener más información sobre las expresiones PREVVAL y NEXTVAL, consulte el manual Consulta de SQL. 35.2.1.1 Control del comportamiento de secuencias Puede adaptar el comportamiento de objetos de secuencia para satisfacer las necesidades de su aplicación. Se cambian los atributos de un objeto de secuencia cuando se emite la sentencia CREATE SEQUENCE para crear un nuevo objeto de secuencia y cuando se emite una sentencia ALTER SEQUENCE para un objeto de secuencia ya existente. A continuación se encuentran algunos de los atributos de un objeto de secuencia que se pueden especificar: Tipo de datos La cláusula AS de la sentencia CREATE SEQUENCE especifica el tipo de datos numérico del objeto de secuencia. El tipo de datos, tal como se especifica en el apéndice "Límites de SQL" del manual Consulta de SQL, determina los valores máximo y mínimo posibles del objeto de secuencia. No se puede cambiar el tipo de datos de un objeto de secuencia; en su lugar, deberá descartar el objeto de secuencia emitiendo la sentencia DROP SEQUENCE y emitiendo una sentencia CREATE SEQUENCE con el nuevo tipo de datos. Valor inicial La cláusula START WITH de la sentencia CREATE SEQUENCE establece el valor inicial del objeto de secuencia. La cláusula RESTART WITH de la sentencia ALTER SEQUENCE restablece el valor del objeto de secuencia en un valor especificado. Valor mínimo La cláusula MINVALUE establece el valor mínimo del objeto de secuencia. Valor máximo La cláusula MAXVALUE establece el valor máximo del objeto de secuencia. Valor de incremento La cláusula INCREMENT BY establece el valor que cada expresión NEXTVAL añade al objeto de secuencia. Para disminuir el valor del objeto de secuencia, especifique un valor negativo. Secuencia cíclica La cláusula CYCLE hace que el valor de un objeto de secuencia que alcanza su valor máximo o mínimo vuelva a su valor inicial en la expresión NEXTVAL que sigue. Por ejemplo, para crear un objeto de secuencia llamado id_values que empiece con un valor de 0, tenga un valor máximo de 1000, incremente en 2 con cada expresión NEXTVAL y vuelva a su valor inicial cuando se alcance el valor máximo, emita la sentencia siguiente: CREATE SEQUENCE id_values START WITH 0 INCREMENT BY 2 MAXVALUE 1000 CYCLE Si desea obtener más información sobre las sentencias CREATE SEQUENCE y ALTER SEQUENCE, consulte el manual Consulta de SQL. 35.2.1.2 Mejora del rendimiento con objetos de secuencia Al igual que las columnas de identidad, la utilización de objetos de secuencia para generar valores normalmente mejora el rendimiento de las aplicaciones en comparación con los acercamientos alternativos. La alternativa a los objetos de secuencia consiste en crear una tabla de una sola columna que almacene el valor actual e incremente este valor con un activador o bajo el control de la aplicación. En un entorno distribuido donde las aplicaciones acceden de forma simultánea a la tabla de una sola columna, el bloqueo necesario para forzar el acceso en serie a la tabla puede afectar gravemente al rendimiento. Los objetos de secuencia evitan los problemas de bloqueo que están asociados con el acercamiento a tablas de una única columna y pueden almacenar en antememoria valores de secuencia en memoria para mejorar el tiempo de respuesta de DB2. Para maximizar el rendimiento de aplicaciones que utilizan objetos de secuencia, asegúrese de que el objeto de secuencia almacene en antememoria una cantidad apropiada de valores de secuencia. La cláusula CACHE de las sentencias CREATE SEQUENCE y ALTER SEQUENCE especifica el número máximo de valores de secuencia que DB2 genera y almacena en memoria. Si el objeto de secuencia debe generar valores en orden, sin introducir espacios en ese orden debido a una anomalía del sistema o desactivación de la base de datos, utilice las cláusulas ORDER y NO CACHE en la sentencia CREATE SEQUENCE. La cláusula NO CACHE garantiza que no aparezcan espacios en los valores generados a expensas de parte del rendimiento de la aplicación, puesto que fuerza al objeto de secuencia a grabar en la anotación cronológica de la base de datos cada vez que genera un nuevo valor. 35.2.1.3 Comparación de objetos de secuencia y columnas de identidad Aunque los objetos de secuencia y las columnas de identidad parecen servir a finalidades parecidas para aplicaciones de DB2, hay diversas diferencias importantes: * Una columna de identidad genera automáticamente valores para una columna en una sola tabla. Un objeto de secuencia genera valores secuenciales que se pueden utilizar en cualquier sentencia de SQL. * Una columna de identidad genera valores que tienen garantía de exclusividad. La inclusión de la cláusula CYCLE en una sentencia CREATE SEQUENCE o ALTER SEQUENCE permite que el objeto de secuencia genere valores duplicados. ------------------------------------------------------------------------ 35.3 Capítulo 7. Procedimientos almacenados 35.3.1 El Tipo DECIMAL no se soporta en rutinas Java de Linux Este problema se produce porque el IBM Developer Kit para Java no crea enlaces para sus bibliotecas en el directorio /usr/lib. El modelo de seguridad para rutinas de DB2 no les permite acceder a bibliotecas fuera de las bibliotecas estándares del sistema. Para habilitar el soporte DECIMAL en las rutinas de Java en Linux, realice los pasos siguientes: 1. Cree enlaces simbólicos desde las bibliotecas de IBM Developer Kit para Java para /usr/lib/ emitiendo el mandato siguiente con autorización root: Para IBM Developer Kit para Java 1.1.8: ln -sf /usr/jdk118/lib/linux/native_threads/* /usr/lib/ Para IBM Developer Kit para Java 1.3: ln -sf /opt/IBMJava2-13/jre/bin/*.so /usr/lib/ 2. Emita el mandato ldconfig para actualizar la lista de bibliotecas de todo el sistema. 35.3.2 Utilización de cursores en procedimientos almacenados repetitivos Para evitar errores al utilizar Procedimientos de SQL o procedimientos almacenados grabados en el SQL incluido, cierre todos los cursores abiertos antes de emitir una sentencia CALL repetitiva. Por ejemplo, suponga que el procedimiento almacenado MYPROC contiene el fragmento de código siguiente: OPEN c1; CALL MYPROC(); CLOSE c1; DB2 devuelve un error cuando se llama a MYPROC debido a que el cursor c1 sigue abierto cuando MYPROC emite una sentencia CALL repetitiva. El error específico que devuelve DB2 depende de las acciones que MYPROC efectúa en el cursor. Para llamar a MYPROC de modo satisfactorio, vuelva a escribir MYPROC para cerrar todos los cursores abiertos antes de la sentencia CALL anidada tal y como se muestra en el ejemplo siguiente: OPEN c1; CLOSE c1; CALL MYPROC(); Cierre todos los cursores abiertos antes de emitir la sentencia CALL anidada para evitar un error. 35.3.3 Escritura de procedimientos almacenados de automatización OLE Falta la última frase del párrafo siguiente en el segundo párrafo del apartado "Escritura de procedimientos almacenados de automatización OLE": Después de codificar un objeto de automatización OLE, debe registrar los métodos del objeto como procedimientos almacenados utilizando la sentencia CREATE PROCEDURE. Para registrar un procedimiento almacenado de automatización OLE, emita una sentencia CREATE PROCEDURE con la cláusula LANGUAGE OLE. El nombre externo consta del progID de OLE que identifica al objeto de automatización OLE y el nombre de método separados por ! (signo de exclamación). El objeto de automatización OLE debe implementarse como un servidor en proceso (.DLL). ------------------------------------------------------------------------ 35.4 Capítulo 12. Trabajar con objetos completos: Tipos estructurados definidos por el usuario 35.4.1 Inserción de atributos de tipo estructurado en columnas Se aplica la norma siguiente a las sentencias de SQL estático incorporadas: Para insertar un atributo de un tipo estructurado definido por el usuario en una columna que es del mismo tipo que el atributo, encierre entre paréntesis la variable de sistema principal que representa la instancia del tipo y añada el operador de punto doble y el nombre de atributo al paréntesis derecho. Por ejemplo, considere la situación siguiente: - PERSON_T es un tipo estructurado que incluye el atributo NAME de tipo VARCHAR(30). - T1 es una tabla que incluye una columna C1 de tipo VARCHAR(30). - personhv es la variable de sistema principal declarada para el tipo PERSON_T en el lenguaje de programación. La sintaxis conveniente para insertar el atributo NAME en la columna C1 es: EXEC SQL INSERT INTO T1 (C1) VALUES ((:personhv)..NAME) ------------------------------------------------------------------------ 35.5 Capítulo 13. Utilización de objetos grandes (LOB) 35.5.1 Soporte de objetos grandes (LOB) en sistemas de bases de datos federados DB2 da soporte a tres tipos de objetos grandes (LOB): objetos grandes de caracteres (CLOB), objetos grandes de caracteres de doble byte (DBCLOB) y objetos grandes binarios (BLOB). Para obtener información general sobre el soporte de LOB de DB2, consulte los siguientes manuales de DB2: * DB2 Application Development Guide * DB2 SQL Reference * DB2 Administration Guide: Planning En un sistema de bases de datos federado, puede acceder y manipular LOB en fuentes de datos remotas. Puesto que los LOB pueden ser muy grandes, la transferencia de LOB desde una fuente de datos remota puede llevar mucho tiempo. La base de datos federada de DB2 intenta minimizar la transferencia de datos LOB desde las fuentes de datos y también intenta distribuir los datos LOB solicitados directamente desde la fuente de datos a la aplicación que los solicita sin materializar el LOB en DB2. Esta sección trata estos temas: * Cómo DB2 recupera los LOB * Cómo pueden las aplicaciones utilizar localizadores de LOB * Restricciones de los LOB * Correlaciones entre tipos de datos LOB y no LOB * Ajuste del sistema 35.5.1.1 Cómo DB2 recupera los LOB Los sistemas federados de DB2 utilizan dos mecanismos para recuperar LOB: modalidad continua de LOB y materialización de LOB. Modalidad continua de LOB En la modalidad continua de LOB, los datos LOB se recuperan por fases. DB2 utiliza la modalidad continua de LOB para datos de grupos de resultados de consultas que están completamente inactivas. Por ejemplo, supongamos que tenemos la siguiente consulta: SELECT empname, picture FROM orc_emp_table WHERE empno = '01192345' donde picture representa una columna de LOB y orc_emp_table representa un seudónimo que hace referencia a una tabla de Oracle que contiene datos de empleados. El procesador de consultas de DB2 marca la columna picture para modalidad continua si decide ejecutar la consulta completa en la fuente de datos de Oracle. En el momento de la ejecución, si DB2 nota que hay un LOB marcado para modalidad continua, recupera el LOB por fases de la fuente de datos. Luego DB2 transfiere los datos al espacio de memoria de la aplicación. Materialización de LOB En materialización de LOB, DB2 recupera los datos LOB remotos y los almacena localmente en el servidor federado. DB2 utiliza materialización de LOB cuando: * La columna de LOB no se puede diferir ni recuperar en modalidad continua. * Se debe aplicar una función a una columna LOB localmente, antes de que se transfieran los datos. Esto sucede cuando DB2 realiza una compensación de funciones no disponibles en la fuente de datos remota. Por ejemplo, Microsoft SQL Server no suministra la función SUBSTR para columnas de LOB. Para compensar, DB2 materializa la columna de LOB localmente y aplica la función DB2 SUBSTR al LOB recuperado. 35.5.1.2 Cómo pueden las aplicaciones utilizar localizadores de LOB Las aplicaciones pueden suministrar localizadores de LOB para los LOB almacenados en fuentes de datos remotas. Un localizador de LOB es un valor de 4 bytes almacenado en una variable de sistema principal que puede utilizar un programa para hacer referencia a un valor LOB (o expresión LOB) mantenido en el sistema de bases de datos. Mediante la utilización de un localizador de LOB, un programa puede manipular el valor LOB como si el LOB estuviera almacenado en una variable de sistema principal normal. La diferencia es que al utilizar el localizador de LOB no es necesario transportar el valor LOB desde el servidor a la aplicación (y posiblemente devolverlo). Consulte el manual DB2 Application Development Guide para obtener más información sobre localizadores de LOB. DB2 puede recuperar los LOB desde fuentes de datos remotas, almacenarlos en DB2 y luego emitir un localizador de LOB sobre el LOB almacenado. Los localizadores de LOB se liberan cuando: * Las aplicaciones emiten sentencias de SQL "FREE LOCATOR". * Las aplicaciones emiten sentencias COMMIT. * Se reinicia DB2. 35.5.1.3 Restricciones de los LOB Cuando se utilizan y recuperan LOB, tenga en cuenta que: * DB2 no puede vincular LOB remotos a una variable de referencia de archivo. * Los LOB no reciben soporte en modalidad de paso a través. 35.5.1.4 Correlaciones entre tipos de datos LOB y no LOB Hay algunos casos en que puede correlacionar un tipo de datos LOB de DB2 con un tipo de datos no LOB en una fuente de datos. Cuando tiene que crear una correlación entre una columna con un tipo LOB de DB2 y su correspondiente columna en la fuente de datos, se recomienda utilizar un tipo de datos LOB como columna correspondiente si es posible. Para crear una correlación, utilice la sentencia de DDL create type mapping. Por ejemplo: CREATE TYPE MAPPING my_oracle_lob FROM sysibm.clob TO SERVER TYPE oracle TYPElong donde: my_oracle_lob Es el nombre de la correlación de tipos. sysibm.clob Es el tipo de datos CLOB de DB2. oracle Es el tipo de servidor con el que está conectando. long Es el correspondiente tipo de datos de Oracle. 35.5.2 Ajuste del sistema Si una aplicación que recupera LOB remotos devuelve un mensaje de error que indica que no hay suficientes recursos del sistema para procesar la sentencia, aumente el valor del parámetro de tamaño de pila de la aplicación, APPLHEAPSZ, en el archivo de configuración de base de datos. Por ejemplo: DB2 UPDATE DB CFG FOR EMPLOYEE USING APPLHEAPSZ 512 donde EMPLOYEE es el nombre de la base de datos que está ajustando y 512 es el valor del parámetro del tamaño de la pila de aplicación. ------------------------------------------------------------------------ 35.6 Parte 5. Consideraciones sobre programación de DB2 35.6.1 IBM DB2 OLE DB Provider La instalación de IBM DB2 versión 7.1 FixPak 1 o posterior corrige el problema que hizo que DB2 emitiera el error siguiente: La conexión de comprobación ha fallado debido a un error en el proveedor de inicialización. El IBM OLE DB Provider no está disponible en estos momentos. Consulte el archivo léame para obtener más información. Para obtener más información sobre la utilización de IBM OLE DB Provider para DB2, consulte el sitio http://www.ibm.com/software/data/db2/udb/ad/v71/oledb.html. ------------------------------------------------------------------------ 35.7 Capítulo 20. Programación en C y C++ La tabla siguiente complementa la información incluida en el capítulo 7, "Procedimientos almacenados", en el capítulo 15, "Escritura de funciones definidas por el usuario y métodos" y en el capítulo 20, "Programación en C y C++". La tabla lista las correlaciones soportadas entre tipos de datos SQL y tipos de datos C para procedimientos almacenados, UDF y métodos. 35.7.1 Tipos de C/C++ para procedimientos almacenados, funciones y métodos Tabla 22. Tipos de datos SQL correlacionados con declaraciones C/C++ Descripción del tipo de Tipo de columna SQL Tipo de datos C/C++ columna SQL SMALLINT sqlint16 entero con signo de 16 bits (500 ó 501) INTEGER sqlint32 entero con signo de 32 bits (496 ó 497) BIGINT sqlint64 entero con signo de 64 bits (492 ó 493) REAL float Coma flotante de precisión (480 ó 481) simple DOUBLE double Coma flotante de precisión (480 ó 481) doble DECIMAL(p,s) No soportado. Para pasar un valor decimal, (484 ó 485) defina el parámetro como de tipo de datos moldeable de DECIMAL (por ejemplo, CHAR o DOUBLE) y moldee explícitamente el argumento para este tipo. CHAR(n) char[n+1] donde n es Serie de caracteres de (452 ó 453) suficientemente grande longitud fija terminada en para contener los nulo datos 1<=n<=254 CHAR(n) FOR BIT DATA char[n+1] donde n es Serie de caracteres de (452 ó 453) suficientemente grande longitud fija para contener los datos 1<=n<=254 VARCHAR(n) char[n+1] donde n es Serie de longitud variable (448 ó 449) (460 ó suficientemente grande terminada en nulo 461) para contener los datos 1<=n<=32 672 VARCHAR(n) FOR BIT struct { Serie de caracteres de DATA sqluint16 longitud longitud variable no (448 ó 449) char[n] terminada en nulo } 1<=n<=32 672 LONG VARCHAR struct { Serie de caracteres de (456 ó 457) sqluint16 longitud longitud variable no char[n] terminada en nulo } 32 673<=n<=32 700 CLOB(n) struct { Serie de caracteres de (408 ó 409) sqluint32 longitud; longitud variable no char datos[n]; terminada en nulo con } indicador de longitud de serie de 4 bytes 1<=n<=2 147 483 647 BLOB(n) struct { Serie binaria variable no (404 ó 405) sqluint32 longitud; terminada en nulo con char datos[n]; indicador de longitud de } serie de 4 bytes 1<=n<=2 147 483 647 DATE (384 ó 385) char[11] formato de caracteres terminado en nulo TIME (388 ó 389) char[9] formato de caracteres terminado en nulo TIMESTAMP (392 ó 393) char[27] formato de caracteres terminado en nulo Nota: Los tipos de datos siguientes sólo están disponibles en los entornos DBCS o EUC si se compilan previamente con la opción WCHARTYPE NOCONVERT. GRAPHIC(n) sqldbchar[n+1] donde n Serie de caracteres de doble (468 ó 469) es suficientemente byte de longitud fija grande para contener terminada en nulo los datos 1<=n<=127 VARGRAPHIC(n) sqldbchar[n+1] donde n Serie de caracteres de doble (400 ó 401) es suficientemente byte de longitud variable no grande para contener terminada en nulo los datos 1<=n<=16 336 LONG VARGRAPHIC struct { Serie de caracteres de doble (472 ó 473) sqluint16 longitud byte de longitud variable no sqldbchar[n] terminada en nulo } 16 337<=n<=16 350 DBCLOB(n) struct { Serie de caracteres de (412 ó 413) sqluint32 longitud; longitud variable no sqldbchar data[n]; terminada en nulo con } indicador de longitud de serie de 4 bytes 1<=n<=1 073 741 823 ------------------------------------------------------------------------ 35.8 Capítulo 21. Programación en Java 35.8.1 Signatura del método Java en procedimientos y funciones PARAMETER STYLE JAVA Si se especifica después que el nombre de método Java en la cláusula EXTERNAL NAME de las sentencias CREATE PROCEDURE o CREATE FUNCTION, la signatura del método Java debe corresponder a la correlación de tipos Java por omisión para la signatura especificada después del nombre de procedimiento o función. Por ejemplo, la correlación de Java por omisión del tipo INTEGER de SQL es "int", y no "java.lang.Integer". 35.8.2 Conexión al servidor de applet de JDBC Es esencial que el archivo db2java.zip que utiliza la applet de Java esté al mismo nivel de FixPak que el servidor de applet de JDBC. En circunstancias normales, db2java.zip se carga desde el Servidor Web en el que se está ejecutando el servidor de applet de JDBC, tal y como se muestra en la Figura 22 del manual. Esto asegura una correspondencia. Sin embargo, si su configuración hace que la applet de Java cargue db2java.zip desde una ubicación diferente, puede producirse una falta de correspondencia. Antes del FixPak 2, esto podía conducir a anomalías inesperadas. A partir del FixPak 2, la correspondencia de niveles del FixPak entre los dos archivos se implanta estrictamente en tiempo de conexión. Si se detecta una falta de correspondencia, se rechaza la conexión y el cliente recibe una de las excepciones siguientes: * Si db2java.zip está en el FixPak 2 o posterior: COM.ibm.db2.jdbc.DB2Exception: [IBM][Controlador JDBC] CLI0621E Configuración de servidor JDBC no soportada. * Si db2java.zip es anterior al FixPak 2: COM.ibm.db2.jdbc.DB2Exception: [IBM][Controlador JDBC] CLI0601E Se ha cerrado la sentencia o descriptor de contexto de sentencia no válidos. SQLSTATE=S1000 Si se produce una falta de correspondencia, el servidor de applet de JDBC anota cronológicamente uno de los mensajes siguientes en el archivo jdbcerr.log: * Si el servidor de applet de JDBC está en el FixPak 2 o posterior: jdbcFSQLConnect: Las versiones de servidor y cliente de applet JDBC (db2java.zip) no coinciden. La conexión no puede proseguir., einfo= -111 * Si el servidor de applet de JDBC es anterior al FixPak 2: jdbcServiceConnection(): Se ha recibido una petición no válida., einfo= 0 ------------------------------------------------------------------------ 35.9 Apéndice B. Programas de ejemplo Debe añadirse lo siguiente a la sección "Ejemplos de enlace e intercalación de objetos": salarycltvc Ejemplo de CLI de Visual C++ DB2 que llama al procedimiento almacenado de Visual Basic, salarysrv. SALSVADO Procedimiento almacenado de automatización OLE (SALSVADO) y SALCLADO cliente (SALCLADO), implementado en Visual Basic y ADO de 32 bits, que calcula el salario medio en la tabla staff2. ------------------------------------------------------------------------ CLI Guide and Reference ------------------------------------------------------------------------ 36.1 Vinculación de programas de utilidad para bases de datos utilizando el Cliente de tiempo de ejecución El Cliente de tiempo de ejecución no se puede utilizar para vincular los programas de utilidad de base de datos (import, export, reorg, el procesador de línea de mandatos) ni los archivos de vinculación de CLI de DB2 para cada base de datos antes de utilizarlos con la base de datos. En su lugar se debe utilizar DB2 Administration Client o DB2 Application Development Client. Debe vincular estos programas de utilidad para bases de datos y los archivos de vinculación de la CLI de DB2 a cada base de datos para poderlos utilizar con la base de datos. En un entorno de red, si utilizan varios clientes que se ejecutan en sistemas operativos distintos, o que corresponden a versiones o niveles de servicio de DB2 distintos, debe vincular los programas de utilidad una vez para cada combinación de sistema operativo y versión de DB2. ------------------------------------------------------------------------ 36.2 Utilización de SQL estático en aplicaciones de la CLI Para obtener más información sobre cómo utilizar SQL estático en aplicaciones de la CLI, consulte la página Web en: http://www.ibm.com/software/data/db2/udb/staticcli/ ------------------------------------------------------------------------ 36.3 Limitaciones de perfil estático JDBC/ODBC/CLI El perfil estático JDBC/ODBC/CLI actualmente está destinado a aplicaciones sencillas. No está pensado para aplicaciones complejas con muchos componentes funcionales y una lógica compleja de programa durante la ejecución. Una sentencia SQL debe haberse ejecutado satisfactoriamente para que se pueda capturar en una sesión de perfil. En una sesión de comparación de sentencias, las sentencias dinámicas que no coincidan se continuarán ejecutando como llamadas JDBC/ODBC/CLI dinámicas. Una sentencia SQL debe ser idéntica carácter por carácter con la que se ha capturado y vinculado para ser una candidata válida para la comparación de sentencias. Los espacios son significativos: por ejemplo, "COL = 1" se considera diferente de "COL=1". Utilice marcadores de parámetros en lugar de literales para mejorar los aciertos de comparación. Cuando se ejecuta una aplicación con sentencias de SQL estático previamente vinculadas, los registros dinámicos que controlan el funcionamiento de las sentencias dinámicas no tendrán ningún efecto sobre las sentencias que se conviertan a estáticas. Si una aplicación emite sentencias DDL para objetos a los que se hace referencia en sentencias DML subsiguientes, encontrará todas estas sentencias en el archivo de captura. La Herramienta de vinculación de perfil estático JDBC/ODBC/CLI intentará vincularlas. El intento de vinculación será satisfactorio con los DBMS que soporten la opción de vinculación VALIDATE(RUN), pero fallará con las que no la soporten. En este caso, la aplicación no debe utilizar Perfil estático. El Administrador de bases de datos puede editar el archivo de captura para añadir, cambiar o eliminar sentencias de SQL, basándose en los requisitos específicos de la aplicación. ------------------------------------------------------------------------ 36.4 Transformaciones de ADT La información siguiente sustituye a la información existente en la publicación. * Hay un nuevo tipo de descriptor (smallint) SQL_DESC_USER_DEFINED_TYPE_CODE, con los valores: SQL_TYPE_BASE 0 (no es un USER_DEFINED_TYPE) SQL_TYPE_DISTINCT 1 SQL_TYPE_STRUCTURED 2 Este valor se puede consultar con SQLColAttribute o SQLGetDescField (sólo IRD). Se añaden los atributos siguientes para obtener los nombres de tipo reales: SQL_DESC_REFERENCE_TYPE SQL_DESC_STRUCTURED_TYPE SQL_DESC_USER_TYPE Los valores anteriores se pueden consultar utilizando SQLColAttribute o SQLGetDescField (sólo IRD). * Añadir SQL_DESC_BASE_TYPE en caso de que la aplicación lo necesite. Por ejemplo, es posible que la aplicación no reconozca el tipo estructurado pero pretenda captarlo o insertarlo y dejar que otro código se ocupe de los detalles. * Añadir un nuevo atributo de conexión llamado SQL_ATTR_TRANSFORM_GROUP para permitir que una aplicación establezca el grupo de transformaciones (en lugar de utilizar la sentencia "SET CURRENT DEFAULT TRANSFORM GROUP" de SQL). * Añadir una nueva sentencia/atributo de conexión llamado SQL_ATTR_RETURN_USER_DEFINED_TYPES que se pueda establecer o consultar utilizando SQLSetConnectAttr, que hace que la CLI devuelva el valor SQL_DESC_USER_DEFINED_TYPE_CODE como Tipo de SQL válido. Este atributo es necesario antes de utilizar cualquiera de las transformaciones. o Por omisión, el atributo está desactivado y hace que se devuelva la información de tipo base como tipo de SQL. o Si está habilitado, se devolverá SQL_DESC_USER_DEFINED_TYPE_CODE como SQL_TYPE. Es de esperar que la aplicación compruebe SQL_DESC_USER_DEFINED_TYPE_CODE y, a continuación, recupere el nombre de tipo apropiado. Esto estará disponible para SQLColAttribute, SQLDescribeCol y SQLGetDescField. * SQLBindParameter no produce un error cuando se vincula SQL_C_DEFAULT, puesto que no hay código que permita que SQLBindParameter especifique el tipo SQL_USER_DEFINED_TYPE. Se utilizarán los tipos de C por omisión estándares, en base al tipo de SQL base emitido al servidor. Por ejemplo: sqlrc = SQLBindParameter (hstmt, 2, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_VARCHAR, 30, 0, &c2, 30, NULL); ------------------------------------------------------------------------ 36.5 Capítulo 3. Utilización de características avanzadas 36.5.1 Cómo escribir aplicaciones de varias hebras Se debe añadir lo siguiente al final de la sección "Aplicaciones mixtas de varias hebras": Nota: Se recomienda no utilizar el tamaño de pila por omisión, sino aumentar el tamaño de pila a al menos 256.000. DB2 necesita un tamaño mínimo de pila de 256.000 cuando llama a una función de DB2. Por lo tanto, debe asegurarse de asignar un tamaño total de pila suficientemente grande para la aplicación y los requisitos mínimos para una llamada a una función de DB2. 36.5.2 Cursores desplazables Debe añadirse la información siguiente a la sección "Cursores desplazables": 36.5.2.1 Soporte de cursor desplazable para OS/390 en el extremo del servidor El cliente UDB para las plataformas Unix, Windows y OS/2 da soporte a cursores desplazables en el extremo del servidor cuando se ejecutan frente bases de datos de OS/390 Versión 7. Para acceder a un cursor desplazable de OS/390 en un entorno de tres niveles, el cliente y la pasarela deben estar ejecutando DB2 UDB Versión 7.1, FixPak 3 o posterior. Hay dos interfaces de habilitación de aplicaciones que pueden acceder a los cursores desplazables: ODBC y JDBC. La interfaz JDBC sólo puede acceder a cursores desplazables estáticos, mientras que la interfaz ODBC puede acceder a cursores desplazables en el extremo del servidor estáticos y controlados por conjuntos de claves. Atributos del cursor La tabla siguiente lista los atributos por omisión para cursores de OS/390 Versión 7 en ODBC. Tabla 23. Atributos por omisión para cursores de OS/390 en ODBC Tipo de Sensibilidad Cursor Simultaneidad Cursor cursor del cursor actualizable del cursor desplazable sólo no no simultaneidad no desplazable reenvíoa especificada actualizable de sólo lectura estático no sensible no simultaneidad desplazable actualizable de sólo lectura controlado sensible actualizable simultaneidad desplazable por de valores conjunto de claves a Sólo reenvío es el comportamiento por omisión para un cursor desplazable sin la cláusula FOR UPDATE. La especificación de FOR UPDATE en un cursor de sólo reenvío crea un cursor actualizable, de bloqueo de simultaneidad y no desplazable. Orientaciones de captación soportadas Se da soporte a todas las orientaciones de captación de ODBC mediante las interfaces SQLFetchScroll o SQLExtendedFetch. Actualización del cursor controlado por conjunto de claves Un cursor controlado por conjunto de claves es un cursor actualizable. El controlador de CLI añade la cláusula FOR UPDATE a la consulta, excepto cuando se emite la consulta como consulta SELECT ... FOR READ ONLY o si la cláusula FOR UPDATE ya existe. El cursor controlado por conjunto de claves implementado en DB2 para OS/390 es un cursor de simultaneidad de valores. Un cursor de simultaneidad de valores ocasiona el bloqueo optimista, en el que no se mantienen los bloqueos hasta que se intenta llevar a cabo una actualización o supresión. Cuando se intenta realizar una actualización o supresión, el servidor de bases de datos compara los valores anteriores que la aplicación ha recuperado con los valores actuales de la tabla subyacente. Si los valores coinciden, la actualización o supresión es satisfactoria. Si los valores no coinciden, la operación es anómala. Si se produce una anomalía, la aplicación deberá consultar de nuevo los valores y volver a emitir la actualización o supresión si todavía es aplicable. Una aplicación puede actualizar un cursor controlado por conjunto de claves de dos formas: * Emita UPDATE WHERE CURRENT OF "" o DELETE WHERE CURRENT OF "" utilizando SQLPrepare() con SQLExecute() o SQLExecDirect(). * Utilice SQLSetPos() o SQLBulkOperations() para actualizar, suprimir o añadir una fila al conjunto de resultados. Nota: Las filas añadidas a un resultado establecidas por medio de SQLSetPos() o SQLBulkOperations() se insertan en la tabla del servidor, pero no se añaden al conjunto de resultados del servidor. Por lo tanto, estas filas no son actualizables ni son sensibles a los cambios efectuados por otras transacciones. Las filas insertadas parecerán, sin embargo, formar parte del conjunto de resultados, ya que se almacenan en antememoria en el cliente. Los activadores que se apliquen a las filas insertadas aparecerán ante la aplicación como si no se hubiesen aplicado. Para hacer que las filas insertadas sean actualizables, sensibles y para ver el resultado de los activadores aplicables, la aplicación debe emitir la consulta de nuevo para volver a generar el conjunto de resultados. Resolución de problemas para aplicaciones creadas antes del soporte al cursor desplazable Puesto que el soporte a cursores desplazables es nuevo, algunas aplicaciones ODBC que funcionaban con releases anteriores de UDB para OS/390 o UDB para Unix, Windows, y OS/2 pueden encontrar cambios de comportamiento de rendimiento. Esto sucede debido a que antes de que se diese soporte a los cursores desplazables, las aplicaciones que solicitaban un cursor desplazable recibían un cursor de sólo reenvío. Para restaurar el comportamiento anterior de una aplicación de antes del soporte a cursores desplazables, establezca la siguientes palabras clave de configuración en el archivo db2cli.ini: Tabla 24. Valores de palabras clave de configuración que restauran el comportamiento de una aplicación anterior al soporte a cursores desplazables Valor de palabra clave de Descripción configuración PATCH2=6 Devuelve un mensaje que indica que no se da soporte a los cursores desplazables (tanto controlados por conjunto de claves como estáticos). CLI degrada automáticamente cualquier petición de cursor desplazable a cursor de sólo reenvío. DisableKeysetCursor=1 Inhabilita los cursores desplazables controlados por conjunto de claves del extremo del servidor y del extremo del cliente. Esto puede utilizarse para forzar al controlador CLI a dar a la aplicación un cursor estático cuando se solicita un cursor controlado por conjunto de claves. UseServerKeysetCursor=0 Inhabilita el cursor controlado por conjunto de claves del extremo del servidor para aplicaciones que utilizan la biblioteca de cursores controlados por conjunto de claves del extremo del cliente para simular un cursor controlado por conjunto de claves. Utilice esta opción únicamente cuando aparezcan problemas con el cursor controlado por conjunto de claves del extremo del servidor, puesto que el cursor del extremo del cliente asume una gran cantidad de actividad general y, normalmente, tendrá un rendimiento menor que un cursor del extremo del servidor. 36.5.3 Utilización de SQL compuesto Falta la nota siguiente en el manual: Cualquier sentencia SQL que se pueda preparar dinámicamente, que no sea una consulta, se puede ejecutar como una sentencia dentro de una sentencia compuesta. Nota: Dentro de Atomic Compound SQL, tampoco están permitidas las sentencias SQL savepoint, release savepoint ni rollback to savepoint. Y, a la inversa, no está permitido Atomic Compound SQL en savepoint. 36.5.4 Utilización de procedimientos almacenados 36.5.4.1 Escritura de un procedimiento almacenado en CLI A continuación se proporciona una limitación no documentada para los procedimientos almacenados de CLI: Si está realizando llamadas a varios procedimientos almacenados de CLI la aplicación debe cerrar los cursores abiertos desde un procedimiento almacenado antes de llamar al siguiente procedimiento almacenado. Más específicamente, debe cerrarse el primer conjunto de cursores abiertos antes de que el siguiente procedimiento almacenado intente abrir un cursor. 36.5.4.2 Procedimientos almacenados de CLI y vinculación automática Lo siguiente complementa la información del manual: El controlador de CLI/ODBC normalmente vinculará automáticamente los paquetes de CLI la primera vez que una aplicación CLI/ODBC ejecute SQL en la base de datos, siempre que el usuario tenga el privilegio o autorización adecuados. La vinculación automática de los paquetes de CLI no puede realizarse desde el interior de un procedimiento almacenado y, por lo tanto, no se realizará si lo primero que hace una aplicación es llamar a un procedimiento almacenado de CLI. Antes de ejecutar una aplicación de CLI que llame a un procedimiento almacenado de CLI en una base de datos de DB2 nueva, debe vincular los paquetes de CLI una vez con este mandato: UNIX db2 bind /@db2cli.lst blocking all Windows y OS/2 db2bind "%DB2PATH%\bnd\@db2cli.lst" blocking El enfoque recomendado consiste en vincular siempre estos paquetes cuando se crea la base datos para evitar la vinculación automática en tiempo de ejecución. La vinculación automática puede fallar si el usuario no tiene el privilegio o si otra aplicación intenta realizar la vinculación automática al mismo tiempo. ------------------------------------------------------------------------ 36.6 Capítulo 4. Configuración de CLI/ODBC y ejecución de aplicaciones de ejemplo 36.6.1 Palabras clave de configuración Haga caso omiso del último párrafo de la palabra clave CURRENTFUNCTIONPATH. La información correcta es la siguiente: Esta palabra clave se utiliza como parte del proceso para resolver referencias a procedimientos almacenados y de función sin calificar que pueden haberse definido en un nombre de esquema distinto del esquema de usuario actual. El orden de los nombres de esquema determina el orden en que se resolverán los nombres de función y de procedimiento. Para obtener más información sobre resolución de procedimientos y funciones, consulte el manual Consulta de SQL. ------------------------------------------------------------------------ 36.7 Capítulo 5. Funciones de CLI de DB2 36.7.1 SQLBindFileToParam - Vincular referencia de archivo LOB a parámetro de LOB El último parámetro - IndicatorValue - de la función de CLI SQLBindFileToParam() se documenta actualmente como "salida (diferida)". Debe ser "entrada (diferida)". 36.7.2 SQLNextResult - Asociar el conjunto de resultados siguiente con otro descriptor de contexto de sentencias Debería añadirse el texto siguiente al Capítulo 5, "Funciones CLI de DB2": 36.7.2.1 Objetivo Especificación: DB2 CLI 7.x 36.7.2.2 Sintaxis SQLRETURN SQLNextResult (SQLHSTMT StatementHandle1 SQLHSTMT StatementHandle2); 36.7.2.3 Argumentos de función Tabla 25. Argumentos de SQLNextResult Tipo de datosArgumento UtilizaciónDescripción SQLHSTMT StatementHandle entrada Descriptor de contexto de sentencias. SQLHSTMT StatementHandle entrada Descriptor de contexto de sentencias. 36.7.2.4 Utilización Un procedimiento almacenado devuelve varios conjuntos de resultados dejando uno o más cursores abiertos después de salir. Al primer conjunto de resultados se accede siempre utilizando el descriptor de contexto de sentencias que llamó al procedimiento almacenado. Si se devuelven varios conjuntos de resultados, puede utilizarse SQLMoreResults() o SQLNextResult() para describir y captar el conjunto de resultados. SQLMoreResults() se utiliza para cerrar el cursor para el primer conjunto de resultados y permitir que se procese el conjunto de resultados siguiente, en tanto que SQLNextResult() desplaza el siguiente conjunto de resultados a StatementHandle2, sin cerrar el cursor en StatementHandle1. Ambas funciones devuelven SQL_NO_DATA_FOUND si no hay conjuntos de resultados que haya que captar. La utilización de SQLNextResult() permite el proceso de los conjuntos de resultados en el orden que sea una vez se hayan transferido a otros descriptores de contexto de sentencias. Las llamadas mixtas a SQLMoreResults() y SQLNextResult() se permiten hasta que no haya más cursores (conjuntos de resultados abiertos) en StatementHandle1. Cuando SQLNextResult() devuelve SQL_SUCCESS, el conjunto de resultados siguiente ya no está asociado con StatementHandle1. En su lugar, el conjunto de resultados siguiente se asocia con StatementHandle2, como si una llamada a SQLExecDirect() hubiera acabado de ejecutar satisfactoriamente una consulta sobre StatementHandle2. Por tanto, el cursor puede describirse utilizando SQLNumResultSets(), SQLDescribeCol() o SQLColAttribute(). Una vez se ha llamado a SQLNextResult(), el conjunto de resultados que en este momento está asociado con StatementHandle2 se elimina de la cadena de conjuntos de resultados restantes y no podrá utilizarse de nuevo ni en SQLNextResult() ni en SQLMoreResults(). Esto significa que para 'n' conjuntos de resultados, SQLNextResult() puede llamarse satisfactoriamente la mayoría de las horas 'n-1'. Si SQLFreeStmt() se llama con la opción SQL_CLOSE, o SQLFreeHandle() se llama con HandleType establecido en SQL_HANDLE_STMT, se descartan todos los conjuntos de resultados pendientes sobre este descriptor de contexto de sentencias. SQLNextResult() devuelve SQL_ERROR si StatementHandle2 tiene un cursor abierto o el caso de que StatementHandle1 y StatementHandle2 no estén en la misma conexión. Si se devuelve algún error o aviso, SQLError() debe llamarse siempre en StatementHandle1. Nota: SQLMoreResults() también funciona con una consulta parametrizada con una matriz de valores de parámetros de entrada especificados con SQLParamOptions() y SQLBindParameter(). Sin embargo, SQLNextResult() no da soporte a esta opción. 36.7.2.5 Códigos de retorno * SQL_SUCCESS * SQL_SUCCESS_WITH_INFO * SQL_STILL_EXECUTING * SQL_ERROR * SQL_INVALID_HANDLE * SQL_NO_DATA_FOUND 36.7.2.6 Diagnósticos Tabla 26. Los SQLSTATE de SQLNextResult SQLSTATE Descripción Explicación 40003 Anomalía de enlace de El enlace de comunicaciones entre la 08S01 comunicaciones. aplicación y la fuente de datos ha fallado antes de que se completara la función. 58004 Anomalía de sistema Error de sistema irrecuperable. inesperada. HY001 Anomalía de DB2 CLI no ha podido asignar la memoria asignación de necesaria para dar soporte a la ejecución memoria. o cumplimentación de la función. HY010 Error de secuencia de La función se ha llamado mientras estaba función. en una operación de datos al ejecutar (SQLParamData(), SQLPutData()). StatementHandle2 tiene un cursor abierto asociado al mismo. La función se llamó mientras estaba dentro de una operación BEGIN COMPOUND y END COMPOUND SQL. HY013 Error de manejo de DB2 CLI no ha podido acceder a la memoria memoria inesperado. necesaria para dar soporte a la ejecución o cumplimentación de la función. HYT00 Ha caducado el tiempo El tiempo de espera ha caducado antes de de espera excedido. que la fuente de datos devolviera el conjunto de resultados. Los tiempos de espera excedidos sólo están soportados en sistemas no multitarea como por ejemplo 3.1 y Macintosh System 7. El período de tiempo de espera puede establecerse utilizando el atributo SQL_ATTR_QUERY_TIMEOUT para SQLSetConnectAttr(). 36.7.2.7 Restricciones Para las consultas parametrizadas sólo puede utilizarse SQLMoreResults(). 36.7.2.8 Referencias * "SQLMoreResults - Determinar si hay más conjuntos de resultados" en la página 535 * "Cómo devolver conjuntos de resultados desde procedimientos almacenados" en la página 120 ------------------------------------------------------------------------ 36.8 Apéndice D. Funciones escalares ampliadas 36.8.1 Funciones de fecha y hora En el Apéndice D "Funciones escalares ampliadas", faltan las funciones siguientes en el apartado Funciones de fecha y hora: DAYOFWEEK_ISO( date_exp ) Muestra el día de la semana en date_exp como un valor entero en el rango 1-7, donde 1 representa el lunes. Observe la diferencia entre esta función y la función DAYOFWEEK(), donde 1 representa el domingo. WEEK_ISO( date_exp ) Muestra la semana del daño en date_exp como un valor entero en el rango de 1-53. La semana 1 está definida como la primera semana del año que contenga un jueves. Por lo tanto, Week1 equivale a la primera semana que contiene el 4 de enero, ya que el lunes se considera el primer día de la semana. Observe que WEEK_ISO() difiere de la definición general de WEEK(), que muestra un valor de 54 como máximo. Para la función WEEK(), Semana 1 es la semana que contiene el primer sábado. Esto equivale a la semana que contenga el 1 de enero, aunque la semana sólo contenga un día. DAYOFWEEK_ISO() y WEEK_ISO() están disponibles de forma automática en una base de datos creada en la Versión 7. Si una base de datos se creó antes de la Versión 7, es posible que estas funciones no estén disponibles. Para hacer que las funciones DAYOFWEEK_ISO() y WEEK_ISO() estén disponibles en dicha base de datos, utilice el mandato del sistema db2updb. Para obtener más información sobre db2updb, lea el apartado "Consulta de mandatos" de estas Notas del Release. ------------------------------------------------------------------------ 36.9 Apéndice K. Utilización del recurso de rastreo CLI/ODBC/JDBC de DB2 Se han actualizado estas secciones dentro de este apéndice. Consulte el capítulo "Traces" en el manual Troubleshooting Guide para obtener la información más actual sobre este recurso de rastreo. ------------------------------------------------------------------------ Consulta de mensajes ------------------------------------------------------------------------ 37.1 Obtención de ayuda de mensajes y SQLSTATE La ayuda disponible del procesador de línea de mandatos contiene ayuda nueva y actualizada para mensajes y valores SQLSTATE que no está disponible en el manual Consulta de mensajes. Para visualizar ayuda de mensajes desde el procesador de línea de mandatos, entre el siguiente mensaje en el indicador de mandatos del sistema operativo: db2 "? XXXnnnnn" donde XXX representa el prefijo del mensaje y nnnnn representa el número de mensaje. Por ejemplo, db2 "? SQL30081" muestra ayuda sobre el mensaje SQL30081. Para visualizar texto de SQLSTATE desde el procesador de línea de mandatos, entre el siguiente mandato en el indicador de mandatos del sistema operativo: db2 "? XXXXX" donde XXXXX representa el valor de SQLSTATE. Por ejemplo, db2 "? 428F1" muestra el texto correspondiente a SQLSTATE 428F1. ------------------------------------------------------------------------ 37.2 Cambio de recorrelación de SQLCODE en DB2 Connect La recorrelación de SQLCODE por omisión para DB2 Connect ha cambiado en la Versión 7.2. Cuando una base de datos del sistema principal devuelve el valor de SQLCODE -567, DB2 Connect ahora recorrelaciona el valor de SQLCODE con -551 antes de devolver el valor de SQLCODE al cliente DB2. ------------------------------------------------------------------------ 37.3 Mensajes nuevos y modificados La siguiente lista contiene los números de los mensajes que se han modificado desde que se publicó el manual Consulta de mensajes correspondiente a DB2 Versión 7.1. Si recibe uno de estos mensajes mientras utiliza DB2, recibirá el mensaje correcto actualizado; sin embargo, el mensaje no corresponderá con la información del manual Consulta de mensajes. 37.3.1 Mensajes de la Interfaz de nivel de llamadas (CLI) CLI0645E CLI0646E CLI0647E 37.3.2 Mensajes de DB2 DB21086I DB210060E DB210061E DB210062E DB210113E DB210114E DB210115E DB210116E DB210117E DB210118E DB210120E DB210121E DB210200I DB210201I 37.3.3 Mensajes de DBI DBI1172E DBI1793W DBI1794E DBI1795E DBI1796W DBI1797I 37.3.4 Mensajes del Centro de depósito de datos (DWC) DWC0000I DWC03504E DWC08900E DWC08901E DWC08902E DWC08903E DWC08904E DWC08907C DWC08908C DWC08909C DWC08910E DWC08911E DWC08912E DWC08913E DWC08914E DWC08915E DWC08917E DWC08919I DWC08930E DWC08931E DWC08932E DWC08933E DWC08934E DWC08935E DWC08936W DWC08937I DWC08938I DWC08939I DWC08940I DWC08941I DWC08960I DWC08961I DWC08962I DWC08963I DWC08964I DWC08965I DWC08966E DWC08967E DWC08968E DWC13239E DWC13300E DWC13301E DWC13302E DWC13304E DWC13603E DWC13700E DWC13701E DWC13702E DWC13703E DWC13705E DWC13706E DWC13707E 37.3.5 Mensajes de SQL SQL0017N SQL0056N SQL0057N SQL0058N SQL0097N SQL0224N SQL0225N SQL0227N SQL0228N SQL0231W SQL0243N SQL0244N SQL0270N SQL0301N SQL0303N SQL0336N SQL0348N SQL0349N SQL0357N SQL0358N SQL0368N SQL0408N SQL0423N SQL0590N SQL0670N SQL0845N SQL0846N SQL1179W SQL1186N SQL1550N SQL1551N SQL1552N SQL1553N SQL1704N SQL2077W SQL2078N SQL2417N SQL2426N SQL2571N SQL2572N SQL2573N SQL2574N SQL2575N SQL2576N SQL4942N SQL5012N SQL6583N SQL20005N SQL20117N SQL20121N SQL20133N SQL20134N SQL20135N SQL20143N SQL20144N SQL20145N SQL20146N SQL20147N SQL20148N SQL20153N SQL21000N ------------------------------------------------------------------------ 37.4 SQLSTATES corregidos Tabla 27. 42630 Una variable SQLSTATE o SQLCODE no es válida en este contexto. 42631 Se debe especificar una expresión en una sentencia RETURN de una función SQL. 42632 Debe haber una sentencia RETURN en una función o método SQL. 428F2 Se debe especificar una expresión entera en una sentencia RETURN de un procedimiento de SQL. 560B7 Para una función INSERT de varias filas, el uso de una expresión de secuencia NEXTVAL debe ser igual para cada fila. ------------------------------------------------------------------------ Consulta de SQL ------------------------------------------------------------------------ 38.1 La Consulta de SQL se proporciona en un archivo PDF El apéndice "Utilización de la biblioteca DB2" de cada manual indica que la Consulta de SQL está disponible en formato PDF en dos volúmenes separados. Esta información no es correcta. Aunque el manual impreso aparece en dos volúmenes y los dos números de formulario correspondientes son correctos, sólo existe un archivo PDF y contiene los dos volúmenes. El nombre de archivo PDF es db2s0x70. ------------------------------------------------------------------------ 38.2 Capítulo 3. Elementos de lenguaje 38.2.1 Convenios de denominación y calificaciones implícitas de nombres de objetos Añada la nota siguiente a este apartado del Capítulo 3: Los nombres siguientes, si se utilizan en el contexto de Procedimientos SQL, están limitados a los caracteres permitidos en un identificador ordinario, aunque los nombres estén delimitados: - nombre-condición - etiqueta - nombre-parámetro - nombre-procedimiento - nombre-variable-SQL - nombre-sentencia 38.2.2 Asignaciones de DATALINK Se ha cambiado un párrafo de esta sección, que ahora es así: Observe que el tamaño de un parámetro de URL o resultado de función es el mismo en la entrada y en la salida, y está limitado por la longitud de la columna DATALINK. Pero en algunos casos, el valor de URL devuelto tiene asociado un símbolo de acceso. En las situaciones en las que esto sea posible, la ubicación de salida debe tener suficiente espacio de almacenamiento para el símbolo de acceso y la longitud de la columna DATALINK. Por tanto, la longitud real del comentario y del URL en su forma totalmente ampliada que se proporciona en la entrada debe estar limitada para que se ajuste al espacio de almacenamiento de salida. Si se excede la longitud restringida, se produce un error. 38.2.3 Expresiones 38.2.3.1 Diagrama de sintaxis El diagrama de sintaxis se ha cambiado a lo siguiente: .-operador-------------------------------------. V | >>----+-----+---+-función----------------------+--+------------>< +- + -+ +-(expresión)------------------+ '- - -' +-constante--------------------+ +-nombre-columna---------------+ +-variable-lenguaje-principal--+ +-registro-especial------------+ +-(selección-completa-escalar)-+ +-duración-etiquetada----------+ +-expresión-case---------------+ +-especificación-cast----------+ +-operación-desreferencia------+ +-función-OLAP-----------------+ +-invocación-método------------+ +-tratamiento-subtipos---------+ '-referencia-secuencia---------' operador (1) |---+-CONCAT------+---------------------------------------------| +- / ---------+ +- * ---------+ +- + ---------+ '- - ---------' Notas: 1. Se puede utilizar | como sinónimo de CONCAT. 38.2.3.2 Funciones de OLAP Lo siguiente representa una corrección a la sección "Funciones de OLAP" del apartado "Expresiones" del Capítulo 3. función-agregación |--función-columna--OVER----------------------------------------> >----(--+---------------------------------+---------------------> '-| cláusula-partición-ventana |--' >----+-------------------------------------------------------------------------+> '-| cláusula-orden-ventana |--+----------------------------------------+--' '-| cláusula-grupo-agregación-ventana |--' >---------------------------------------------------------------| cláusula-orden-ventana .-,-----------------------------------------------------. V .-| opción asc |---. | |---ORDER BY-----expresión-clave-clasificación--+------------------+--+-> '-| opción desc |--' >---------------------------------------------------------------| opción asc .-NULLS LAST--. |---ASC--+-------------+----------------------------------------| '-NULLS FIRST-' opción desc .-NULLS FIRST--. |---DESC--+--------------+--------------------------------------| '-NULLS LAST---' cláusula-grupo-agregación-ventana |---+-ROWS--+---+-| inicio-grupo |-+----------------------------| '-RANGE-' +-| entre-grupo |--+ '-| fin-grupo |----' fin-grupo |---+-UNBOUNDED FOLLOWING-------------+-------------------------| '-constante-sin-signo--FOLLOWING--' En la descripción de cláusula-orden-ventana: NULLS FIRST El orden de la ventana considera los valores nulos antes que todos los valores no nulos en el orden de clasificación. NULLS LAST El orden de la ventana considera los valores nulos después de todos los valores no nulos en el orden de clasificación. En la descripción de cláusula-grupo-agregación-ventana: cláusula-grupo-agregación-ventana El grupo de agregación de una fila R es un conjunto de filas, definido en relación a R en la ordenación de las filas de la partición de R. Esta cláusula especifica el grupo de agregación. Si no se especifica esta cláusula, el valor por omisión es igual que el de RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW, siempre que se produzca una agregación acumulativa. ROWS Indica que el grupo de agregación se define contando filas. RANGE Indica que el grupo de agregación se define mediante un desplazamiento desde una clave de clasificación. inicio-grupo Especifica el punto inicial del grupo de agregación. El final del grupo de agregación es la fila actual. El hecho de especificar la cláusula de inicio-grupo es equivalente a una cláusula entre-grupo con formato "BETWEEN inicio-grupo AND CURRENT ROW". entre-grupo Especifica el inicio y el fin del grupo de agregación en base a ROWS o RANGE. fin-grupo Especifica el punto final del grupo de agregación. El inicio del grupo de agregación es la fila actual. El hecho de especificar la cláusula fin-grupo es equivalente a una cláusula entre-grupo con formato "BETWEEN CURRENT ROW AND fin-grupo". UNBOUNDED PRECEDING Incluye la partición completa que precede a la fila actual. Se puede especificar con ROWS o RANGE. Asimismo, se puede especificar con varias expresiones-clave-clasificación en la cláusula-orden-ventana. UNBOUNDED FOLLOWING Incluye la partición completa que sigue a la fila actual. Se puede especificar con ROWS o RANGE. Asimismo, se puede especificar con varias expresiones-clave-clasificación en la cláusula-orden-ventana. CURRENT ROW Especifica el inicio o el final del grupo de agregación en base a la fila actual. Si se especifica ROWS, la fila actual es el límite del grupo de agregación. Si se especifica RANGE, el límite del grupo de agregación incluye el conjunto de filas que tienen para las expresiones-clave-clasificación valores iguales a los de la fila actual. Esta cláusula no se puede especificar en vinculación2-grupo si vinculación1-grupo especifica valor FOLLOWING. valor PRECEDING Especifica el rango o número de filas que preceden a la fila actual. Si se especifica ROWS, valor es un entero positivo que indica un número de filas. Si se especifica RANGE, el tipo de datos de valor debe ser comparable al tipo de la expresión-clave-clasificación de la cláusula-orden-ventana. Sólo puede haber una expresión-clave-clasificación y el tipo de datos de la misma debe permitir las restas. Esta cláusula no se puede especificar en vinculación2-grupo si vinculación1-grupo es CURRENT ROW o valor FOLLOWING. valor FOLLOWING Especifica el rango o número de filas que siguen a la fila actual. Si se especifica ROWS, valor es un entero positivo que indica un número de filas. Si se especifica RANGE, el tipo de datos de valor debe ser comparable al tipo de la expresión-clave-clasificación de la cláusula-orden-ventana. Sólo puede haber una expresión-clave-clasificación y el tipo de datos de la misma debe permitir las adiciones. 38.2.3.3 Referencia a secuencia La información siguiente se debe añadir al final de la sección "Expresiones" (a continuación de "Tratamiento de subtipos"). referencia-secuencia |--+-| expresión-nextval |-+------------------------------------| '-| expresión-prevval |-' expresión-nextval |---NEXTVAL FOR--nombre-secuencia-------------------------------| expresión-prevval |---PREVVAL FOR--nombre-secuencia-------------------------------| NEXTVAL FOR nombre-secuencia La expresión NEXTVAL devuelve el valor siguiente de la secuencia especificada por nombre-secuencia. PREVVAL FOR nombre-secuencia La expresión PREVVAL devuelve el último valor generado en una sentencia anterior, para la secuencia especificada, dentro de la sesión actual. Este valor se puede referenciar repetidamente utilizando expresiones PREVVAL que especifiquen el nombre de la secuencia. Pueden existir varias expresiones PREVVAL que especifiquen el mismo nombre de secuencia dentro de una sentencia individual y todas ellas devuelven el mismo valor. Sólo se puede utilizar una expresión PREVVAL si previamente se ha especificado una expresión NEXTVAL con el mismo nombre de secuencia en la sesión de usuario actual (en la transacción actual o en una anterior)(SQLSTATE 51035). Nota: o Cuando una expresión NEXTVAL especifica el nombre de la secuencia, se genera una nuevo número de secuencia. Pero, si existen varias expresiones NEXTVAL que especifican el mismo nombre de secuencia dentro de una consulta, el contador de la secuencia se incrementa una sola vez para cada fila del resultado. o Se puede referenciar repetidamente el valor generado más recientemente para una secuencia, utilizando una expresión PREVVAL que especifique el nombre de la secuencia. Pueden existir varias expresiones PREVVAL que especifiquen el mismo nombre de secuencia dentro de una sentencia individual. o Se puede utilizar el mismo número de secuencia como valor de clave exclusivo en dos tablas diferentes, referenciando el número de secuencia con una expresión NEXTVAL para la primera fila (esto genera el valor de secuencia) y una expresión PREVVAL para las demás filas (esta expresión PREVVAL referencia el valor de secuencia generado por la expresión NEXTVAL en la expresión anterior), tal como se muestra a continuación: INSERT INTO order(orderno, custno) VALUES (NEXTVAL FOR order_seq, 123456); INSERT INTO line_item (orderno, partno, quantity) VALUES (PREVVAL FOR order_seq, 987654, 1); o Ejemplos de dónde se pueden especificar las expresiones NEXTVAL y PREVVAL: + Sentencia-select o sentencia SELECT INTO: dentro de la cláusula-select, siempre que la sentencia no contenga las palabras clave DISTINCT, UNION, INTERSECT ni EXCEPT, ni las cláusulas GROUP BY ni ORDER BY. + Sentencia INSERT: dentro de una cláusula VALUES + Sentencia INSERT: dentro de la cláusula-select de la selección completa + Sentencia UPDATE: dentro de la cláusula-select de la selección completa de una expresión de la cláusula SET (en una sentencia UPDATE de búsqueda o de posición) + Sentencia VALUES INTO: dentro de la cláusula-select de la selección completa de una expresión o Ejemplos de dónde no se pueden especificar las expresiones NEXTVAL y PREVVAL (SQLSTATE 428F9): + Condición de unión de una unión exterior completa + Valor DEFAULT para una columna en una sentencia CREATE TABLE o ALTER TABLE + Definición de columna generada en una sentencia CREATE TABLE o ALTER TABLE + Condición de una restricción CHECK + Sentencia CREATE TRIGGER + Sentencia CREATE VIEW + Sentencia CREATE METHOD + Sentencia CREATE FUNCTION. o Además, no se puede especificar una expresión NEXTVAL en estos lugares (SQLSTATE 428F9): + Expresión CASE + Lista de parámetros de una función de agregación + Subconsulta. + Sentencia SELECT que contiene un operador DISTINCT + Condición de unión de una unión + Cláusula GROUP BY de una sentencia SELECT + Sentencia SELECT que está combinada con otra sentencia SELECT utilizando el operador de conjuntos UNION, INTERSECT o EXCEPT + Expresión de tabla anidada + Lista de parámetros de una función de tabla + Cláusula WHERE de una sentencia SELECT, DELETE o UPDATE + Cláusula ORDER BY + Lista de parámetros de una sentencia CALL. o Cuando se genera un valor para una secuencia, se utiliza ese valor y se genera uno nuevo la próxima vez que se necesite uno. Esto es válido aunque falle la sentencia donde reside la expresión NEXTVAL. o Si una sentencia INSERT contiene una expresión NEXTVAL en la lista VALUES de la columna, y se produce un error durante la ejecución de INSERT (por ejemplo, un problema al generar el valor siguiente de la secuencia o un problema en un valor para otra columna), se produce un error de inserción y el valor generado para la secuencia se considera utilizado. En algunos casos, es posible tener éxito al volver a emitir la misma sentencia INSERT. Por ejemplo, suponga un error que es el resultado de la existencia de un índice de unicidad para la columna sobre la que se utiliza NEXTVAL y el valor de secuencia generado ya existe en el índice. Es posible que el siguiente valor generado para la secuencia sea un valor que no exista en el índice, y por tanto la inserción subsiguiente se realice con éxito. o Cuando se genera un valor para una secuencia, si se sobrepasa el valor máximo de la secuencia (o el valor mínimo en el caso de una secuencia descendente) y no está permitida la generación cíclica de valores, entonces se produce un error (SQLSTATE 23522). En este caso, el usuario puede modificar la secuencia (mediante la sentencia ALTER) y ampliar el rango de valores aceptables, o habilitar la generación cíclica de valores para la secuencia, o bien eliminar (DROP) la secuencia y crear (CREATE) una nueva con un otro tipo de datos que tenga un rango mayor de valores. Por ejemplo, una secuencia se puede haber definido con el tipo de datos SMALLINT, y con el transcurso del tiempo la secuencia se queda sin valores asignables. Para redefinir la secuencia como INTEGER, debe eliminar la secuencia y volver a crearla con la nueva definición. o Una referencia a PREVVAL en una sentencia select de un cursor hace referencia a un valor generado para la secuencia especificada antes de abrir el cursor. Sin embargo, el hecho de cerrar el cursor puede afectar a los valores que devuelve PREVVAL para la secuencia especificada en siguientes sentencias, e incluso para la misma sentencia en el caso de que se vuelva a abrir el cursor. Este sería el caso si la sentencia select del cursor incluyera una referencia a NEXTVAL para el mismo nombre de secuencia. Ejemplos: En estos ejemplos se supone que existe una tabla llamada "order" y que se crea un secuencia llamada "order_seq" del siguiente modo: CREATE SEQUENCE order_seq START WITH 1 INCREMENT BY 1 NOMAXVALUE NOCYCLE CACHE 24 * He aquí algunos ejemplos de cómo generar un valor para la secuencia "order_seq", creada anteriormente, utilizando una expresión NEXTVAL: INSERT INTO order(orderno, custno) VALUES (NEXTVAL FOR order_seq, 123456); o bien, UPDATE order SET orderno = NEXTVAL FOR order_seq WHERE custno = 123456; o bien, VALUES NEXTVAL FOR order_seq INTO :hv_seq; ------------------------------------------------------------------------ 38.3 Capítulo 4. Funciones 38.3.1 Cómo habilitar las nuevas funciones y procedimientos Los FixPaks de la Versión 7 ofrecen nuevas funciones escalares incorporadas de SQL. Consulte las actualizaciones del manual Consulta de SQL para obtener una descripción de estas nuevas funciones. Las nuevas funciones no se habilitan automáticamente en cada base de datos cuando el código del servidor de bases de datos se actualiza al nuevo nivel de servicio. Para habilitar estas funciones nuevas, el administrador del sistema debe emitir el mandato db2updv7, especificando cada una de las bases de datos en el servidor. Este mandato crea una entrada en la base de datos que asegura que los objetos de la base de datos que se crean antes de ejecutar este mandato utilicen las signaturas de función que se correspondan con las signaturas de función nuevas. Para obtener más información sobre cómo habilitar las funciones de MQSeries (las definidas en el esquema MQDB2), consulte MQSeries. 38.3.2 Funciones escalares 38.3.2.1 ABS o ABSVAL >>-+-ABS----+--(expresión)------------------------------------->< '-ABSVAL-' El esquema es SYSIBM. Esta función apareció por primera vez en el FixPack 2 de la Versión 7.1. Nota: La versión SYSFUN de la función ABS (o ABSVAL) continúa estando disponible. Devuelve el valor absoluto del argumento. El argumento es una expresión que devuelve un valor de cualquier tipo de datos numérico incorporado. El resultado de la función tiene el mismo tipo de datos y atributo de longitud que el argumento. Si el argumento puede ser nulo o la base de datos se configura con DFT_SQLMATHWARN establecido en sí, el resultado puede ser nulo; si el argumento es nulo, el resultado es el valor nulo. Por ejemplo: ABS(-51234) devuelve un valor entero igual 51234. 38.3.2.2 DECRYPT_BIN y DECRYPT_CHAR >>-+-DECRYPT_BIN--+---------------------------------------------> '-DECRYPT_CHAR-' >----(--datos-cifrados--+---------------------------------+---)-->< '-,--expresión-cadena-contraseña--' El esquema es SYSIBM. Esta función apareció por primera vez en el FixPack 3 de la Versión 7.1. Las funciones DECRYPT_BIN y DECRYPT_CHAR devuelven un valor que es el resultado de descifrar los datos-cifrados. La contraseña utilizada para el descifrado es el valor expresión-cadena-contraseña o el valor ENCRYPTION PASSWORD (que se asignó utilizando la sentencia SET ENCRYPTION PASSWORD). Las funciones DECRYPT_BIN y DECRYPT_CHAR sólo pueden descifrar valores que se cifraron mediante la función ENCRYPT (SQLSTATE 428FE). datos-cifrados Es una expresión que devuelve un valor CHAR FOR BIT DATA o VARCHAR FOR BIT DATA, que es una cadena de datos cifrada completa que se cifró utilizando la función ENCRYPT. expresión-cadena-contraseña Es una expresión que devuelve un valor CHAR o VARCHAR con un mínimo de 6 bytes y un máximo de 127 bytes (SQLSTATE 428FC). Esta contraseña debe ser la misma que la utilizada para cifrar los datos, de lo contrario el descifrado será erróneo (SQLSTATE 428FD). Si valor de la contraseña argumento es nulo o no se proporciona, los datos se cifran utilizando el valor ENCRYPTION PASSWORD, el cual se debe haber establecido para la sesión (SQLSTATE 51039). El resultado de la función DECRYPT_BIN es VARCHAR FOR BIT DATA. El resultado de la función DECRYPT_CHAR es VARCHAR. Si los datos-cifrados incluyen un recordatorio de contraseña, la función no devuelve el recordatorio. El atributo de longitud del resultado es igual al atributo de longitud del tipo de datos de los datos-cifrados menos 8 bytes. La longitud real del valor devuelto por la función coincidirá con la longitud de la cadena original que se cifró. Si los datos-cifrados incluyen bytes más allá de la cadena cifrada, la función no devuelve estos bytes. Si el primer argumento puede ser nulo, el resultado puede ser nulo; si el primer argumento es nulo, el resultado es el valor nulo. Si los datos se descifran en un sistema diferente utilizando una página de códigos distinta de la utilizada en el cifrado, puede producirse una expansión al convertir el valor descifrado a la página de códigos de la base de datos. En estos casos, los datos-cifrados se deben convertir a una cadena VARCHAR con un número mayor de bytes. Vea también 38.3.2.3, ENCRYPT y 38.3.2.4, GETHINT para obtener más información sobre el uso de esta función. Ejemplos: Ejemplo 1: Este ejemplo utiliza el valor ENCRYPTION PASSWORD para contener la contraseña de cifrado. SET ENCRYPTION PASSWORD = 'Ben123'; INSERT INTO EMP (SSN) VALUES ENCRYPT('289-46-8832'); SELECT DECRYPT_CHAR(SSN) FROM SSN; El valor devuelto es '289-46-8832'. Ejemplo 2: Este ejemplo devuelve explícitamente la contraseña de cifrado. SELECT DECRYPT_CHAR(SSN,'Ben123') FROM SSN; El valor devuelto es '289-46-8832'. 38.3.2.3 ENCRYPT >>-ENCRYPT------------------------------------------------------> >----(--expresión-cadena-datos--+------------------------------------------------------------------------+---)-> '-,--expresión-cadena-contraseña--+-----------------------------------+--' '-,--expresión-cadena-recordatorio--' >-------------------------------------------------------------->< El esquema es SYSIBM. Esta función apareció por primera vez en el FixPack 3 de la Versión 7.1. La función ENCRYPT devuelve un valor que es el resultado de cifrar expresión-cadena-datos. La contraseña utilizada para el cifrado es el valor expresión-cadena-contraseña o el valor ENCRYPTION PASSWORD (que se asignó utilizando la sentencia SET ENCRYPTION PASSWORD). expresión-cadena-datos Es una expresión que devuelve un valor CHAR o VARCHAR para cifrar. El atributo de longitud correspondiente al tipo de datos de expresión-cadena-datos está limitado a 32663 si no se especifica el argumento expresión-cadena-recordatorio y a 32631 si se especifica el argumento expresión-cadena-recordatorio (SQLSTATE 42815). expresión-cadena-contraseña Es una expresión que devuelve un valor CHAR o VARCHAR con un mínimo de 6 bytes y un máximo de 127 bytes (SQLSTATE 428FC). El valor representa la contraseña utilizada para cifrar la expresión-cadena-datos. Si valor de la contraseña argumento es nulo o no se proporciona, los datos se cifran utilizando el valor ENCRYPTION PASSWORD, el cual se debe haber establecido para la sesión (SQLSTATE 51039). expresión-cadena-recordatorio Es una expresión que devuelve un valor CHAR o VARCHAR, con un máximo de 32 bytes, que ayuda al usuario a recordar la contraseña (por ejemplo, 'Océano' como recordatorio de 'Pacífico'). Si se proporciona un recordatorio, se intercala en el resultado y se puede recuperar utilizando la función GETHINT. Si este argumento es nulo o no se proporciona, no se incluirá ningún recordatorio en el resultado. El tipo de datos resultante de la función es VARCHAR FOR BIT DATA. El atributo de longitud del resultado es: * Si se especifica el parámetro opcional de recordatorio: el atributo de longitud de los datos no cifrados + 8 bytes + número de bytes hasta el siguiente múltiplo de 8 + 32 bytes para la longitud del recordatorio. * Si no se especifica el parámetro de recordatorio: el atributo de longitud de los datos no cifrados + 8 bytes + número de bytes hasta el siguiente múltiplo de 8. Si el primer argumento puede ser nulo, el resultado puede ser nulo; si el primer argumento es nulo, el resultado es el valor nulo. Observe que el resultado cifrado es más largo que el valor expresión-cadena-datos. Por lo tanto, cuando asigne valores cifrados, compruebe que el destino esté definido con el suficiente tamaño para contener el valor cifrado completo. Notas: * Algoritmo de cifrado: El algoritmo interno de cifrado que se utiliza es el cifrado por bloques RC2 con relleno; la clave secreta de 128 bits se obtiene a partir de la contraseña utilizando una conversión de mensaje MD2. * Contraseñas y datos de cifrado: Corresponde al usuario realizar la gestión de las contraseñas. Una vez cifrados los datos, sólo se pueden descifrar mediante la contraseña utilizada para cifrarlos (SQLSTATE 428FD). Tenga cuidado al utilizar variables CHAR para definir contraseñas, pues pueden estar rellenadas con espacios en blanco. El resultado cifrado puede contener un terminador nulo y otros caracteres no imprimibles. * Definición de columnas de tabla: Cuando defina columnas y tipos para contener datos cifrados, calcule siempre el atributo de longitud de la manera siguiente. Para datos cifrados sin recordatorio: Longitud máxima de datos no cifrados + 8 bytes + número de bytes hasta siguiente múltiplo de 8 = longitud de la columna de datos cifrados. Para datos cifrados con recordatorio intercalado: Longitud máxima de datos no cifrados + 8 bytes + número de bytes hasta siguiente múltiplo de 8 + 32 bytes para recordatorio = longitud de la columna de datos cifrados. Cualquier asignación o conversión a una longitud más corta que la longitud de datos recomendada puede originar un descifrado anómalo en el futuro y la pérdida de datos. Los espacios en blanco son datos cifrados válidos que se pueden truncar cuando se guardan en una columna que es demasiado corta. Ejemplos del cálculo de la longitud de columnas Longitud máxima de datos no cifrados 6 bytes 8 bytes 8 bytes Número de bytes hasta siguiente múltiplo de 8 2 bytes --------- Longitud de la columna de datos cifrados 16 bytes Longitud máxima de datos no cifrados 32 bytes 8 bytes 8 bytes Número de bytes hasta siguiente múltiplo de 8 8 bytes --------- Longitud de la columna de datos cifrados 48 bytes * Gestión de los datos cifrados: Los datos cifrados sólo se pueden descifrar en servidores que dan soporte a las funciones de descifrado correspondientes a la función ENCRYPT. Por tanto, la duplicación de columnas que contienen datos cifrados sólo debe hacerse en servidores que dan soporte a la función DECRYPT_BIN o DECRYPT_CHAR. Vea también 38.3.2.2, DECRYPT_BIN y DECRYPT_CHAR y 38.3.2.4, GETHINT para obtener más información sobre el uso de esta función. Ejemplos: Ejemplo 1: Este ejemplo utiliza el valor ENCRYPTION PASSWORD para contener la contraseña de cifrado. SET ENCRYPTION PASSWORD = 'Ben123'; INSERT INTO EMP (SSN) VALUES ENCRYPT('289-46-8832'); Ejemplo 2: Este ejemplo devuelve explícitamente la contraseña de cifrado. INSERT INTO EMP (SSN) VALUES ENCRYPT('289-46-8832','Ben123',''); Ejemplo 3: En este ejemplo se guarda el recordatorio 'Océano' para ayudar al usuario a recordar la contraseña de cifrado 'Pacífico'. INSERT INTO EMP (SSN) VALUES ENCRYPT('289-46-8832','Pacífico','Océano'); 38.3.2.4 GETHINT >>-GETHINT--(--datos-cifrados--)------------------------------->< El esquema es SYSIBM. Esta función apareció por primera vez en el FixPack 3 de la Versión 7.1. La función GETHINT devuelve el recordatorio de contraseña si se encuentra uno en los datos-cifrados. Un recordatorio de contraseña es una expresión que ayuda al usuario a recordar la contraseña (por ejemplo, 'Océano' como recordatorio de 'Pacífico'). datos-cifrados Es una expresión que devuelve un valor CHAR FOR BIT DATA o VARCHAR FOR BIT DATA, que es una cadena de datos cifrada completa que se cifró utilizando la función ENCRYPT (SQLSTATE 428FE). El resultado de la función es VARCHAR(32). El resultado puede ser nulo; si la función ENCRYPT no añadió un recordatorio de contraseña a los datos-cifrados o si el primer argumento es nulo, el resultado es el valor nulo. Vea también 38.3.2.2, DECRYPT_BIN y DECRYPT_CHAR y 38.3.2.3, ENCRYPT para obtener más información sobre el uso de esta función. Ejemplo: En este ejemplo se guarda el recordatorio 'Océano' para ayudar al usuario a recordar la contraseña de cifrado 'Pacífico'. INSERT INTO EMP (SSN) VALUES ENCRYPT('289-46-8832', 'Pacífico','Océano'); SELECT GETHINT(SSN) FROM EMP; El valor devuelto es 'Océano'. 38.3.2.5 IDENTITY_VAL_LOCAL >>-IDENTITY_VAL_LOCAL--(--)------------------------------------>< El esquema es SYSIBM. Este procedimiento apareció por primera vez en el FixPack 3 de la Versión 7.1. La función IDENTITY_VAL_LOCAL es una función no determinista que devuelve el valor asignado más recientemente a una columna de identidad, en la que la asignación se produjo como resultado de una sentencia INSERT de una sola fila y una cláusula VALUES. Esta función no tiene parámetros de entrada. El resultado es un valor DECIMAL(31,0), para cualquiera que sea el tipo de datos real de la correspondiente columna de identidad. El valor devuelto por la función es el valor asignado a la columna de identidad de la tabla identificada en la sentencia INSERT más reciente para una sola fila. La sentencia INSERT se debe crear utilizando una cláusula VALUES para una tabla que contiene una columna de identidad. Además, la sentencia INSERT se debe emitir al mismo nivel 1 (es decir, que el valor está disponible localmente al nivel en que se ha asignado, hasta que lo sustituye el siguiente valor asignado). El valor asignado puede ser un valor proporcionado por el usuario (si la columna de identidad está definida como GENERATED BY DEFAULT), o un valor de identidad generado por DB2. La función devuelve un valor nulo en las situaciones siguientes: * Cuando no se ha emitido, al nivel de proceso actual, una sentencia INSERT para una sola fila y con una cláusula VALUES para una tabla que contiene una columna de identidad. * Cuando se ha producido una confirmación (COMMIT) o retrotracción (ROLLBACK) de una unidad de trabajo desde la sentencia INSERT más reciente que asignó un valor 2 . El resultado de la función no se ve afectado por lo siguiente: * Una sentencia INSERT para una sola fila con una cláusula VALUES para una tabla que no contiene una columna de identidad. * Una sentencia INSERT para varias filas con una cláusula VALUES. * Una sentencia INSERT con una selección completa. * Una sentencia ROLLBACK TO SAVEPOINT. Notas: * Las expresiones de la cláusula VALUES de una sentencia INSERT se evalúan antes que las asignaciones de las columnas de destino de la sentencia INSERT. Por tanto, cuando se invoca una función IDENTITY_VAL_LOCAL situada dentro de la cláusula VALUES de una sentencia INSERT, la invocación utiliza el valor asignado más recientemente a una columna de identidad por una sentencia INSERT anterior. La función devuelve un valor nulo si no se ha ejecutado, al mismo nivel que la función IDENTITY_VAL_LOCAL, ninguna sentencia INSERT anterior para una sola fila con una cláusula VALUES sobre una tabla que contiene una columna de identidad. * El valor de la columna de identidad de la tabla para la que se ha definido el desencadenante se puede determinar dentro de un desencadenante, haciendo referencia a la variable de transición de desencadenante correspondiente a la columna de identidad. * El resultado de invocar la función IDENTITY_VAL_LOCAL desde dentro de la condición activadora de un desencadenante de inserción es un valor nulo. * Pueden existir varios desencadenantes de inserción anteriores o posteriores para una tabla. En este caso, cada desencadenante se procesa por separado, y los valores de identidad asignados por una acción activada no son accesibles a otras acciones activadas utilizando la función IDENTITY_VAL_LOCAL. Esto se cumple aunque las diversas acciones activadas se definan conceptualmente al mismo nivel. * Generalmente no es recomendable utilizar la función IDENTITY_VAL_LOCAL en el cuerpo de un desencadenante anterior de inserción. El resultado de invocar la función IDENTITY_VAL_LOCAL desde dentro de la acción activada de un desencadenante anterior de inserción es un valor nulo. El valor de la columna de identidad de la tabla para la que se ha definido el desencadenante no se puede determinar invocando la función IDENTITY_VAL_LOCAL dentro de la acción activada de un desencadenante anterior de inserción. Si embargo, el valor de la columna de identidad se puede obtener en la acción activada, haciendo referencia a la variable de transición de desencadenante correspondiente a la columna de identidad. * El resultado de invocar la función IDENTITY_VAL_LOCAL desde dentro de la acción activada de un desencadenante posterior de inserción 3 es el valor asignado a una columna de identidad de la tabla identificada en la sentencia INSERT (para cada fila) más reciente invocada en la misma acción activada que tenía una cláusula VALUES para una tabla con una columna de identidad. La función devuelve un valor nulo si no se ha ejecutado, dentro de la misma acción activada y antes de invocar la función IDENTITY_VAL_LOCAL, una sentencia INSERT para una fila con una cláusula VALUES sobre una tabla que contiene una columna identidad. * Debido a que los resultados de la función IDENTITY_VAL_LOCAL no son deterministas, el resultado de invocar la función IDENTITY_VAL_LOCAL dentro de la sentencia SELECT de un cursor puede variar para cada sentencia FETCH. * El valor asignado es el valor asignado realmente a la columna de identidad (es decir, el valor que se devolvería en una sentencia SELECT posterior). Este valor no es necesariamente el valor proporcionado en la cláusula VALUES de la sentencia INSERT, ni un valor generado por DB2. El valor asignado puede ser un valor especificado en una sentencia "SET variable de transición", dentro del cuerpo de un desencadenante anterior de inserción, para una variable de transición de desencadenante asociada a la columna de identidad. * El valor devuelto por la función es imprevisible después de una INSERT de una sola fila con una cláusula VALUES que ha fallado para una tabla con una columna de identidad. El valor puede ser el valor que se habría devuelto de la función a la que se había invocado anteriormente a la INSERT anómala, o puede ser el valor que se habría asignado si la función INSERT hubiera sido satisfactoria. El valor real devuelto depende del punto en que produce la anomalía y, por lo tanto, es imprevisible. Ejemplos: Ejemplo 1: Establecer la variable IVAR en el valor asignado a la columna de identidad de la tabla EMPLOYEE. Si esta inserción es la primera que se realiza en la tabla EMPLOYEE, IVAR tendrá el valor 1. CREATE TABLE EMPLOYEE (EMPNO INTEGER GENERATED ALWAYS AS IDENTITY, NAME CHAR(30), SALARY DECIMAL(5,2), DEPTNO SMALLINT) Ejemplo 2: Una función IDENTITY_VAL_LOCAL invocada en una sentencia INSERT devuelve el valor asociado a la sentencia INSERT anterior para una sola fila, con una cláusula VALUES para una tabla que tiene una columna de identidad. Supongamos, para este ejemplo, que existen dos tablas, T1 y T2. Ambas, T1 y T2, tienen una columna de identidad llamada C1. DB2 genera una secuencia de valores, que empiezan por 1 para la columna C1 de la tabla T1, y que empiezan por 10 para la columna C1 de la tabla T2. CREATE TABLE T1 (C1 INTEGER GENERATED ALWAYS AS IDENTITY, C2 INTEGER), CREATE TABLE T2 (C1 DECIMAL(15,0) GENERATED BY DEFAULT AS IDENTITY (START WITH 10), C2 INTEGER), INSERT INTO T1 (C2) VALUES (5), INSERT INTO T1 (C2) VALUES (6), SELECT * FROM T1 el resultado sería: C1 C2 ----------- ---------- 1 5 2 6 y esta es la declaración de la función para la variable IVAR: VALUES IDENTITY_VAL_LOCAL() INTO :IVAR En este momento, la función IDENTITY_VAL_LOCAL devolvería el valor 2 en IVAR, pues éste es el valor asignado más recientemente por DB2. La sentencia INSERT siguiente inserta una sola fila en T2, donde la columna C2 obtiene el valor 2 proporcionado por la función IDENTITY_VAL_LOCAL. INSERT INTO T2 (C2) VALUES (IDENTITY_VAL_LOCAL()); SELECT * FROM T2 WHERE C1 = DECIMAL(IDENTITY_VAL_LOCAL(),15,0) el resultado sería: C1 C2 ----------------- ---------- 10. 2 Si se invoca la función IDENTITY_VAL_LOCAL después de esta inserción, se obtiene el valor 10, que es el valor generado por DB2 para la columna C1 de T2. Si se utiliza el anidamiento de funciones con un desencadenante, puede utilizar la función IDENTITY_VAL_LOCAL para recuperar el valor de identidad asignado a un nivel determinado, aunque puede haber valores de identidad asignados a niveles inferiores. Supongamos que existen tres tablas: EMPLOYEE, EMP_ACT y ACCT_LOG. Existe un desencadenante posterior de inserción definido en EMPLOYEE que origina inserciones adicionales en las tablas EMP_ACT y ACCT_LOG. CREATE TABLE EMPLOYEE (EMPNO SMALLINT GENERATED ALWAYS AS IDENTITY (START WITH 1000), NAME CHAR(30), SALARY DECIMAL(5,2), DEPTNO SMALLINT); CREATE TABLE EMP_ACT (ACNT_NUM SMALLINT GENERATED ALWAYS AS IDENTITY (START WITH 1), EMPNO SMALLINT); CREATE TABLE ACCT_LOG (ID SMALLINT GENERATED ALWAYS AS IDENTITY (START WITH 100), ACNT_NUM SMALLINT, EMPNO SMALLINT); CREATE TRIGGER NEW_HIRE AFTER INSERT ON EMPLOYEE REFERENCING NEW AS NEW_EMP FOR EACH ROW MODE DB2SQL BEGIN ATOMIC INSERT INTO EMP_ACT (EMPNO) VALUES (NEW_EMP.EMPNO); INSERT INTO ACCT_LOG (ACNT_NUM EMPNO) VALUES (IDENTITY_VAL_LOCAL(), NEW_EMP.EMPNO); END La primera sentencia INSERT activada inserta una fila en la tabla EMP_ACT. Esta sentencia INSERT utiliza una variable de transición de desencadenante para la columna EMPNO de la tabla EMPLOYEE, para indicar que el valor de identidad de esa columna se debe copiar a la columna EMPNO de la tabla EMP_ACT. No se puede utilizar la función IDENTITY_VAL_LOCAL para obtener el valor asignado a la columna EMPNO de la tabla EMPLOYEE. Esto es debido a que la sentencia INSERT no se ha emitido al mismo nivel de anidamiento, y por tanto, si se invocara la función IDENTITY_VAL_LOCAL en la cláusula VALUES de la sentencia INSERT para EMP_ACT, se obtendría un valor nulo. Esta sentencia INSERT para la tabla EMP_ACT también genera un nuevo valor de identidad para la columna ACNT_NUM. Una segunda sentencia INSERT activada inserta una fila en la tabla ACCT_LOG. Esta sentencia invoca la función IDENTITY_VAL_LOCAL para indicar que el valor de identidad asignado a la columna ACNT_NUM de la tabla EMP_ACT en la sentencia INSERT anterior de la acción activada se debe copiar a la columna ACNT_NUM de la tabla ACCT_LOG. A la columna EMPNO se le asigna el mismo valor que a la columna EMPNO de la tabla EMPLOYEE. En el ejemplo siguiente, desde la aplicación invocadora (es decir, el nivel en el que se ejecuta INSERT para EMPLOYEE), la variable IVAR se establece en el valor asignado por la sentencia INSERT original a la columna EMPNO de la tabla EMPLOYEE. INSERT INTO EMPLOYEE (NAME, SALARY, DEPTNO) VALUES ('Rupert', 989.99, 50); El contenido de las tres tablas después de procesar la sentencia INSERT original y todas las acciones activadas es el siguiente: SELECT EMPNO, SUBSTR(NAME,10) AS NAME, SALARY, DEPTNO FROM EMPLOYEE; EMPNO NAME SALARY DEPTNO ----------- ----------- ---------------------------------- ----------- 1000 Rupert 989.99 50 SELECT ACNT_NUM, EMPNO FROM EMP_ACT; ACNT_NUM EMPNO ----------- ----------- 1 1000 SELECT * FROM ACCT_LOG; ID ACNT_NUM EMPNO ----------- ----------- ----------- 100 1 1000 El resultado de la función IDENTITY_VAL_LOCAL es el valor asignado más recientemente para una columna de identidad al mismo nivel de anidamiento. Después de procesar la sentencia INSERT original y todas las acciones activadas, la función IDENTITY_VAL_LOCAL devuelve el valor 1000, pues es el valor asignado a la columna EMPNO de la tabla EMPLOYEE. La sentencia VALUES siguiente asigna el valor 1000 a IVAR. La inserción en la tabla EMP_ACT (que se produjo después de la inserción en la tabla EMPLOYEE y a un nivel de anidamiento inferior) no afecta al resultado de esta invocación de la función IDENTITY_VAL_LOCAL. VALUES IDENTITY_VAL_LOCAL() INTO :IVAR; 38.3.2.6 LCASE y UCASE (Unicode) En una base de datos Unicode, el repertorio completo de caracteres Unicode está en mayúsculas (o en minúsculas) en función de las propiedades de Unicode de estos caracteres. Ahora, las versiones de doble anchura de los caracteres ASCII, así como los números romanos, se convierten correctamente en mayúsculas o minúsculas. 38.3.2.7 MQPUBLISH >>-MQPUBLISH---(------------------------------------------------> >-----+----------------------------------------------------+----> '-servicio-publicador--,--+-----------------------+--' '-política-servicio--,--' >----datos-mje----+----------------------------------+--)------>< '-,--tema--+--------------------+--' | (1) | '-,--id-correl-------' Notas: 1. El id-correl no se puede especificar a no ser que previamente se haya definido un servicio y una política. El esquema es MQDB2. La función MQPUBLISH publica datos ante MQSeries. Esta función requiere la instalación de MQSeries Publish/Subscribe o MQSeries Integrator. Consulte la dirección www.ibm.com/software/MQSeries para obtener más información. La función MQPUBLISH publica los datos contenidos en datos-mje ante el publicador de MQSeries especificado en servicio-publicador y utiliza la calidad de política de servicio definida en política-servicio. Se puede especificar un tema opcional para el mensaje y también se puede especificar un identificador opcional de correlación de mensajes definidos por el usuario. La función devuelve el valor '1' si se ejecuta satisfactoriamente y '0' si no es así. servicio-publicador Una serie que contiene el destino lógico de MQSeries al que se debe enviar el mensaje. Si se especifica, el servicio-publicador debe hacer referencia a un Punto de servicio del publicador definido en el archivo de repositorio AMT.XML. Un punto de servicio es un punto final lógico desde el que se envía o en el que se recibe un mensaje. Las definiciones de puntos de servicio incluyen el nombre de MQSeries Queue Manager y de la cola. Consulte el manual MQSeries Application Messaging Interface para obtener más información. Si no se especifica servicio-publicador, se utiliza DB2.DEFAULT.PUBLISHER. El tamaño máximo de servicio-publicador es 48 caracteres. política-servicio Una serie que contiene la política de servicio AMI de MQSeries que se va a utilizar para manejar este mensaje. Si se especifica, la política-servicio debe hacer referencia a una política definida en el archivo de repositorio AMT.XML. Una Política de servicio define una serie de opciones de calidad de servicio que se deben aplicar a esta operación de gestión de mensajes. Estas opciones incluyen prioridad y permanencia del mensaje. Consulte el manual MQSeries Application Messaging Interface para obtener más información. Si no se especifica política-servicio, se utiliza DB2.DEFAULT.POLICY por omisión. El tamaño máximo de política-servicio es 48 caracteres. datos-mje Una expresión que contiene los datos que se van a enviar mediante MQSeries. El tamaño máximo es 4000 caracteres. tema Una expresión que contiene el tema correspondiente a la publicación del mensaje. Si no se especifica ningún tema, no se asociará ninguno al mensaje. El tamaño máximo de tema es 40 caracteres. Se pueden especificar varios temas en una serie (con una longitud máxima de 40 caracteres). Cada tema se debe separar por un signo de dos puntos. Por ejemplo, "t1:t2:tercer tema" indica que el mensaje se asocia con tres temas: t1, t2 y "tercer tema". id-correl Una expresión opcional que contiene un identificador de correlación que se asociará con este mensaje. El id-correl se suele especificar en escenarios de petición y respuesta para asociar peticiones con respuestas. Si no se especifica, no se añade ningún id de correlación al mensaje. El tamaño máximo de id-correl es 24 caracteres. Ejemplos Ejemplo 1: Este ejemplo publica la serie "Testing 123" al servicio publicador por omisión (DB2.DEFAULT.PUBLISHER) utilizando la política por omisión (DB2.DEFAULT.POLICY). No se especifica ningún identificador de correlación ni ningún tema para el mensaje. VALUES MQPUBLISH('Testing 123') Ejemplo 2: Este ejemplo publica la serie "Testing 345" al servicio publicador "MYPUBLISHER" bajo el tema "TESTS". Se utiliza la política por omisión y no se especifica ningún identificador de correlación. VALUES MQPUBLISH('MYPUBLISHER','Testing 345', 'TESTS') Ejemplo 3: Este ejemplo publica la serie "Testing 678" al servicio publicador "MYPUBLISHER" utilizando la política "MYPOLICY" con el identificador de correlación "TEST1". El mensaje se publica con el tema "TESTS". VALUES MQPUBLISH('MYPUBLISHER','MYPOLICY','Testing 678','TESTS','TEST1') Ejemplo 4: Este ejemplo publica la serie "Testing 901" al servicio publicador "MYPUBLISHER" bajo el tema "TESTS" utilizando la política por omisión (DB2.DEFAULT.POLICY) y sin identificador de correlación. VALUES MQPUBLISH('Testing 901','TESTS') Todos los ejemplos devuelven el valor '1' si se ejecutan satisfactoriamente. 38.3.2.8 MQREAD >>-MQREAD---(---------------------------------------------------> >-----+------------------------------------------------+--)---->< '-servicio-recepción--+-----------------------+--' '-,--política-servicio--' El esquema es MQDB2. La función MQREAD devuelve un mensaje procedente de la ubicación de MQSeries especificada por servicio-recepción, utilizando la política de calidad de servicio definida en política-servicio. Al ejecutar esta operación no se elimina el mensaje de la cola asociada con servicio-recepción, sino que se devuelve el mensaje al principio de la cola. El valor de retorno es un VARCHAR(4000) que contiene el mensaje. Si no hay ningún mensaje disponible que se pueda devolver, se devuelve un NULL. servicio-recepción Una serie que contiene el destino lógico de MQSeries desde el que se va a recibir el mensaje. Si se especifica, el servicio-recepción hace referencia a un Punto de servicio definido en el archivo de repositorio AMT.XML. Un punto de servicio es un punto final lógico desde el que se envía o en el que se recibe un mensaje. Las definiciones de puntos de servicio incluyen el nombre de MQSeries Queue Manager y de la cola. Consulte el manual MQSeries Application Messaging Interface para obtener más información. Si no se especifica servicio-recepción, se utiliza DB2.DEFAULT.SERVICE. El tamaño máximo de servicio-recepción es 48 caracteres. política-servicio Una serie que contiene la política de servicio AMI de MQSeries utilizada para manejar este mensaje. Si se especifica, la política-servicio debe hacer referencia a una política definida en el archivo de repositorio AMT.XML. Una Política de servicio define una serie de opciones de calidad de servicio que se deben aplicar a esta operación de gestión de mensajes. Estas opciones incluyen prioridad y permanencia del mensaje. Consulte el manual MQSeries Application Messaging Interface para obtener más información. Si no se especifica política-servicio, se utiliza DB2.DEFAULT.POLICY por omisión. El tamaño máximo de política-servicio es 48 caracteres. Ejemplos: Ejemplo 1: Este ejemplo lee el mensaje que hay al principio de la cola especificada por el servicio por omisión (DB2.DEFAULT.SERVICE), utilizando la política por omisión (DB2.DEFAULT.POLICY). VALUES MQREAD() Ejemplo 2: Este ejemplo lee el mensaje que hay al principio de la cola especificada por el servicio "MYSERVICE" utilizando la política por omisión (DB2.DEFAULT.POLICY). VALUES MQREAD('MYSERVICE') Ejemplo 3: Este ejemplo lee el mensaje que hay al principio de la cola especificada por el servicio "MYSERVICE" utilizando la política "MYPOLICY". VALUES MQREAD('MYSERVICE','MYPOLICY') Todos estos ejemplos devuelven el contenido del mensaje como VARCHAR(4000) si se ejecutan satisfactoriamente. Si no hay mensajes disponibles, se devuelve un NULL. 38.3.2.9 MQRECEIVE >>-MQRECEIVE----------------------------------------------------> >----(--+-------------------------------------------------------------------+---)-> '-servicio-recepción--+------------------------------------------+--' '-,--política-servicio--+---------------+--' '-,--id-correl--' >-------------------------------------------------------------->< El esquema es MQDB2. La función MQRECEIVE devuelve un mensaje procedente de la ubicación de MQSeries especificada por servicio-recepción, utilizando la política de calidad de servicio política-servicio. Al llevar a cabo esta operación se elimina el mensaje de la cola asociada con servicio-recepción. Si se especifica id-correl, se devuelve el primer mensaje con un identificador de correlación que coincida. Si no se especifica correl-id, se devuelve el primer mensaje de la cola. El valor de retorno es un VARCHAR(4000) que contiene el mensaje. Si no hay ningún mensaje disponible que se pueda devolver, se devuelve un NULL. servicio-recepción Una serie que contiene el destino lógico de MQSeries desde el que se recibe el mensaje. Si se especifica, el servicio-recepción hace referencia a un Punto de servicio definido en el archivo de repositorio AMT.XML. Un punto de servicio es un punto final lógico desde el que se envía o en el que se recibe un mensaje. Las definiciones de puntos de servicio incluyen el nombre de MQSeries Queue Manager y de la cola. Consulte el manual MQSeries Application Messaging Interface para obtener más información. Si no se especifica servicio-recepción, se utiliza DB2.DEFAULT.SERVICE. El tamaño máximo de servicio-recepción es 48 caracteres. política-servicio Una serie que contiene la política de servicio AMI de MQSeries que se va a utilizar para manejar este mensaje. Si se especifica, la política-servicio debe hacer referencia a una Política definida en el archivo de repositorio AMT XML 4 . Si no se especifica política-servicio, se utiliza DB2.DEFAULT.POLICY por omisión. El tamaño máximo de política-servicio es 48 caracteres. id-correl Serie que contiene un identificador de correlación opcional que se va a asociar con este mensaje. El id-correl se suele especificar en escenarios de petición y respuesta para asociar peticiones con respuestas. Si no se especifica, no se especifica ningún id de correlación. El tamaño máximo de id-correl es 24 caracteres. Ejemplos: Ejemplo 1: Este ejemplo recibe el mensaje que hay al principio de la cola especificada por el servicio por omisión (DB2.DEFAULT.SERVICE), utilizando la política por omisión (DB2.DEFAULT.POLICY). VALUES MQRECEIVE() Ejemplo 2: Este ejemplo recibe el mensaje que hay al principio de la cola especificada por el servicio "MYSERVICE" utilizando la política por omisión (DB2.DEFAULT.POLICY). VALUES MQRECEIVE('MYSERVICE') Ejemplo 3: Este ejemplo recibe el mensaje que hay al principio de la cola especificada por el servicio "MYSERVICE" utilizando la política "MYPOLICY". VALUES MQRECEIVE('MYSERVICE','MYPOLICY') Ejemplo 4: Este ejemplo recibe el primer mensaje con el id de correlación que coincida con '1234' del principio de la cola especificada por el servicio "MYSERVICE" utilizando la política "MYPOLICY". VALUES MQRECEIVE('MYSERVICE',MYPOLICY','1234') Todos estos ejemplos devuelven el contenido del mensaje como a VARCHAR(4000) si se ejecutan satisfactoriamente. Si no hay mensajes disponibles, se devuelve un NULL. 38.3.2.10 MQSEND >>-MQSEND---(---------------------------------------------------> >-----+-----------------------------------------------+---------> '-servicio-envío--,--+-----------------------+--' '-política-servicio--,--' >----datos-mje----+--------------------+--)-------------------->< | (1) | '-,--id-correl-------' Notas: 1. El id-correl no se puede especificar a no ser que previamente se haya definido un servicio y una política. El esquema es MQDB2. La función MQSEND envía los datos contenidos en datos-mje a la ubicación de MQSeries especificada por servicio-envío, utilizando la política de calidad de servicio definida por política-servicio. Se puede especificar un identificador opcional de correlación de mensaje definido por el usuario mediante id-correl. La función devuelve el valor '1' si se ejecuta satisfactoriamente y '0' si no es así. datos-mje Una expresión que contiene los datos que se van a enviar mediante MQSeries. El tamaño máximo es 4000 caracteres. servicio-envío Una serie que contiene el destino lógico de MQSeries al que se debe enviar el mensaje. Si se especifica, el servicio-envío hace referencia a un punto de servicio definido en el archivo de repositorio AMT.XML. Un punto de servicio es un punto final lógico desde el que se envía o en el que se recibe un mensaje. Las definiciones de puntos de servicio incluyen el nombre de MQSeries Queue Manager y de la cola. Consulte el manual MQSeries Application Messaging Interface para obtener más información. Si no se especifica servicio-envío, se utiliza el valor de DB2.DEFAULT.SERVICE. El tamaño máximo de servicio-envío es 48 caracteres. política-servicio Una serie que contiene la política de servicio AMI de MQSeries utilizada para manejar este mensaje. Si se especifica, la política-servicio debe hacer referencia a una política definida en el archivo de repositorio AMT XML. Una Política de servicio define una serie de opciones de calidad de servicio que se deben aplicar a esta operación de gestión de mensajes. Estas opciones incluyen prioridad y permanencia del mensaje. Consulte el manual MQSeries Application Messaging Interface para obtener más información. Si no se especifica política-servicio, se utiliza el valor por omisión DB2.DEFAULT.POLICY. El tamaño máximo de política-servicio es 48 caracteres. id-correl Una serie opcional que contiene un identificador de correlación asociado con este mensaje. El id-correl se suele especificar en escenarios de petición y respuesta para asociar peticiones con respuestas. Si no se especifica, no se envía ningún id de correlación. El tamaño máximo de id-correl es 24 caracteres. Ejemplos: Ejemplo 1: Este ejemplo envía la serie "Testing 123" al servicio por omisión (DB2.DEFAULT.SERVICE), utilizando la política por omisión (DB2.DEFAULT.POLICY), sin identificador de correlación. VALUES MQSEND('Testing 123') Ejemplo 2: Este ejemplo envía la serie "Testing 345" al servicio "MYSERVICE", utilizando la política "MYPOLICY", sin identificador de correlación. VALUES MQSEND('MYSERVICE','MYPOLICY','Testing 345') Ejemplo 3: Este ejemplo envía la serie "Testing 678" al servicio "MYSERVICE", utilizando la política "MYPOLICY", con el identificador de correlación "TEST3". VALUES MQSEND('MYSERVICE','MYPOLICY','Testing 678','TEST3') Ejemplo 4: Este ejemplo envía la serie "Testing 901" al servicio "MYSERVICE", utilizando la política por omisión (DB2.DEFAULT.POLICY), y sin identificador de correlación. VALUES MQSEND('MYSERVICE','Testing 901') Todos los ejemplos devuelven el valor escalar '1' si se ejecutan satisfactoriamente. 38.3.2.11 MQSUBSCRIBE >>-MQSUBSCRIBE---(----------------------------------------------> >-----+----------------------------------------------------+----> '-servicio-suscriptor--,--+-----------------------+--' '-política-servicio--,--' >----tema---)-------------------------------------------------->< El esquema es MQDB2. La función MQSUBSCRIBE sirve para registrar interés en mensajes de MQSeries publicados sobre un tema específico. El servicio-suscriptor especifica un destino lógico para los mensajes que coinciden con el tema especificado. Los mensajes que coinciden con tema se colocan en la cola definida por servicio-suscriptor y se pueden leer o recibir a través de una llamada a MQREAD, MQRECEIVE, MQREADALL o MQRECEIVEALL. Esta función requiere la instalación y configuración de un sistema de publicación y suscripción basado en MQSeries, como MQSeries Integrator o MQSeries Publish/Subscribe. Consulte el sitio www.ibm.com/software/MQSeries para obtener más información. La función devuelve el valor '1' si se ejecuta satisfactoriamente y '0' si no es así. Si la función se ejecuta satisfactoriamente, el servidor de publicación y suscripción envía los mensajes que coinciden con el tema al punto de servicio definido por servicio-suscriptor. servicio-suscriptor Una serie que contiene el punto lógico de suscripción de MQSeries al que se enviarán los mensajes que coincidan con tema. Si se especifica, el servicio-suscriptor debe hacer referencia al Punto de servicio de suscriptores definido en el archivo de repositorio AMT.XML. Las definiciones de puntos de servicio incluyen el nombre de MQSeries Queue Manager y de la cola. Consulte el manual MQSeries Application Messaging Interface para obtener más información. Si no se especifica servicio-suscriptor, se utiliza DB2.DEFAULT.SUBSCRIBER. El tamaño máximo del servicio-suscriptor es 48 caracteres. política-servicio Una serie que contiene la política de servicio AMI de MQSeries que se va a utilizar para manejar el mensaje. Si se especifica, la política-servicio debe hacer referencia a una política definida en el archivo de repositorio AMT.XML. Una Política de servicio define una serie de opciones de calidad de servicio que se deben aplicar a esta operación de gestión de mensajes. Estas opciones incluyen prioridad y permanencia del mensaje. Consulte el manual MQSeries Application Messaging Interface para obtener más información. Si no se especifica política-servicio, se utiliza DB2.DEFAULT.POLICY por omisión. El tamaño máximo de política-servicio es 48 caracteres. tema Una serie que define los tipos de mensajes que se van a recibir. Esta suscripción sólo recibirá los mensajes publicados con los temas especificados. Pueden coexistir varias suscripciones. El tamaño máximo de tema es 40 caracteres. Se pueden especificar varios temas en una serie (con una longitud máxima de 40 caracteres). Cada tema se debe separar por un signo de dos puntos. Por ejemplo, "t1:t2:tercer tema" indica que el mensaje se asocia con tres temas: t1, t2 y "tercer tema". Ejemplos: Ejemplo 1: Este ejemplo registra un interés en los mensajes que contienen el tema "Weather". El servicio-suscriptor por omisión (DB2.DEFAULT.SUBSCRIBER) se registra como el suscriptor y la política-servicio por omisión (DB2.DEFAULT.POLICY) especifica la calidad de servicio. VALUES MQSUBSCRIBE('Weather') Ejemplo 2: Este ejemplo muestra un suscriptor que registra interés en mensajes que contienen el tema "Stocks". El suscriptor se registra como "PORTFOLIO-UPDATES" con la política "BASIC-POLICY". VALUES MQSUBSCRIBE('PORTFOLIO-UPDATES','BASIC-POLICY','Stocks') Todos los ejemplos devuelven el valor escalar '1' si se ejecutan satisfactoriamente. 38.3.2.12 MQUNSUBSCRIBE >>-MQUNSUBSCRIBE---(--------------------------------------------> >-----+----------------------------------------------------+----> '-servicio-suscriptor--,--+-----------------------+--' '-política-servicio--,--' >----tema---)-------------------------------------------------->< El esquema es MQDB2. La función MQUNSUBSCRIBE sirve para eliminar el registro de una suscripción existente de mensajes. El servicio-suscriptor, la política-servicio y el tema sirven para identificar qué suscripción se cancela. Esta función requiere la instalación y configuración de un sistema de publicación y suscripción basado en MQSeries, como MQSeries Integrator o MQSeries Publish/Subscribe. Consulte el sitio www.ibm.com/software/MQSeries para obtener más información. La función devuelve el valor '1' si se ejecuta satisfactoriamente y '0' si no es así. El resultado de la ejecución satisfactoria de esta función es que el servidor de publicación y suscripción elimina la suscripción definida por los parámetros especificados. Los mensajes con el tema especificado dejan de enviarse al destino lógico definido por servicio-suscripción. servicio-suscriptor Si se especifica, el servicio-suscriptor debe hacer referencia al Punto de servicio de suscriptores definido en el archivo de repositorio AMT.XML. Las definiciones de puntos de servicio incluyen el nombre de MQSeries Queue Manager y de la cola. Consulte el manual MQSeries Application Messaging Interface para obtener más información. Si no se especifica servicio-suscripción, se utiliza el valor DB2.DEFAULT.SUBSCRIBER. El tamaño máximo de servicio-suscriptor es 48 caracteres. política-servicio Si se especifica, la política-servicio debe hacer referencia a una política definida en el archivo de repositorio AMT.XML. Una Política de servicio define una serie de opciones de calidad de servicio que se deben aplicar a esta operación de gestión de mensajes. Consulte el manual MQSeries Application Messaging Interface para obtener más información. Si no se especifica política-servicio, se utiliza DB2.DEFAULT.POLICY por omisión. El tamaño máximo de política-servicio es 48 caracteres. tema Una serie que especifica el tema de los mensajes que no se tienen que recibir. El tamaño máximo de tema es 40 caracteres. Se pueden especificar varios temas en una serie (con una longitud máxima de 40 caracteres). Cada tema se debe separar por un signo de dos puntos. Por ejemplo, "t1:t2:tercer tema" indica que el mensaje se asocia con tres temas: t1, t2 y "tercer tema". Ejemplos: Ejemplo 1: Este ejemplo cancela un interés en los mensajes que contienen el tema "Weather". El servicio-suscriptor por omisión (DB2.DEFAULT.SUBSCRIBER) se registra como el anulador del suscriptor y la política-servicio por omisión (DB2.DEFAULT.POLICY) especifica la calidad de servicio. VALUES MQUNSUBSCRIBE('Weather') Ejemplo 2: Este ejemplo muestra un suscriptor que cancela un interés en mensajes que contienen el tema "Stocks". El suscriptor se registra como "PORTFOLIO-UPDATES" con la política "BASIC-POLICY". VALUES MQUNSUBSCRIBE('PORTFOLIO-UPDATES','BASIC-POLICY','Stocks') Estos ejemplos devuelven el valor escalar '1' si se ejecutan satisfactoriamente y el valor escalar '0' si no es así. 38.3.2.13 MULTIPLY_ALT >>-MULTIPLY_ALT-------------------------------------------------> >----(expresión_numérica_exacta, expresión_numérica_exacta)----->< El esquema es SYSIBM. Esta función apareció por primera vez en el FixPack 2 de la Versión 7.1. La función escalar MULTIPLY_ALT devuelve el producto de los dos argumentos como valor decimal. Se proporciona como alternativa al operador de multiplicación, especialmente cuando la suma de las precisiones de los argumentos es mayor que 31. Los argumentos pueden ser cualquier tipo de datos numéricos exactos internos (DECIMAL, BIGINT, INTEGER o SMALLINT). El resultado de la función es un DECIMAL. La precisión y escala del resultado se determinan del siguiente modo, utilizando los símbolos p y s para denotar la precisión y escala del primer argumento, y los símbolos p' y s' para denotar la precisión y escala del segundo argumento. * La precisión es MIN(31, p + p') * La escala es: o 0 si la escala de ambos argumentos es 0 o MIN(31, s+s') si p+p' es igual o inferior a 31 o MAX(MIN(3, s+s'), 31-(p-s+p'-s') ) si p+p' es mayor que 31. El resultado puede ser nulo si al menos un argumento puede ser nulo o la base de datos se configura con DFT_SQLMATHWARN establecido en sí; el resultado es el valor nulo si uno de los argumentos es un nulo. La función MULTIPLY_ALT es una opción mejor que el operador de multiplicación al efectuar la aritmética decimal en los lugares en los que se necesite una escala de 3 como mínimo y la suma de las precisiones supere 31. En estos casos, el cálculo interno se efectúa de modo que se eviten los desbordamientos. Entonces el resultado final se asigna al tipo de datos resultado utilizando el truncamiento en los lugares en los que sea necesario para que se corresponda con la escala. Tenga en cuenta que el desbordamiento del resultado final sigue siendo posible cuando la escala sea 3. Lo que viene a continuación es un ejemplo de la comparación de tipos de resultados utilizando MULTIPLY_ALT y el operador de multiplicación. Tipo de argumento Tipo de argumento Resultado Resultado 1 2 utilizando utilizando el MULTIPLY_ALT operador de multiplicación DECIMAL(31,3) DECIMAL(15,8) DECIMAL(31,3) DECIMAL(31,11) DECIMAL(26,23) DECIMAL(10,1) DECIMAL(31,19) DECIMAL(31,24) DECIMAL(18,17) DECIMAL(20,19) DECIMAL(31,29) DECIMAL(31,31) DECIMAL(16,3) DECIMAL(17,8) DECIMAL(31,9) DECIMAL(31,11) DECIMAL(26,5) DECIMAL(11,0) DECIMAL(31,3) DECIMAL(31,5) DECIMAL(21,1) DECIMAL(15,1) DECIMAL(31,2) DECIMAL(31,2) Ejemplo: Multiplique dos valores en los que el tipo de datos del primer argumento sea DECIMAL(26, 3) y el tipo de datos del segundo argumento sea DECIMAL(9,8). El tipo de datos del resultado es DECIMAL(31,7). values multiply_alt(98765432109876543210987.654,5.43210987) 1 --------------------------------- 536504678578875294857887.5277415 Tenga en cuenta que el producto completo de estos dos números es 536504678578875294857887.52774154498 pero los 4 últimos dígitos se truncaron para corresponderse con la escala del tipo de datos de resultado. La utilización del operador de multiplicación con los mismos valores da como resultado un desbordamiento aritmético ya que el tipo de datos del resultado es DECIMAL(31,11) y el valor del resultado tiene 24 dígitos a la izquierda del decimal, pero el tipo de datos del resultado sólo da soporte a 20 dígitos. 38.3.2.14 REC2XML >>-REC2XML---(--constante-decimal---,--serie-formato------------> >----,--serie-identificador-fila--------------------------------> >-----+---------------------------+--)------------------------->< | .---------------------. | | V | | '----,--nombre-columna---+--' El esquema es SYSIBM. La función REC2XML devuelve una serie formateada con identificadores XML que contiene nombres de columnas y valores de columnas. constante-decimal El factor de expansión para sustituir caracteres de valores de columnas. El valor decimal debe ser mayor que 0.0 y menor o igual que 6.0 (SQLSTATE 42820). El valor constante-decimal sirve para calcular la longitud del resultado de la función. Para cada columna con un tipo de datos carácter, el atributo de longitud de la columna se multiplica por el factor de expansión antes de que se añada a la longitud del resultado. Para especificar que no hay expansión, utilice el valor 1.0. Al especificar un valor menor que 1.0 se reduce la longitud calculada del resultado. Si la longitud real de la serie del resultado es mayor que la longitud calculada del resultado de la función, se devuelve un error (SQLSTATE 22001). serie-formato La constante de serie que especifica qué formato debe utilizar la función durante la ejecución. La serie-formato es sensible a mayúsculas y minúsculas, de modo que los siguientes valores se deben especificar en mayúsculas para que se reconozcan. COLATTVAL o COLATTVAL_XML Estos formatos devuelven una serie con columnas como valores de atributo. >>-<--serie-identificador-fila-->-------------------------------> .-----------------------------------------------------------------------------. V | >--------<--column-name--=--"nombre-columna"--+->--valor-columna----+--+> '-null="true"--------------------------------->< Los nombres de columnas pueden o no ser valores de atributos XML válidos. Para los nombres de columnas que no son valores de atributos XML válidos, se sustituyen caracteres en el nombre de columna antes de incluirlo en la serie del resultado. Los valores de columnas pueden o no ser valores de elementos XML válidos. Si se especifica la serie-formato COLATTVAL, para los valores de columnas que no son valores de elementos XML válidos, se sustituyen caracteres en el valor de columna antes de que se incluya en la serie del resultado. Si se especifica la serie-formato COLATTVAL_XML, no se sustituyen caracteres en los valores de columnas (observe que se siguen sustituyendo caracteres en los nombres de columnas). serie-identificador-fila Una constante de serie que especifica el identificador utilizado para cada fila. Si se especifica una serie vacía, se utiliza el valor 'row'. Si se especifica una serie con uno o más caracteres en blanco, no aparecerá ninguna serie-identificador-fila inicial ni serie-identificador-fila final (incluidos los delimitadores formatos por signos de mayor o menor que). nombre-columna Un nombre calificado o no calificado de una columna de tabla. La columna debe tener uno de los siguientes tipos de datos (SQLSTATE 42815): o numérico (SMALLINT, INTEGER, BIGINT, DECIMAL, NUMERIC, REAL, DOUBLE) o serie de caracteres (CHAR, VARCHAR) 5 o fecha y hora (DATE, TIME, TIMESTAMP) o un tipo definido por el usuario basado en uno de los tipos anteriores No se puede especificar el mismo nombre de columna más de una vez (SQLSTATE 42734). El resultado de la función VARCHAR. La longitud máxima es 32672 bytes (SQLSTATE 54006). Supongamos que tenemos la siguiente invocación: REC2XML (dc, fs, rt, c1, c2, ..., cn) Si el valor de fs es "COLATTVAL" o "COLATTVAL_XML" el resultado es el mismo que el de la siguiente expresión: '<' CONCAT rt CONCAT '>' CONCAT y1 CONCAT y2 CONCAT ... CONCAT yn CONCAT '' donde yn equivale a: '' CONCAT rn CONCAT '' si la columna no es nula, y '" null="true"/>' si el valor de la columna es un nulo. xvcn equivale a una representación de una serie del nombre de la columna de cn, donde los caracteres que aparecen en la Tabla 29 se sustituyen por la representación correspondiente. Esto asegura que la serie resultante es un atributo XML válido o un símbolo de valor de elemento. rn equivale a una representación de una serie, tal como se indica en la Tabla 28. Valores de columnas de resultados: Según el tipo de datos de la columna y la serie-formato especificada, es posible que los valores de columnas de la tabla se transformen antes de concatenarse en la serie del resultado. La tabla siguiente muestra las transformaciones realizadas en los valores de columnas. Tabla 28. Resultado de series de valores de columnas Tipo de datos cn rn CHAR, VARCHAR El valor es una serie. Si la serie-formato no termina con los caracteres "_XML", cada carácter de cn se sustituye por la representación de sustitución correspondiente de la Tabla 29, tal como se indica. El atributo de longitud es: dc * el atributo de longitud de cn. SMALLINT, INTEGER, BIGINT, DECIMAL, El valor es LTRIM(RTRIM(CHAR(cn))). NUMERIC, REAL, DOUBLE El atributo de longitud es la longitud resultante de CHAR(cn). El carácter decimal siempre es el carácter de punto. DATE El valor es CHAR(cn, ISO). El atributo de longitud es la longitud resultante de CHAR(cn, ISO). TIME El valor es CHAR(cn, JIS). El atributo de longitud es la longitud resultante de CHAR(cn, JIS) TIMESTAMP El valor es CHAR(cn). El atributo de longitud es la longitud resultante de CHAR(cn). Sustitución de caracteres: Según el valor especificado para la serie-formato, algunos caracteres de nombres de columnas y valores de columnas se sustituirán para asegurar que los nombres de columnas forman valores de atributos XML válidos y que los valores de columnas forman valores de elementos XML válidos. Tabla 29. Sustitución de caracteres para valores de elementos y valores de atributos XML < se sustituye por < > se sustituye por > " se sustituye por " & se sustituye por & ' se sustituye por ' Ejemplos: * Utilizando la tabla DEPARTMENT, formateamos la fila de la tabla department, excepto las columnas DEPTNAME y LOCATION del departamento 'D01', en una serie de XML válida. Puesto que los datos no contienen ninguno de los caracteres que se tienen que sustituir, el valor de expansión será 1.0 (sin expansión). Observe también que el valor MGRNO es nulo para esta fila. SELECT REC2XML (1.0, 'COLATTVAL', '', DEPTNO, MGRNO, ADMRDEPT) FROM DEPARTMENT WHERE DEPTNO = 'D01' Este ejemplo devuelve la siguiente serie VARCHAR(117): D01 A00 Nota: REC2XML no inserta caracteres nuevos de línea en la salida. El ejemplo anterior está formateado para facilitar su lectura. * Una planificación universitaria de 5 días incluye una clase denominada '&43' y '' en general, 21 para nombres de columnas, 75 para '', '' y comillas dobles, 7 para los datos CLASS_CODE, 6 para los datos DAY y 8 para los datos STARTING). Puesto que los caracteres '&' y '<' se sustituirán, el factor de expansión 1.0 no será suficiente. El atributo de longitud de la función tendrá que dar soporte a un aumento de 7 a 14 caracteres para los datos CLASS_CODE del nuevo formato. Sin embargo, puesto que se sabe que el valor de DAY nunca tendrá más de 1 dígito de longitud, se calcula un valor 5 adicional en la longitud que nunca se utilizará. Por lo tanto, el factor de expansión sólo debe tener en cuenta un aumento de 2. Puesto que CLASS_CODE es la única columna de serie de caracteres de la lista de argumentos, este es el único valor de columna al que se aplica el factor de expansión. Para obtener un aumento de 2 para la longitud, se necesita un factor de expansión de 9/7 (aproximadamente 1.2857). Se utilizará un valor de expansión de 1.3. SELECT REC2XML (1.3, 'COLATTVAL', 'record', CLASS_CODE, DAY, STARTING) FROM CL_SCHED WHERE CLASS_CODE = '&43 &43<FIE 5 06:45:00 Nota: REC2XML no inserta caracteres nuevos de línea en la salida. El ejemplo anterior está formateado para facilitar su lectura. * Este ejemplo muestra caracteres sustituidos en un nombre de columna. SELECT REC2XML (1.3,'COLATTVAL', '', Class, "time &43<FIE >-GET_ROUTINE_SAR---(--sarblob--,--tipo--,--nombre_rutina--)-->< El esquema es SYSFUN. Este procedimiento apareció por primera vez en el FixPack 3 de la Versión 7.1. El procedimiento GET_ROUTINE_SAR recupera la información necesaria para instalar la misma rutina en otro servidor de bases de datos que ejecuta el mismo nivel en el mismo sistema operativo. La información que se recupera forma una serie de caracteres BLOB individual que representa un archivo archivador de SQL. La persona que invoca el procedimiento GET_ROUTINE_SAR debe tener autorización DBADM. sarblob Argumento de salida del tipo BLOB(3M) donde se guarda el contenido del archivo SAR de la rutina. tipo Argumento de entrada del tipo CHAR(2) que especifica el tipo de rutina, utilizando los valores siguientes: o P para procedimiento. o SP para el nombre específico de un procedimiento. nombre-rutina Argumento de entrada del tipo VARCHAR(257) que especifica un nombre calificado de la rutina. Si no se especifica ningún nombre de esquema, el valor por omisión es CURRENT SCHEMA cuando se procesa la rutina. Nota: El argumento nombre-rutina no puede incluir el carácter de comillas dobles ("). El nombre calificado de la rutina se utiliza para determinar qué rutina se debe recuperar. La rutina encontrada debe ser una rutina SQL, de lo contrario se emite un error (SQLSTATE 428F7). Cuando no se utiliza un nombre específico, se puede obtener más de una rutina, y entonces se emite un error (SQLSTATE 42725). Si ocurre esto, se debe utilizar el nombre específico de la rutina para obtenerla. El archivo SAR debe incluir un archivo de vinculación que es posible que no esté en el servidor. Si no se ha podido encontrar el archivo de vinculación y guardarlo en el archivo SAR, se emite un error (SQLSTATE 55045). 38.3.4.2 PUT_ROUTINE_SAR >>-PUT_ROUTINE_SAR----------------------------------------------> >----(--sarblob--+--------------------------------------------------------+> '-,--nuevo-propietario--,--utilizar-distintivo-registro--' >----)--------------------------------------------------------->< El esquema es SYSFUN. Este procedimiento apareció por primera vez en el FixPack 3 de la Versión 7.1. El procedimiento PUT_ROUTINE_SAR pasa el archivo necesario para crear una rutina SQL en el servidor y, a continuación, define la rutina. La persona que invoque el procedimiento PUT_ROUTINE_SAR debe tener autorización DBADM. sarblob Argumento de entrada del tipo BLOB(3M) donde se guarda el contenido del archivo SAR de la rutina. nuevo_propietario Argumento de entrada del tipo VARCHAR(128) que contiene un nombre de autorización utilizado para la comprobación de autorizaciones de la rutina. El nuevo-propietario debe tener los privilegios necesarios para poder definir la rutina. Si nuevo-propietario no se especifica, se utiliza el nombre de autorización del creador original de la rutina. utilizar-distintivo-registro Argumento de entrada del tipo INTEGER que indica si han de utilizarse o no los registros especiales CURRENT SCHEMA y CURRENT PATH para definir la rutina. Si no se utilizan los registros especiales, los valores para el esquema por omisión y la vía de acceso de SQL son los valores que se utilizaron en el momento en que se definió originalmente la rutina. Los valores posibles de utilizar-distintivo-registro son: 0 No utilizar los registros especiales del entorno actual 1 Utilizar los registros especiales CURRENT SCHEMA y CURRENT PATH. Si el valor es 1, se utiliza CURRENT SCHEMA para los nombres de objeto no calificados en la definición de la rutina (incluido el nombre de la rutina) y se utiliza CURRENT PATH para resolver los tipos de datos y las rutinas no calificadas en la definición de la rutina. Si no se especifica utilizar-distintivo-registro, se obtiene el mismo resultado que si se especifica el valor 0. La información de identificación contenida en sarblob se comprueba para verificar que los datos de entrada son apropiados para el entorno, si no es así, se emite un error (SQLSTATE 55046). A continuación, el procedimiento PUT_ROUTINE_SAR utiliza el contenido de sarblob para definir la rutina en el servidor. El contenido del argumento sarblob se extrae y coloca en archivos separados que constituyen el archivo archivador de SQL. La biblioteca compartida y los archivos de vinculación se escriben en archivos de un directorio temporal. El entorno está definido de forma que el proceso de la sentencia de definición de la rutina sabe que no es necesaria la compilación ni la edición de enlaces, y que la ubicación de la biblioteca compartida y de los archivos de vinculación es conocida. A continuación, se utiliza el contenido del archivo DDL para ejecutar dinámicamente la sentencia de definición de la rutina. Nota: No puede instalarse más de un procedimiento de modo simultáneo bajo un determinado esquema. El proceso de esta sentencia puede originar los mismos errores que cuando la sentencia de definición de la rutina se ejecuta utilizando otras interfaces. Durante el proceso de definición de la rutina, se detecta la presencia de la biblioteca compartida y de los archivos de vinculación y se omiten los pasos de precompilación, compilación y enlace. El archivo de vinculación se utiliza durante el proceso de enlace y el contenido de ambos archivos se copia en el directorio habitual de una rutina SQL. Nota: Si una operación GET ROUTINE o PUT ROUTINE (o su correspondiente procedimiento) no se ejecuta con éxito, devuelve siempre un error (SQLSTATE 38000), junto con información de diagnóstico referente a la causa del error. Por ejemplo, si el nombre de procedimiento que se pasa a GET ROUTINE no identifica un procedimiento SQL, se devolverá el código de SQL "100" y el estado de SQL "02000", los cuales identifican la causa del problema. En este ejemplo, el código de SQL (SQLCODE) y el estado de SQL (SQLSTATE) indican que la fila especificada para el nombre de procedimiento indicado no se encontró en las tablas de catálogo. ------------------------------------------------------------------------ 38.4 Capítulo 5. Consultas 38.4.1 sentencia-select/diagrama de sintaxis El diagrama de sintaxis se ha cambiado a lo siguiente: >>-+-------------------------------------+--selección-completa--> | .-,------------------------. | | V | | '-WITH-----expresión-tabla-común---+--' >----+-------------------+--+----------------------+------------> '-cláusula-order-by-' '-cláusula-fetch-first-' >----*--+-----------------------+-------------------------------> +-cláusula-read-only----+ | (1) | '-cláusula-update-------' >----*--+-----------------------+--*----+---------------+------>< '-cláusula-optimize-for-' '-WITH--+-RR-+--' +-RS-+ +-CS-+ '-UR-' Notas: 1. La cláusula-update y la cláusula-order-by no se pueden especificar a la vez en la misma sentencia-select. Añada el párrafo siguiente la descripción que sigue al diagrama de sintaxis: La cláusula opcional WITH especifica el nivel de aislamiento en el que se ejecuta la sentencia select. o RR - Lectura repetida o RS - Estabilidad de lectura o CS - Estabilidad del cursor o UR - Lectura no comprometida El nivel de aislamiento predefinido de la sentencia es el nivel de aislamiento del paquete en el que está enlazada la sentencia. 38.4.2 sentencia-select/cláusula-fetch-first El último párrafo de la descripción de la cláusula-fetch-first: La especificación de la cláusula-fetch-first en una sentencia-select hace que el cursor no se pueda suprimir (sólo-lectura). Esta cláusula no se puede especificar con la cláusula FOR UPDATE. es incorrecto y debe suprimirse. ------------------------------------------------------------------------ 38.5 Capítulo 6. Sentencias de SQL 38.5.1 Soporte para actualizar la clave de particionamiento Ahora se da soporte a la actualización de la clave de particionamiento. El siguiente texto procedente del Capítulo 6 debe suprimirse únicamente si DB2_UPDATE_PART_KEY=ON: Nota: Si DB2_UPDATE_PART_KEY=OFF, las restricciones siguen siendo válidas. 38.5.1.1 Sentencia: ALTER TABLE Reglas * Una columna de clave de particionamiento de una tabla no puede actualizarse (SQLSTATE 42997). * Una columna con posibilidad de nulos de una clave de particionamiento no puede incluirse como columna de clave externa cuando la relación se defina con ON DELETE SET NULL (SQLSTATE 42997). 38.5.1.2 Sentencia: CREATE TABLE Reglas * Una columna de clave de particionamiento de una tabla no puede actualizarse (SQLSTATE 42997). * Una columna con posibilidad de nulos de una clave de particionamiento no puede incluirse como columna de clave externa cuando la relación se defina con ON DELETE SET NULL (SQLSTATE 42997). 38.5.1.3 Sentencia: DECLARE GLOBAL TEMPORARY TABLE PARTITIONING KEY (nombre-columna,...) Nota: Las columnas de clave de particionamiento no pueden actualizarse (SQLSTATE 42997). 38.5.1.4 Sentencia: UPDATE Notas a pie de página * 108 Una columna de una clave de particionamiento no resulta actualizable (SQLSTATE 42997). La fila de datos debe suprimirse e insertarse para cambiar columnas en una clave de particionamiento. 38.5.2 Claves de índice mayores para bases de datos Unicode 38.5.2.1 ALTER TABLE La longitud de las columnas de longitud variable que forman parte de un índice cualquiera, incluidas las claves principales y exclusivas, definidas cuando la variable del registro DB2_INDEX_2BYTEVARLEN tenía el valor ON, se puede modificar para que sea mayor que 255 bytes. El hecho de que una columna de longitud variable esté asociada a una clave externa ya no impide que modificar la longitud de esa columna para que sea mayor que 255 bytes, para cualquiera sea el valor de la variable del registro. Sin embargo, los datos más largos de 255 bytes no se pueden insertar en la tabla a menos que la columna de la correspondiente clave primaria sea mayor que 255 bytes, lo cual sólo es posible si la clave primaria se creó cuando la variable del registro tenía el valor ON. 38.5.2.2 CREATE INDEX Se pueden definir índices en columnas de longitud variable cuya longitud sea mayor que 255 bytes si la variable del registro DB2_INDEX_2BYTEVARLEN tiene el valor ON. 38.5.2.3 CREATE TABLE Las claves principales y exclusivas con partes variables pueden tener un tamaño mayor que 255 si la variable de registro DB2_INDEX_2BYTEVARLEN tiene el valor ON (activado). Se pueden definir claves externas en columnas de longitud variable cuya longitud sea mayor que 255 bytes. 38.5.3 ALTER SEQUENCE ALTER SEQUENCE La sentencia ALTER SEQUENCE modifica los atributos de una secuencia mediante las acciones siguientes: * Reinicio de la secuencia * Cambio del incremento existente entre los valores subsiguientes de la secuencia * Definición de un valor máximo o mínimo * Cambio del número de números de secuencia que se ponen en antememoria * Cambio de la especificación de si la secuencia puede generar valores de forma cíclica * Cambio de la especificación de si los valores de la secuencia se deben generar en orden de petición Invocación Esta sentencia se puede intercalar en un programa de aplicación o se puede emitir mediante el uso de sentencias de SQL dinámicas. Es una sentencia ejecutable que se puede preparar de forma dinámica. Sin embargo, si es aplicable la opción de enlace DYNAMICRULES BIND, la sentencia no se puede preparar de forma dinámica (SQLSTATE 42509). Autorización El ID de autorización de la sentencia debe contener como mínimo uno de los privilegios siguientes: * Definidor de la secuencia * Privilegio ALTERIN para el esquema especificado implícita o explícitamente * Autorización SYSADM o DBADM Sintaxis >>-ALTER SEQUENCE--nombre-secuencia-----------------------------> .---------------------------------------------. V | >-------+-RESTART--+---------------------------+-+--+---------->< | '-WITH--constante-numérica--' | +-INCREMENT BY--constante-numérica-------+ +-+-MINVALUE--constante-numérica--+------+ | '-NO MINVALUE-------------------' | +-+-MAXVALUE--constante-numérica--+------+ | '-NO MAXVALUE-------------------' | +-+-CYCLE----+---------------------------+ | '-NO CYCLE-' | +-+-CACHE--constante-entera--+-----------+ | '-NO CACHE-----------------' | '-+-ORDER----+---------------------------' '-NO ORDER-' Descripción nombre-secuencia Identifica la secuencia específica. La combinación nombre de secuencia - nombre de esquema implícito/explícito no debe designar una secuencia ya existente en el servidor actual. Si en el esquema especificado explícita o implícitamente no existe ninguna secuencia cuyo nombre sea el indicado, se emite un error (SQLSTATE 42704). RESTART Reinicia la secuencia. Si constante-numérica no se especifica, la secuencia se reinicia en el valor especificado implícita o explícitamente como valor inicial en la sentencia CREATE SEQUENCE, cuando se creó originalmente la secuencia. WITH constante-numérica Reinicia la secuencia en el valor especificado. Este valor puede ser cualquier valor positivo o negativo que pueda asignarse a una columna del tipo de datos asociado a la secuencia (SQLSTATE 42820), sin dígitos distintos de cero a la derecha de la coma decimal (SQLSTATE 42894). INCREMENT BY Especifica el intervalo existente entre valores consecutivos de la secuencia. Este valor puede ser cualquier valor positivo o negativo que pueda asignarse a una columna del tipo de datos asociado a la secuencia (SQLSTATE 42820), sin exceder el valor de una constante entera grande (SLSTATE 42815) y sin dígitos distintos de cero a la derecha de la coma decimal (SQLSTATE 428FA). Si este valor es negativo, la secuencia de valores es decreciente. Si este valor es positivo, la secuencia de valores es creciente. Si este valor es 0 o mayor que el rango definido por MINVALUE y MAXVALUE, se genera un solo valor, pero por lo demás la secuencia se trata como una secuencia ascendente. MINVALUE o NO MINVALUE Especifica el valor mínimo en el que se reinicia o detiene una secuencia descendente de valores, o el valor al que vuelve una secuencia ascendente después de alcanzar el valor máximo. MINVALUE constante-numérica Especifica la constante numérica que es el valor mínimo. Este valor puede ser cualquier valor positivo o negativo que pueda asignarse a una columna del tipo de datos asociado a la secuencia (SQLSTATE 42820), sin dígitos distintos de cero a la derecha de la coma decimal (SQLSTATE 428FA), pero el valor debe ser menor o igual que el valor máximo (SQLSTATE 42815). NO MINVALUE Para una secuencia ascendente, es igual al valor de START WITH, o 1 si START WITH no se especifica. Para una secuencia descendente, es igual al valor mínimo del tipo de datos asociado a la secuencia. Éste es el valor por omisión. MAXVALUE o NO MAXVALUE Especifica el valor máximo en el que se reinicia o detiene una secuencia ascendente de valores, o el valor al que vuelve una secuencia ascendente después de alcanzar el valor mínimo. MAXVALUE constante-numérica Especifica la constante numérica que es el valor máximo. Este valor puede ser cualquier valor positivo o negativo que pueda asignarse a una columna del tipo de datos asociado a la secuencia (SQLSTATE 428FA), sin dígitos distintos de cero a la derecha de la coma decimal (SQLSTATE 428FA), pero el valor debe ser mayor o igual que el valor mínimo (SQLSTATE 42815). NO MAXVALUE Para una secuencia ascendente, es igual al valor máximo del tipo de datos asociado a la secuencia. Para una secuencia descendente, es igual al valor de START WITH, o -1 si START WITH no se especifica. Éste es el valor por omisión. CYCLE o NO CYCLE Especifica si la secuencia debe seguir generando valores después de alcanzar su valor máximo o mínimo. El límite de la secuencia se puede alcanzar con el valor siguiente que coincida exactamente con el límite, o bien superando el límite, en cuyo caso el valor siguiente se obtiene reiniciando la secuencia en el valor de START WITH si está permitida la reanudación del ciclo. CYCLE Especifica que la secuencia siga generando valores después de alcanzar su valor máximo o mínimo. Si se utiliza esta opción, cuando una secuencia ascendente alcanza su valor máximo, genera su valor mínimo; en el caso de secuencia descendente, cuando alcanza su valor mínimo, genera su valor máximo. Los valores máximo y mínimo de la secuencia determinan el rango utilizado para la generación cíclica de valores. Si el parámetro CYCLE está en vigor, se pueden generar valores duplicados para la secuencia. NO CYCLE Especifica que no se generen valores para la secuencia una vez alcanzado el valor máximo o mínimo de la secuencia. Éste es el valor por omisión. CACHE o NO CACHE Especifica si deben guardarse en la memoria algunos valores preasignados para acceder a ellos más rápidamente. Ésta es una opción para el rendimiento y ajuste del sistema. CACHE constante-entera Especifica el número máximo de valores de la secuencia que se preasignan y guardan en la memoria. La preasignación y mantenimiento de valores en la antememoria disminuye la E/S síncrona en el archivo de anotaciones cuando se generan valores para la secuencia. Si se produce un error del sistema, los valores de secuencia puestos en antememoria que no se han utilizado en sentencias confirmadas se pierden (es decir, no se utilizarán nunca). El valor especificado para la opción CACHE es el número máximo de valores de secuencia que se podrían perder si se produce un error del sistema. El valor mínimo es 2 (SQLSTATE 42815). El valor por omisión es CACHE 20. NO CACHE Especifica que no se deben preasignar valores de la secuencia. Esta opción asegura que no haya pérdida de valores en el caso de un error del sistema, cierre del sistema o desactivación de la base de datos. Si se especifica esta opción, los valores de la secuencia no se ponen en la antememoria. En este caso, cada petición de un nuevo valor para la secuencia origina una E/S síncrona en el archivo de anotaciones. NO ORDER o ORDER Especifica si los valores de la secuencia se deben generar en orden de petición. ORDER Especifica que los valores de la secuencia se generan en orden de petición. NO ORDER Especifica que no es necesario que los valores de la secuencia se generen en orden de petición. Éste es el valor por omisión. Después de reiniciar una secuencia o especificar el atributo CYCLE, la secuencia puede generar valores que son un duplicado de valores creados anteriormente por la secuencia. Notas * La sentencia ALTER SEQUENCE sólo afecta a los números subsiguientes de la secuencia. * El tipo de datos de una secuencia no se puede cambiar. En lugar de esto, puede eliminar la secuencia y volver a crearla especificando el tipo de datos deseado para la nueva secuencia. * Los valores puestos en la antememoria se pierden cuando se modifica una secuencia. Ejemplos Ejemplo 1: Puede especificar RESTART sin un valor numérico cuando desee reiniciar la secuencia en el valor de START WITH. El objetivo del presente ejemplo es generar números comprendidos entre 1 y el número de filas de una tabla y luego insertar los números en una columna añadida a la tabla utilizando tablas temporales. Otro posible uso sería volver a colocar los resultados donde todas las filas resultantes están numeradas: ALTER SEQUENCE org_seq RESTART SELECT NEXTVAL for org_seq, org.* FROM org 38.5.4 ALTER TABLE Cambios en fragmentos de la sintaxis: alteración-columna |--nombre-columna-----------------------------------------------> >-----+-SET--+-DATA TYPE--+-VARCHAR-----------+---(--entero--)--+---------+> | | +-CHARACTER VARYING-+ | | | | '-CHAR VARYING------' | | | '-EXPRESSION AS--(--expresión-generación--)--------' | +-ADD SCOPE--+-nombre-tabla-escrita-+-------------------------------+ | '-nombre-vista-escrita-' | '-+-| alteración-identidad |--------------------------------------+-' '-SET GENERATED--+-ALWAYS-----+---+---------------------------+-' '-BY DEFAULT-' '-| alteración-identidad |--' >---------------------------------------------------------------| alteración-identidad |---+-RESTART--+----------------------------+-+-----------------| | '-WITH--constante-numérica---' | +-SET INCREMENT BY--constante-numérica----+ | (1) | +-SET--+-NO MINVALUE-------------------+--+ | '-MINVALUE--constante-numérica--' | +-SET--+-NO MAXVALUE-------------------+--+ | '-MAXVALUE--constante-numérica--' | +-SET--+-CYCLE----+-----------------------+ | '-NO CYCLE-' | +-SET--+-NO CACHE-----------------+-------+ | '-CACHE--constante-entera--' | '-SET--+-NO ORDER-+-----------------------' '-ORDER----' Notas: 1. Estos parámetros se pueden especificar sin espacios en blanco: NOMINVALUE, NOMAXVALUE, NOCYCLE, NOCACHE y NOORDER. Se pueden utilizar estas formas abreviadas de una sola palabra como alternativa a las expresiones que constan de dos palabras. Añada los parámetros siguientes: SET GENERATED Especifica si deben generarse valores para la columna siempre o sólo cuando sea necesario un valor por omisión. ALWAYS Se genera siempre un valor para la columna cada vez que se inserta o actualiza una fila en la tabla. La columna ya debe estar definida como columna generada (SQLSTATE 42837). BY DEFAULT Se genera el valor para la columna cuando se inserta o actualiza una fila en la tabla, a menos que se especifique un valor. La columna ya debe estar definida como columna generada (SQLSTATE 42837). RESTART o RESTART WITH constante-numérica Inicializa el estado de la secuencia asociada a la columna de identidad. Si no se especifica WITH constante-numérica, la secuencia de la columna de identidad se reinicia en el valor especificado, implícita o explícitamente, como valor inicial cuando se creó originalmente la columna de identidad. constante-numérica es una constante numérica exacta que puede ser cualquier valor positivo o negativo que pueda asignarse a la columna (SQLSTATE 42820), y que no tenga dígitos distintos de cero a la derecha de la coma decimal (SQLSTATE 42894). La columna ya debe estar definida con el atributo IDENTITY (SQLSTATE 42837). El valor de constante-numérica se utilizará como valor siguiente de la columna. SET INCREMENT BY constante-numérica Especifica el intervalo existente entre valores consecutivos de la columna de identidad. La columna ya debe estar definida con el atributo IDENTITY (SQLSTATE 42837). Este valor puede ser cualquier valor positivo o negativo que pueda asignarse a la columna (SQLSTATE 42820), que no exceda el valor de una constante entera grande (SLSTATE 42815), y sin dígitos distintos de cero a la derecha de la coma decimal (SQLSTATE 42894). Si este valor es negativo, la secuencia de valores en la columna de identidad es decreciente. Si este valor es positivo, la secuencia de valores en la columna de identidad es creciente. Si este valor es 0 o mayor que el rango definido por MINVALUE y MAXVALUE, DB2 genera un solo valor, pero por lo demás la secuencia se trata como una secuencia ascendente. SET MINVALUE constante-numérica o NO MINVALUE Especifica el valor mínimo en el que se reinicia o detiene una columna de identidad descendente, o el valor al que vuelve una columna de identidad ascendente después de alcanzar el valor máximo. La columna ya debe estar definida con el atributo IDENTITY (SQLSTATE 42837). MINVALUE constante-numérica Especifique el valor mínimo de la constante numérica. Este valor puede ser cualquier valor positivo o negativo que pueda asignarse a la columna (SQLSTATE 42820), sin dígitos distintos de cero a la derecha de la coma decimal (SQLSTATE 42894), pero el valor debe ser menor que el valor máximo (SQLSTATE 42815). NO MINVALUE Para una secuencia ascendente, es igual al valor de START WITH, o 1 si START WITH no se especifica. Para una secuencia descendente, el valor es el valor mínimo del tipo de datos de la columna. SET MAXVALUE constante-numérica o NO MAXVALUE Especifica el valor máximo en el que se reinicia o detiene una columna de identidad ascendente, o el valor al que vuelve una columna de identidad descendente después de alcanzar el valor mínimo. La columna ya debe estar definida con el atributo IDENTITY (SQLSTATE 42837). MAXVALUE constante-numérica Especifica la constante numérica que es el valor máximo. Este valor puede ser cualquier valor positivo o negativo que pueda asignarse a la columna (SQLSTATE 42820), sin dígitos distintos de cero a la derecha de la coma decimal (SQLSTATE 42894), pero el valor debe ser mayor que el valor mínimo (SQLSTATE 42815). NO MAXVALUE Para una secuencia ascendente, el valor es el valor máximo del tipo de datos de la columna. Para una secuencia descendente, el valor es el valor de START WITH, o -1 si START WITH no se especifica. SET CYCLE o NO CYCLE Especifica si la columna de identidad debe seguir generando valores después de alcanzar el valor máximo o mínimo. La columna ya debe estar definida con el atributo IDENTITY (SQLSTATE 42837). CYCLE Especifica que se sigan generando valores para la columna después de alcanzar el valor máximo o mínimo. Si se utiliza esta opción, cuando una columna de identidad ascendente alcanza su valor máximo, genera su valor mínimo; en el caso de secuencia descendente, cuando alcanza su valor mínimo, genera su valor máximo. Los valores máximo y mínimo de la columna de identidad determinan el rango utilizado para la generación cíclica de valores. Si el parámetro CYCLE está en vigor, se pueden generar valores duplicados para una columna de identidad. Si se desea obtener valores únicos, se puede utilizar un índice de unicidad de una sola columna sobre la columna de identidad para asegurar la unicidad. Si existe un índice de unicidad para la columna de identidad y se genera un valor no único, se produce un error (SQLSTATE 23505). NO CYCLE Especifica que no se generen valores para la columna de identidad una vez alcanzado el valor máximo o mínimo. SET CACHE constante-entera o NO CACHE Especifica si deben guardarse en la memoria algunos valores preasignados para acceder a ellos más rápidamente. Ésta es una opción para el rendimiento y ajuste del sistema. La columna ya debe estar definida con el atributo IDENTITY (SQLSTATE 42837). CACHE constante-entera Especifica cuántos valores de la secuencia de identidad se preasignan y guardan en la memoria. Cuando se generan valores para la columna de identidad, la preasignación y mantenimiento de valores en la antememoria disminuye la E/S síncrona en el archivo de anotaciones. Si es necesario un nuevo valor para la columna de identidad y la antememoria no contiene valores sin utilizar disponibles, la asignación del valor requiere esperar a que se realicen operaciones de E/S en el archivo de anotaciones. En cambio, si es necesario un nuevo valor para la columna de identidad y la antememoria contiene un valor sin utilizar, la asignación de ese valor de identidad puede realizarse más rápidamente, pues se evitan operaciones de E/S en el archivo de anotaciones. Cuando se detiene un gestor de bases de datos (por ejemplo, desactivación de la base de datos, error o cierre del sistema), los valores de secuencia puestos en antememoria que no se han utilizado en sentencias confirmadas se pierden (es decir, no se utilizarán nunca). El valor especificado para la opción CACHE es el número máximo de valores de la columna de identidad que se podrían perder si se produce un error del sistema. El valor mínimo es 2 (SQLSTATE 42615). NO CACHE Especifica que no se deben preasignar valores para la columna de identidad. Si se especifica esta opción, los valores de la columna de identidad no se guardan en la antememoria. En este caso, cada petición de un nuevo valor de identidad origina una E/S síncrona en el archivo de anotaciones. SET ORDER o NO ORDER Especifica si los valores de la columna de identidad se deben generar en orden de petición. La columna ya debe estar definida con el atributo IDENTITY (SQLSTATE 42837). ORDER Especifica que los valores de la columna de identidad se generan en orden de petición. NO ORDER Especifica que no es necesario que los valores de la columna de identidad se generen en orden de petición. 38.5.5 SQL compuesto (intercalado) La sentencia ATOMIC del SQL compuesto no permite utilizar una sentencia COMMIT preparada. 38.5.6 Sentencia compuesta (dinámica) Sentencia compuesta (dinámica) Una sentencia compuesta agrupa varias sentencias para formar un bloque ejecutable. Se pueden declarar variables de SQL dentro de una sentencia compuesta atómica preparada dinámicamente. Invocación Esta sentencia se puede intercalar en un desencadenante, función de SQL o método de SQL, o se puede emitir mediante el uso de sentencias de SQL dinámicas. Es una sentencia ejecutable que se puede preparar de forma dinámica. Autorización No son necesarios privilegios para invocar una sentencia compuesta dinámica. Pero el ID de autorización de la sentencia compuesta debe contener los privilegios necesarios para invocar las sentencias de SQL incluidas en la sentencia compuesta. Sintaxis sentencia-compuesta-dinámica >>-+-----------------+--BEGIN ATOMIC----------------------------> | (1) | '-etiqueta:-------' >-----+-----------------------------------------------+---------> | .-----------------------------------------. | | V | | '-----+-| declaración-variable-SQL |-+---;---+--' '-| declaración-condición |----' .-,---------------------------------. V | >--------sentencia-procedimiento-SQL--;---+---------------------> >-----END--+-----------+--------------------------------------->< '-etiqueta--' declaración-variable-SQL .-,----------------------. V | |---DECLARE-------nombre-variable-SQL---+--tipo-datos-----------> .-DEFAULT NULL------------------. >-----+-------------------------------+-------------------------| '-DEFAULT--valores-por-omisión--' declaración-condición |---DECLARE--nombre-condición--CONDITION--FOR-------------------> .-VALUE-. .-SQLSTATE--+-------+---. >----+-----------------------+---constante-de-tipo-serie--------| Notas: 1. Se puede especificar una etiqueta sólo cuando la sentencia está incluida en la definición de una función, método o desencadenante. Descripción etiqueta Define la etiqueta del bloque de código ejecutable. Si se especifica la etiqueta inicial, se puede utilizar para calificar variables de SQL declaradas en la sentencia compuesta dinámica, y también se puede especificar en una sentencia LEAVE. Si se especifica la etiqueta final, debe ser igual a la etiqueta inicial. ATOMIC ATOMIC indica que, si se produce un error en la sentencia compuesta, se retrotraerán todas las sentencias de SQL de la sentencia compuesta y las sentencias restantes no se procesarán. sentencia-procedimiento-SQL Las siguientes sentencias de control de SQL se pueden utilizar dentro de la sentencia compuesta dinámica: o Sentencia FOR o Sentencia GET DIAGNOSTICS o Sentencia IF o Sentencia ITERATE o Sentencia LEAVE o Sentencia SIGNAL o Sentencia WHILE Las sentencias de SQL que se pueden emitir son: o Selección completa 6 o UPDATE de búsqueda o DELETE de búsqueda o INSERT o Sentencia "SET variable" declaración-variable-SQL Declara una variable que es local respecto a la sentencia compuesta dinámica. nombre-variable-SQL Define el nombre de una variable local. DB2 convierte a mayúsculas todos los nombres de variables de SQL. El nombre debe cumplir estas condiciones: + No puede ser igual que otro nombre de variable de SQL existente en la misma sentencia compuesta. + No puede ser igual que el nombre de un parámetro. + No puede ser igual que el nombre de una columna. Si una sentencia de SQL contiene un identificador que tiene el mismo nombre que una variable de SQL y que una referencia de columna, DB2 interpreta el identificador como una columna. tipo-datos Especifica el tipo de datos de la variable. DEFAULT valores-por-omisión o NULL Define el valor por omisión de la variable de SQL. La variable se inicializa cuando se invoca la sentencia compuesta dinámica. Si no se especifica un valor por omisión, la variable toma el valor NULL. declaración-condición Declara un nombre de condición y el correspondiente valor de SQLSTATE. nombre-condición Especifica el nombre de la condición. El nombre de la condición debe ser exclusivo dentro del cuerpo del procedimiento y sólo puede aparecer dentro de la sentencia compuesta en la que está declarada la condición. FOR SQLSTATE serie-caracteres-constante Especifica el SQLSTATE asociado a la condición. La serie-caracteres-constante se debe especificar en forma de cinco caracteres encerrados entre comillas simples, y no puede ser '00000'. Notas * Las sentencias compuestas dinámicas son compiladas por DB2 como si se tratara de una sentencia individual. Estas sentencias son útiles para escribir scripts pequeños en los que hay poco código de control del flujo, pero un flujo de datos importante. Para estructuras mayores que requieren un control complejo del flujo, con uso del anidamiento, es preferible utilizar procedimientos de SQL. 38.5.7 CREATE FUNCTION (fuente o plantilla) El diagrama de sintaxis se ha cambiado a lo siguiente: >>-CREATE FUNCTION--nombre-función------------------------------> >----(--+---------------------------------------------+---)-----> | .-,-------------------------------------. | | V | | '----+-------------------+---tipo-datos1---+--' '-nombre-parámetro--' >----*---RETURNS--tipo-datos2---*-------------------------------> >-----+------------------------------+--*-----------------------> '-SPECIFIC--nombre-específico--' >-----+-SOURCE--+-nombre-función---------------------------------+----------------+> | +-SPECIFIC--nombre-específico--------------------+ | | '-nombre-función--(--+--------------------+---)--' | | | .-,------------. | | | | V | | | | '----tipo-datos---+--' | | .-NOT DETERMINISTIC--. .-EXTERNAL ACTION----. | '-AS TEMPLATE--*----+--------------------+--*----+--------------------+--*--' '-DETERMINISTIC------' '-NO EXTERNAL ACTION-' >----*--------------------------------------------------------->< Añada lo siguiente a la sección "Descripción": DETERMINISTIC o NOT DETERMINISTIC Esta cláusula opcional especifica si la función devuelve siempre los mismos resultados para unos valores argumento determinados (DETERMINISTIC) o si la función depende de algunos valores de estado que afectan a los resultados (NOT DETERMINISTIC). Es decir, una función definida como DETERMINISTIC (determinista) debe siempre devolver la misma tabla para entradas de datos sucesivas idénticas. Cuando se especifica NOT DETERMINISTIC, se impiden las optimizaciones basadas en el hecho de que entradas de datos idénticas producen resultados idénticos. Debe especificarse NOT DETERMINISTIC, ya sea explícita o implícitamente, si el cuerpo de la función accede a un registro especial o invoca otra función no determinista (SQLSTATE 428C2). NO EXTERNAL ACTION o EXTERNAL ACTION Esta cláusula opcional especifica si la función realiza alguna acción que cambia el estado de un objeto no gestionado por el gestor de bases de datos. Cuando se especifica NO EXTERNAL ACTION, el sistema puede realizar determinadas optimizaciones basadas en el hecho de que las funciones no tienen ningún efecto externo. Debe especificarse EXTERNAL ACTION, ya sea explícita o implícitamente, si el cuerpo de la función invoca otra función que tiene una acción externa (SQLSTATE 428C2). 38.5.8 CREATE FUNCTION (función escalar, tabla o fila de SQL) El diagrama de sintaxis se ha cambiado a lo siguiente: >>-CREATE FUNCTION--nombre-función------------------------------> >----(--+---------------------------------------+---)---*-------> | .-,-------------------------------. | | V | | '----nombre-parámetro--tipo-datos1---+--' >----RETURNS--+-tipo-datos2----------------------+--*-----------> '--+-ROW---+---| lista-columnas |--' '-TABLE-' .-LANGUAGE SQL--. >-----+------------------------------+--*----+---------------+--> '-SPECIFIC--nombre-específico--' .-NOT DETERMINISTIC--. .-EXTERNAL ACTION----. >----*----+--------------------+--*----+--------------------+---> '-DETERMINISTIC------' '-NO EXTERNAL ACTION-' .-READS SQL DATA--. .-STATIC DISPATCH--. >----*----+-----------------+--*----+------------------+--*-----> '-CONTAINS SQL----' (1) .-CALLED ON NULL INPUT-------. >-----+----------------------------+--*-------------------------> >-----+------------------------------------------------------+--> | (2) | '-PREDICATES--(--| especificación-predicado |--)-------' >----| cuerpo-función-SQL |------------------------------------>< lista-columnas .-,------------------------------. V | |---(-----nombre-columna--tipo-datos3---+---)-------------------| cuerpo-función-SQL |---+-Sentencia RETURN-------------+----------------------------| '-sentencia-compuesta-dinámica-' Notas: 1. Se puede especificar NULL CALL en lugar de CALLED ON NULL INPUT 2. Sólo es válido si RETURNS especifica un resultado escalar (tipo-datos2) Cambie los parámetros siguientes: LANGUAGE SQL Especifica que la función se escribe utilizando SQL. Esta sección de parámetros sustituyes a la sección de parámetros "RETURN expresión, NULL, WITH expresión-tabla-común, selección-completa". cuerpo-función-SQL Especifica el cuerpo de la función. Los nombres de los parámetros pueden aparecer en el cuerpo de la función SQL. Los nombres de los parámetros pueden estar calificados con el nombre de la función para evitar referencias ambiguas. Si el cuerpo de la función SQL es una sentencia compuesta dinámica, debe contener como mínimo una sentencia RETURN y se debe ejecutar una sentencia RETURN cuando se invoca la función (SQLSTATE 42632). Si la función es una función de tabla o de fila, entonces puede contener una sola sentencia RETURN, la cual debe ser la última sentencia en la sentencia compuesta dinámica (SQLSTATE 429BD). Para obtener más información, vea Sentencia compuesta (dinámica) y RETURN. 38.5.9 CREATE METHOD El diagrama de sintaxis se ha cambiado por lo siguiente: CREATE METHOD Sintaxis >>-CREATE-------------------------------------------------------> >-----+-METHOD--+-nombre-método--------+---FOR--nombre-tipo--+--> | '-| signatura-método |-' | '-SPECIFIC METHOD--nombre-específico-------------------' >-----+-*----EXTERNAL--+-------------------------------+--*----+--------------------------------+--*--+> | '-NAME--+-'serie-caracteres'-+--' '-TRANSFORM GROUP--nombre-grupo--' | | '-identificador------' | '-| cuerpo-método-SQL |-------------------------------------------------------------------------' >-------------------------------------------------------------->< signatura-método |---nombre-método--(--+------------------------------------------------------------+---)--> | .-,-----------------------------------------------------. | | V | | '----+-------------------+---tipo-datos1--+-------------+--+-' '-nombre-parámetro--' '-AS LOCATOR--' >----+--------------------------------------------------------------------+-> '-RETURNS--+-tipo-datos2--+-------------+-------------------------+--' | '-AS LOCATOR--' | '-tipo-datos3--CAST FROM--tipo-datos4--+-------------+-' '-AS LOCATOR--' >---------------------------------------------------------------| cuerpo-método-SQL |---+-Sentencia RETURN-------------+----------------------------| '-sentencia-compuesta-dinámica-' Los parámetros siguientes sustituyen a la sección "RETURN expresión-escalar o NULL": cuerpo-método-SQL El cuerpo del método SQL define cómo se aplica el método si la especificación de método en CREATE TYPE es LANGUAGE SQL. El cuerpo del método SQL debe cumplir las partes siguientes de la especificación de método: o DETERMINISTIC o NOT DETERMINISTIC (SQLSTATE 428C2) o EXTERNAL ACTION o NO EXTERNAL ACTION (SQLSTATE 428C2) o CONTAINS SQL o READS SQL DATA (SQLSTATE 42985) Los nombres de los parámetros pueden aparecer en el cuerpo del método SQL. El sujeto del método se pasa a la implementación del método como primer parámetro implícito llamado SELF. Para obtener más información, vea Sentencia compuesta (dinámica) y RETURN. 38.5.10 CREATE SEQUENCE CREATE SEQUENCE La sentencia CREATE SEQUENCE crea una secuencia en el servidor de aplicaciones. Invocación Esta sentencia se puede intercalar en un programa de aplicación o se puede emitir mediante el uso de sentencias de SQL dinámicas. Es una sentencia ejecutable que se puede preparar de forma dinámica. Sin embargo, si es aplicable la opción de enlace DYNAMICRULES BIND, la sentencia no se puede preparar de forma dinámica (SQLSTATE 42509). Autorización El ID de autorización de la sentencia debe contener como mínimo uno de los privilegios siguientes: * Privilegio CREATEIN para el esquema especificado implícita o explícitamente * Autorización SYSADM o DBADM Sintaxis .-AS INTEGER------. >>-CREATE SEQUENCE--nombre-secuencia---*----+-----------------+-> '-AS--tipo-datos--' >----*----+---------------------------------+--*----------------> '-START WITH--constante-numérica--' .-INCREMENT BY 1--------------------. >-----+-----------------------------------+--*------------------> '-INCREMENT BY--constante-numérica--' (1) .-NO MINVALUE-------------------. >-----+-------------------------------+--*----------------------> '-MINVALUE--constante-numérica--' .-NO MAXVALUE-------------------. .-NO CYCLE--. >-----+-------------------------------+--*----+-----------+--*--> '-MAXVALUE--constante-numérica--' '-CYCLE-----' .-CACHE 20-----------------. .-NO ORDER--. >-----+--------------------------+--*----+-----------+--*------>< +-CACHE--constante-entera--+ '-ORDER-----' '-NO CACHE-----------------' Notas: 1. Estos parámetros se pueden especificar sin espacios en blanco: NOMINVALUE, NOMAXVALUE, NOCYCLE, NOCACHE y NOORDER. Se pueden utilizar estas formas abreviadas de una sola palabra como alternativa a las expresiones que constan de dos palabras. Descripción nombre-secuencia Designa la secuencia. La combinación nombre de secuencia - nombre de esquema implícito/explícito no debe designar una secuencia ya existente en el servidor actual (SQLSTATE 42710). La forma no calificada del nombre de secuencia es un identificador de SQL. La forma calificada es un calificador seguido de un punto y un identificador de SQL. El calificador es un nombre de esquema. Si el nombre de secuencia está calificado explícitamente con un nombre de esquema, el nombre de esquema no puede comenzar con 'SYS'; de lo contrario se producirá un error (SQLSTATE 42939). AS tipo-datos Especifica el tipo de datos que se deben utilizar para el valor de secuencia. El tipo de datos puede ser cualquier tipo numérico exacto (SMALLINT, INTEGER, BIGINT o DECIMAL) cuya escala sea 0, o un tipo diferenciado definido por el usuario cuyo tipo fuente es un tipo numérico exacto con escala 0 (SQLSTATE 42815). El valor por omisión es INTEGER. START WITH constante-numérica Especifica el primer valor de la secuencia. Este valor puede ser cualquier valor positivo o negativo que pueda asignarse a una columna del tipo de datos asociado a la secuencia (SQLSTATE 42820), sin dígitos distintos de cero a la derecha de la coma decimal (SQLSTATE 428FA). El valor por omisión es MINVALUE para secuencias ascendentes, y MAXVALUE para las secuencias descendentes. Este valor no es necesariamente igual al valor que una secuencia alcanza después de llegar al valor máximo o mínimo de la secuencia. La cláusula START WITH se puede utilizar para iniciar una secuencia fuera del rango utilizado para los ciclos de valores. El rango utilizado para los ciclos se define mediante MINVALUE y MAXVALUE. INCREMENT BY constante-numérica Especifica el intervalo existente entre valores consecutivos de la secuencia. Este valor puede ser cualquier valor positivo o negativo que pueda asignarse a una columna del tipo de datos asociado a la secuencia (SQLSTATE 42820), sin exceder el valor de una constante entera grande (SLSTATE 42815) y sin dígitos distintos de cero a la derecha de la coma decimal (SQLSTATE 428FA). Si este valor es negativo, la secuencia de valores es decreciente. Si este valor es positivo, la secuencia de valores es creciente. Si este valor es 0 o mayor que el rango definido por MINVALUE y MAXVALUE, se genera un solo valor, pero por lo demás la secuencia se trata como una secuencia ascendente. El valor por omisión es 1. MINVALUE o NO MINVALUE Especifica el valor mínimo en el que se reinicia o detiene una secuencia descendente de valores, o el valor al que vuelve una secuencia ascendente después de alcanzar el valor máximo. MINVALUE constante-numérica Especifica la constante numérica que es el valor mínimo. Este valor puede ser cualquier valor positivo o negativo que pueda asignarse a una columna del tipo de datos asociado a la secuencia (SQLSTATE 42820), sin dígitos distintos de cero a la derecha de la coma decimal (SQLSTATE 428FA), pero el valor debe ser menor o igual que el valor máximo (SQLSTATE 42815). NO MINVALUE Para una secuencia ascendente, es igual al valor de START WITH, o 1 si START WITH no se especifica. Para una secuencia descendente, es igual al valor mínimo del tipo de datos asociado a la secuencia. Éste es el valor por omisión. MAXVALUE o NO MAXVALUE Especifica el valor máximo en el que se reinicia o detiene una secuencia ascendente de valores, o el valor al que vuelve una secuencia ascendente después de alcanzar el valor mínimo. MAXVALUE constante-numérica Especifica la constante numérica que es el valor máximo. Este valor puede ser cualquier valor positivo o negativo que pueda asignarse a una columna del tipo de datos asociado a la secuencia (SQLSTATE 428FA), sin dígitos distintos de cero a la derecha de la coma decimal (SQLSTATE 428FA), pero el valor debe ser mayor o igual que el valor mínimo (SQLSTATE 42815). NO MAXVALUE Para una secuencia ascendente, es igual al valor máximo del tipo de datos asociado a la secuencia. Para una secuencia descendente, es igual al valor de START WITH, o -1 si START WITH no se especifica. Éste es el valor por omisión. CYCLE o NO CYCLE Especifica si la secuencia debe seguir generando valores después de alcanzar su valor máximo o mínimo. El límite de la secuencia se puede alcanzar con el valor siguiente que coincida exactamente con el límite de la condición o bien superándola. CYCLE Especifica que la secuencia siga generando valores después de alcanzar su valor máximo o mínimo. Si se utiliza esta opción, cuando una secuencia ascendente alcanza su valor máximo, genera su valor mínimo; en el caso de secuencia descendente, cuando alcanza su valor mínimo, genera su valor máximo. Los valores máximo y mínimo de la secuencia determinan el rango utilizado para la generación cíclica de valores. Si el parámetro CYCLE está en vigor, se pueden generar valores duplicados para la secuencia. NO CYCLE Especifica que no se generen valores para la secuencia una vez alcanzado el valor máximo o mínimo de la secuencia. Éste es el valor por omisión. CACHE o NO CACHE Especifica si deben guardarse en la memoria algunos valores preasignados para acceder a ellos más rápidamente. Ésta es una opción para el rendimiento y ajuste del sistema. CACHE constante-entera Especifica el número máximo de valores de la secuencia que se preasignan y guardan en la memoria. La preasignación y mantenimiento de valores en la antememoria disminuye la E/S síncrona en el archivo de anotaciones cuando se generan valores para la secuencia. Si se produce un error del sistema, los valores de secuencia puestos en antememoria que no se han utilizado en sentencias confirmadas se pierden (es decir, no se utilizarán nunca). El valor especificado para la opción CACHE es el número máximo de valores de secuencia que se podrían perder si se produce un error del sistema. El valor mínimo es 2 (SQLSTATE 42815). El valor por omisión es CACHE 20. NO CACHE Especifica que no se deben preasignar valores de la secuencia. Esta opción asegura que no haya pérdida de valores en el caso de un error del sistema, cierre del sistema o desactivación de la base de datos. Si se especifica esta opción, los valores de la secuencia no se ponen en la antememoria. En este caso, cada petición de un nuevo valor para la secuencia origina una E/S síncrona en el archivo de anotaciones. NO ORDER o ORDER Especifica si los valores de la secuencia se deben generar en orden de petición. ORDER Especifica que los valores de la secuencia se generan en orden de petición. NO ORDER Especifica que no es necesario que los valores de la secuencia se generen en orden de petición. Éste es el valor por omisión. Notas * Se puede definir una secuencia constante, es decir, una secuencia que siempre devuelve un valor constante. Para ello, especifique el mismo valor para MINVALUE y MAXVALUE, o especifique 0 para el valor de INCREMENT. En ambos casos, para permitir que NEXTVAL genere el mismo valor más de una vez, debe especificar CYCLE. Una secuencia constante se puede utilizar como variable global numérica. Puede utilizar ALTER SEQUENCE para ajustar los valores que se generarán para una secuencia constante. * Puede utilizar la sentencia ALTER SEQUENCE para hacer que la secuencia genere valores de forma cíclica. Si se especifica NO CYCLE, ya sea implícita o explícitamente, la secuencia se puede reiniciar o ampliar utilizando la sentencia ALTER SEQUENCE, para que se sigan generando valores una vez alcanzado el valor máximo o mínimo de la secuencia. * La puesta en antememoria de números de secuencia permite un acceso más rápido a un rango de números de secuencia. Cuando una aplicación accede a una secuencia que puede asignar el siguiente número de secuencia a partir de la antememoria, la asignación de números de secuencia se puede producir con rapidez. Si no es posible la asignación del siguiente número de la secuencia a partir de la antememoria, el proceso de asignación puede tener que esperar a que se realicen operaciones de E/S en un dispositivo de almacenamiento permanente. La selección de un valor para CACHE debe hacerse teniendo en cuenta los efectos sobre el rendimiento del sistema y los requisitos de la aplicación utilizada. * El propietario tiene los privilegios ALTER y USAGE sobre la nueva secuencia. El propietario sólo puede otorgar el privilegio USAGE y el otorgamiento sólo puede hacerse a PUBLIC. * La sintaxis siguiente también recibe soporte: NOMINVALUE, NOMAXVALUE, NOCYCLE, NOCACHE y NOORDER. Ejemplos Ejemplo 1: Creación de una secuencia llamada org_seq: CREATE SEQUENCE org_seq START WITH 1 INCREMENT BY 1 NO MAXVALUE NO CYCLE CACHE 24 38.5.11 CREATE TRIGGER CREATE TRIGGER Sintaxis >>-CREATE TRIGGER--nombre-desencadenante------------------------> >-----+-NO CASCADE BEFORE-+-------------------------------------> '-AFTER-------------' >-----+-INSERT--------------------------------+-----------------> +-DELETE--------------------------------+ '-UPDATE--+---------------------------+-' | .-,-----------------. | | V | | '-OF----nombre-columna---+--' >----ON--nombre-tabla-------------------------------------------> >-----+------------------------------------------------------------------------+> | .------------------------------------------------------. | | V (1) (2) .-AS-. | | '-REFERENCING-------------------+-OLD--+----+--nombre-correlación--+--+--' | .-AS-. | +-NEW-+----+--nombre-correlación---+ | .-AS-. | +-OLD_TABLE-+----+--identificador--+ | .-AS-. | '-NEW_TABLE-+----+--identificador--' >-----+-FOR EACH ROW---------------+--MODE DB2SQL---------------> | (3) | '--------FOR EACH STATEMENT--' >-----| acción-activada |-------------------------------------->< acción-activada |--+---------------------------------+--------------------------> '-WHEN--(--condición-búsqueda--)--' >----sentencia-procedimiento-SQL--------------------------------| Notas: 1. OLD y NEW se pueden especificar una sola vez cada uno. 2. OLD_TABLE y NEW_TABLE se pueden especificar una sola vez cada uno y sólo para desencadenantes AFTER (desencadenantes posteriores). 3. FOR EACH STATEMENT no se puede especificar para desencadenantes BEFORE (desencadenantes anteriores). Sustituya la descripción de "acción-activada" por lo siguiente: acción-activada Especifica la acción que se debe realizar cuando se activa un desencadenante. Una acción activada consta de una sentencia de procedimiento SQL y una condición opcional para la ejecución de esa sentencia de procedimiento. WHEN (condición-búsqueda) Especifica una condición cuya evaluación da un resultado verdadero, falso o desconocido. La condición de búsqueda permite determinar si una determinada acción activada se debe o no ejecutar. La acción asociada se ejecuta sólo si la evaluación de la condición de búsqueda especificada da un resultado verdadero. Si se omite la cláusula WHEN, la correspondiente sentencia de procedimiento SQL se ejecuta siempre. sentencia-procedimiento-SQL La sentencia de procedimiento SQL puede contener una sentencia compuesta dinámica o cualquiera de las sentencias de control SQL listadas en Sentencia compuesta (dinámica). Si se especifica un desencadenante anterior (BEFORE), la sentencia de procedimiento SQL puede también contener una selección completa o una sentencia de variable SET (SQLSTATE 42987). Si se utiliza un desencadenante posterior (AFTER), una sentencia de procedimiento SQL puede también incluir uno de los elementos siguientes (SQLSTATE 42987): o una sentencia INSERT de SQL o una sentencia UPDATE de búsqueda de SQL o una sentencia DELETE de búsqueda de SQL o una sentencia SET "variable" o una selección completa 7 La sentencia de procedimiento SQL no puede hacer referencia a una variable de transición no definida (SQLSTATE 42703) ni a una tabla temporal declarada (SQLSTATE 42995). La sentencia de procedimiento SQL contenida en un desencadenante anterior (BEFORE) no puede hacer referencia a una tabla de resumen definida con REFRESH IMMEDIATE (SQLSTATE 42997). La sentencia de procedimiento SQL contenida en un desencadenante anterior (BEFORE) no puede hacer referencia a una columna generada, que no sea la columna de identidad, en la nueva variable de transición (SQLSTATE 42989). La sección de Notas se ha cambiado a lo siguiente: * El resultado de una selección completa especificada en la sentencia de procedimiento SQL no es accesible dentro ni fuera del desencadenante. * Desencadenantes inoperativos: Un desencadenante inoperativo es un desencadenante que ya no puede utilizarse y por tanto no se activa nunca. Un desencadenante pasa a ser inoperativo cuando se cumple cualquiera de estas condiciones: o Se revoca un privilegio que el creador del desencadenante necesita tener para ejecutar el desencadenante. o Se elimina un objeto, tal como una tabla, vista o alias, del cual depende la acción activada. o Pasa a ser inoperativa una vista de la cual depende la acción activada. o Se elimina un alias que es la tabla sujeto del desencadenante. En términos prácticos, un desencadenante inoperativo es aquél para el cual se ha eliminado una definición de desencadenante como resultado de la propagación en cascada de normas para sentencias DROP o REVOKE. Por ejemplo, cuando se elimina una vista, pasa a ser inoperativo cualquier desencadenante que tenga una sentencia de procedimiento SQL definida utilizando esa vista. Cuando un desencadenante deviene inoperativo, se inhabilitan todos los paquetes que contienen sentencias con operaciones de activación del desencadenante. Cuando el paquete se vuelve a enlazar (explícita o implícitamente), se pasa completamente por alto el desencadenante inoperativo. De la misma manera, las aplicaciones con sentencias de SQL dinámicas que activaban el desencadenante también pasarán por alto cualquier desencadenante inoperativo. El nombre del desencadenante se puede seguir especificando en las sentencias DROP TRIGGER y COMMENT ON TRIGGER. Puede emitir la sentencia CREATE TRIGGER para reconstruir un desencadenante inoperativo, utilizando el texto de definición del desencadenante. Este texto de definición de desencadenante se guarda en la columna TEXT de SYSCAT.TRIGGERS. No es necesario eliminar explícitamente el desencadenante inoperativo para poder volver a crearlo. Cuando se emite una sentencia CREATE TRIGGER con un nombre de desencadenante inoperativo, el desencadenante se sustituye por un aviso (SQLSTATE 01595). Los desencadenante inoperativos están indicados con una X en la columna VALID de la vista de catálogo SYSCAT.TRIGGERS. * Errores al ejecutar desencadenantes: Los errores que se producen durante la ejecución de sentencias de SQL activadas por un desencadenante se devuelven utilizando SQLSTATE 09000, a menos que el error se considere grave. Si el error es grave, se devuelve el SQLSTATE de error grave. El campo SQLERRMC de la SQLCA para errores no graves incluye el nombre del desencadenante, el SQLCODE, el SQLSTATE y todos los símbolos resultantes del error que sean aplicables. La sentencia de procedimiento SQL puede incluir una sentencia SIGNAL SQLSTATE o contener una función RAISE_ERROR. En ambos casos, el SQLSTATE devuelto es el especificado en la sentencia SIGNAL SQLSTATE o condición RAISE_ERROR. 38.5.12 CREATE WRAPPER Linux utiliza bibliotecas llamadas LIBDRDA.SO y LIBSQLNET.SO, no LIBDRDA.A ni LIBSQLNET.A. 38.5.13 DECLARE CURSOR Dentro de la sentencia "DECLARE CURSOR", casi al final de la sección Notas, se debe cambiar la siguiente frase: Un cursor ambiguo se considera de sólo lectura si la opción de vinculación BLOCKING es ALL; de lo contrario, se considera suprimible. por: Un cursor ambiguo se considera de sólo lectura si la opción de vinculación BLOCKING es ALL; de lo contrario, se considera actualizable. Se ha cambiado "suprimible" por "actualizable". 38.5.14 DELETE El diagrama de sintaxis de la sentencia DELETE de búsqueda se ha cambiado a lo siguiente: >>-DELETE FROM----+-nombre-tabla-------------------+------------> +-nombre-vista-------------------+ '-ONLY--(--+-nombre-tabla-+---)--' '-nombre-vista-' >-----+-----------------------------+---------------------------> | .-AS-. | '-+----+--nombre-correlación--' >-----+----------------------------+---+---------------+------->< '-WHERE--condición-búsqueda--' '-WITH--+-RR-+--' +-RS-+ +-CS-+ '-UR-' DELETE de posición: >>-DELETE FROM----+-nombre-tabla-------------------+------------> +-nombre-vista-------------------+ '-ONLY--(--+-nombre-tabla-+---)--' '-nombre-vista-' >----WHERE CURRENT OF--nombre-cursor--------------------------->< Añada lo siguiente a la sección "Descripción": WITH Especifica el nivel de aislamiento utilizado al localizar las filas que deben suprimirse. RR Lectura repetida RS Estabilidad de lectura CS Estabilidad del cursor UR Lectura no comprometida El nivel de aislamiento predefinido de la sentencia es el nivel de aislamiento del paquete en el que está enlazada la sentencia. 38.5.15 DROP Añada la opción siguiente: >>-SEQUENCE--nombre-secuencia--RESTRICT------------------------>< Añada los parámetros siguientes: SEQUENCE nombre-secuencia RESTRICT Identifica la secuencia determinada que se debe eliminar. El nombre-secuencia, junto con el nombre de esquema implícito o explícito, debe designar una secuencia existente en el servidor actual. Si en el esquema especificado explícita o implícitamente no existe ninguna secuencia cuyo nombre sea el indicado, se emite un error (SQLSTATE 42704). La palabra clave RESTRICT evita que la secuencia se elimine si la definición de una columna de tabla hace referencia a la secuencia (mediante una columna IDENTITY). Nota: o Las secuencias creadas por el sistema para columnas IDENTITY no se pueden eliminar utilizando el mandato "DROP secuencia". o Cuando se elimina una secuencia, se eliminan también todos los privilegios establecidos para ella. La tabla que muestra las dependencias existentes entre los objetos (Tabla 27) debe actualizarse de la manera siguiente: Nueva fila: DROP SEQUENCE. La entrada de tabla correspondiente a la intersección de la fila "DROP SEQUENCE" y la columna "PACKAGE" será una "A". El resto de las entradas en esta nueva fila será "-" 38.5.16 GRANT (privilegios para secuencias) GRANT (privilegios para secuencias) Esta forma de la sentencia GRANT otorga privilegios para una secuencia definida por el usuario. Invocación Esta sentencia se puede intercalar en un programa de aplicación o se puede emitir mediante el uso de sentencias de SQL dinámicas. Es una sentencia ejecutable que se puede preparar de forma dinámica. Sin embargo, si es aplicable la opción de enlace DYNAMICRULES BIND, la sentencia no se puede preparar de forma dinámica (SQLSTATE 42509). Autorización El ID de autorización de la sentencia debe contener como mínimo uno de los privilegios siguientes: * Propietario de la secuencia * Autorización SYSADM o DBADM Sintaxis >>-GRANT--USAGE--ON SEQUENCE--nombre-secuencia--TO PUBLIC------>< Descripción USAGE Otorga el privilegio USAGE para una secuencia. ON SEQUENCE nombre-secuencia Identifica la secuencia para la que se debe otorgar el privilegio USAGE. El nombre-secuencia, junto con el nombre de esquema implícito o explícito que actúa como calificador, debe designar de forma exclusiva una secuencia existente en el servidor actual. Si en el esquema especificado no existe ninguna secuencia cuyo nombre sea el indicado, se emite un error (SQLSTATE 42704). TO PUBLIC Otorga el privilegio USAGE a todos los usuarios. Ejemplos Ejemplo 1: Otorgamiento del privilegio a cualquier usuario para una secuencia llamada MYNUM GRANT USAGE ON SEQUENCE MYNUM TO PUBLIC 38.5.17 INSERT El diagrama de sintaxis se ha cambiado a lo siguiente: >>-INSERT INTO----+-nombre-tabla-+------------------------------> '-nombre-vista-' >-----+-------------------------------+-------------------------> | .-,-----------------. | | V | | '-(-----nombre-columna---+---)--' .-,-----------------------------------. V | >-----+-VALUES------+-+-expresión-+----------------+--+---------------+> | | +-NULL------+ | | | | '-DEFAULT---' | | | | .-,----------------. | | | | V | | | | '-(------+-expresión-+--+---)--' | | +-NULL------+ | | '-DEFAULT---' | '-+-------------------------------------+---selección-completa--' | .-,------------------------. | | V | | '-WITH-----expresión-tabla-común---+--' >-----+---------------+---------------------------------------->< '-WITH--+-RR-+--' +-RS-+ +-CS-+ '-UR-' Añada lo siguiente a la sección "Descripción": WITH Especifica el nivel de aislamiento bajo el que se ejecuta la selección completa (fullselect). RR Lectura repetida RS Estabilidad de lectura CS Estabilidad del cursor UR Lectura no comprometida El nivel de aislamiento predefinido de la sentencia es el nivel de aislamiento del paquete en el que está enlazada la sentencia. 38.5.18 SELECT INTO El diagrama de sintaxis se ha cambiado a lo siguiente: .-,------------------------------. V | >>-cláusula-select--INTO-------variable-lenguaje-principal---+--> >----cláusula-from----------------------------------------------> >----+----------------+--+-------------------+--+-----------------+-> '-cláusula-where-' '-cláusula-group-by-' '-cláusula-having-' >-----+---------------+---------------------------------------->< '-WITH--+-RR-+--' +-RS-+ +-CS-+ '-UR-' Añada lo siguiente a la sección "Descripción": WITH Especifica el nivel de aislamiento bajo el que se ejecuta la sentencia SELECT INTO. RR Lectura repetida RS Estabilidad de lectura CS Estabilidad del cursor UR Lectura no comprometida El nivel de aislamiento predefinido de la sentencia es el nivel de aislamiento del paquete en el que está enlazada la sentencia. 38.5.19 SET ENCRYPTION PASSWORD SET ENCRYPTION PASSWORD La sentencia SET ENCRYPTION PASSWORD define la contraseña que se utilizará en las funciones de cifrado y descifrado. La contraseña no está vinculada a la autenticación de DB2 y se utiliza sólo para el cifrado de datos. Esta sentencia no está bajo el control de las transacciones. Invocación Esta sentencia se puede intercalar en un programa de aplicación o se puede emitir interactivamente. Es una sentencia ejecutable que se puede preparar de forma dinámica. Autorización No es necesaria ninguna autorización para ejecutar esta sentencia. Sintaxis .-=-. >>-SET--ENCRYPTION PASSWORD--+---+--+-variable-lenguaje-principal-+-> '-constante-de-tipo-serie-----' >-------------------------------------------------------------->< Descripción La contraseña definida por ENCRYPTION PASSWORD se puede utilizar en las funciones internas ENCRYPT, DECRYPT_BIN y DECRYPT_CHAR para el cifrado basado en contraseña. La longitud del valor debe estar comprendida entre 6 y 127, ambos inclusive. Los caracteres se deben especificar utilizando la combinación exacta deseada de mayúsculas y minúsculas, pues no hay conversión a mayúsculas. variable-lenguaje-principal Es una variable de tipo CHAR o VARCHAR. La longitud del contenido de la variable de lenguaje principal debe estar comprendida entre 6 y 127, ambos inclusive (SQLSTATE 428FC). Este valor no puede ser nulo. Los caracteres se deben especificar utilizando la combinación exacta deseada de mayúsculas y minúsculas, pues no hay conversión a mayúsculas. constante-de-tipo-serie Es una constante de tipo serie de caracteres. La longitud debe estar comprendida entre 6 y 127, ambos inclusive (SQLSTATE 428FC). Reglas * El valor inicial de ENCRYPTION PASSWORD es la serie de caracteres vacía (''). * La variable de lenguaje principal o la constante de tipo serie de caracteres se pasa al servidor de bases de datos utilizando mecanismos normales de DB2. Notas * Vea 38.3.2.3, ENCRYPT y 38.3.2.2, DECRYPT_BIN y DECRYPT_CHAR para obtener más información sobre el uso de esta sentencia. Ejemplos Ejemplo 1: La sentencia siguiente define la contraseña de cifrado. SET ENCRYPTION PASSWORD = 'bubbalu' 38.5.20 SET variable-transición Esta sección se ha cambiado a lo siguiente: SET Variable La sentencia "SET Variable" asigna valores a variables locales o a nuevas variables de transición. Esta sentencia está bajo el control de las transacciones. Invocación Esta sentencia sólo se puede utilizar como sentencia de SQL en una sentencia compuesta dinámica, en un desencadenante, en una función de SQL o en un método SQL. Autorización Para hacer referencia a una variable de transición, el ID de autorización del creador del desencadenante debe contener como mínimo uno de los privilegios siguientes: * Privilegio UPDATE para las columnas referenciadas en el lado izquierdo de la asignación y privilegio SELECT para las columnas referenciadas en el lado derecho. * Privilegio CONTROL para la tabla (tabla sujeto del desencadenante) * Autorización SYSADM o DBADM. Para ejecutar esta sentencia con una selección completa de fila en el lado derecho de la asignación, el ID de autorización del definidor del desencadenante o el propietario de la sentencia compuesta dinámica debe tener como mínimo uno de estos privilegios para cada tabla o vista referenciada: * Privilegio SELECT * Privilegio CONTROL * Autorización SYSADM o DBADM. Sintaxis >>-SET----------------------------------------------------------> .-,--------------------------------------------------------------------------------------. V | >--------+-| variable-destino |--=--+-expresión-+-------------------------------------------+--+> | +-NULL------+ | | '-DEFAULT---' | | .-,-----------------------. .-,-------------------. | | V | V (1) | | '-(-----| variable-destino |---+---)--=--(--+----+-expresión------+--+------+---)--' | +-NULL-----------+ | | '-DEFAULT--------' | | (2) | '-selección-completa-fila-------' >-------------------------------------------------------------->< variable-destino |---+-nombre-variable-SQL--------+------------------------------> '-nombre-variable-transición-' >-----+---------------------------+-----------------------------| | .---------------------. | | V | | '----..nombre-atributo---+--' Notas: 1. El número de expresiones, valores NULL y valores DEFAULT debe coincidir con el número de variables de destino. 2. El número de columnas en la lista de selección debe coincidir con el número de variables de destino. Descripción variable-destino Identifica la variable de destino de la asignación. No puede especificarse una misma variable de destino más de una vez (SQLSTATE 42701). nombre-variable-SQL Identifica la variable de SQL que es el destino de la asignación. Las variables de SQL se deben declarar para poder utilizarlas. Se pueden definir variables de SQL en una sentencia compuesta dinámica. nombre-variable-transición Identifica la columna que se debe actualizar en la fila de transición. El nombre de variable de transición debe identificar una columna de la tabla sujeto de un desencadenante, que puede estar calificada por un nombre de correlación correspondiente al nuevo valor (SQLSTATE 42703). ..nombre-atributo Especifica el atributo de un tipo estructurado que está definido como una asignación de atributo. El nombre de variable SQLo nombre de variable de transición especificado se debe definir con un tipo estructurado definido por el usuario (SQLSTATE 428DP). El nombre de atributo debe ser un atributo del tipo estructurado (SQLSTATE 42703). Cuando una asignación no utiliza la cláusula ..nombre de atributo se denomina asignación convencional. expresión Indica el nuevo valor de la variable-destino. El tipo de la expresión puede ser cualquiera de los descritos en el Capítulo 2 del manual Consulta de SQL. La expresión no puede incluir una función de columna, excepto si la expresión aparece dentro de una selección completa escalar (SQLSTATE 42903). En el contexto de una sentencia CREATE TRIGGER, una expresión puede contener referencias a variables de transición nuevas (OLD) y antiguas (NEW), las cuales deben estar calificadas por el nombre de correlación para especificar qué variable de transición utilizar (SQLSTATE 42702). NULL Especifica el valor nulo y sólo se puede especificar para columnas que pueden contener nulos (SQLSTATE 23502). Una asignación de atributos no puede tener el valor NULL (SQLSTATE 429B9), a menos que se realizara una conversión al tipo de datos del atributo. DEFAULT Especifica que debe utilizarse el valor por omisión. Si la variable-destino es una columna, el valor insertado depende de cómo se definió la columna en la tabla. o Si la columna se definió utilizando la cláusula WITH DEFAULT, se utiliza el valor por omisión definido para la columna. o Si la columna se definió utilizando la cláusula IDENTITY, el valor es generado por el gestor de bases de datos. o Si la columna se definió sin especificar la cláusula WITH DEFAULT, la cláusula IDENTITY ni la cláusula NOT NULL, el valor es NULL. o Si la columna se definió utilizando la cláusula NOT NULL y no se usa la cláusula IDENTITY o no se usa la cláusula WITH DEFAULT o se usa DEFAULT NULL, no se puede especificar la palabra clave DEFAULT para esa columna (SQLSTATE 23502). Si la variable-destino es una variable de SQL, el valor que se inserta es el valor por omisión, definido explícita o implícitamente en la declaración de la variable. selección-completa-fila Es una selección completa que devuelve una fila individual junto con el número de columnas correspondiente al número de variables de destino especificadas para la asignación. Los valores se asignan a cada variable de destino correspondiente. Si el resultado de la selección completa no devuelve ninguna fila, se asignan valores nulos. En el contexto de una sentencia CREATE TRIGGER, una selección completa de fila puede contener referencias a variables de transición antiguas (OLD) y nuevas (NEW), las cuales deben estar calificadas por su nombre de correlación para especificar qué variable de transición a utilizar (SQLSTATE 42702). Se devuelve un error si hay más de una fila en el resultado (SQLSTATE 21000). Reglas * El número de valores que deben asignarse procedentes de expresiones, valores NULL y valores DEFAULT o valores de la selección completa de fila debe coincidir con el número de variables de destino especificadas para la asignación (SQLSTATE 42802). * La sentencia "SET Variable" no puede asignar una variable SQL y una variable de transición en una misma sentencia (SQLSTATE 42997). * Los valores se asignan a las variables de destino de acuerdo con las reglas de asignación descritas en el Capítulo 2 del manual Consulta de SQL. Si la sentencia se utiliza en un desencadenante BEFORE UPDATE, y el registro contiene la variable DB2_UPDATE_PART_KEY=OFF, una variable de transición especificada como variable de destino no puede ser una columna de clave de particionamiento (SQLSTATE 42997). Notas * Si se incluye más de una asignación, se evalúan todas las expresiones y selecciones completas de fila antes de efectuar las asignaciones. Por tanto, las referencias a variables de destino en una expresión o selección completa de fila son siempre el valor de la variable de destino antes de cualquier asignación de la sentencia SET. * Cuando se actualiza una columna de identidad definida como tipo diferenciado, el cálculo completo se realiza sobre el tipo original y el resultado se convierte al tipo diferenciado antes de asignar realmente el valor a la columna. 8 * Para hacer que DB2 genere un valor en una sentencia SET para una columna de identidad, utilice la palabra clave DEFAULT: SET NEW.EMPNO = DEFAULT En este ejemplo, NEW.EMPNO está definido como columna de identidad, y DB2 genera el valor utilizado para actualizar esa columna. Los ejemplos utilizados para esta sentencia siguen siendo los mismos. 38.5.21 UPDATE El diagrama de sintaxis de la sentencia UPDATE de búsqueda se ha cambiado a lo siguiente: >>-UPDATE----+-nombre-tabla-------------------+-----------------> +-nombre-vista-------------------+ '-ONLY--(--+-nombre-tabla-+---)--' '-nombre-vista-' >-----+-----------------------------+---------------------------> | .-AS-. | '-+----+--nombre-correlación--' >-----SET--| cláusula-asignación |------------------------------> >-----+----------------------------+---+---------------+------->< '-WHERE--condición-búsqueda--' '-WITH--+-RR-+--' +-RS-+ +-CS-+ '-UR-' Añada lo siguiente a la sección "Descripción": WITH Especifica el nivel de aislamiento bajo el que se ejecuta la sentencia UPDATE. RR Lectura repetida RS Estabilidad de lectura CS Estabilidad del cursor UR Lectura no comprometida El nivel de aislamiento predefinido de la sentencia es el nivel de aislamiento del paquete en el que está enlazada la sentencia. ------------------------------------------------------------------------ 38.6 Capítulo 7. Procedimientos de SQL (ahora llamado "Sentencias de control de SQL") Las sentencias de control son sentencias de SQL que permiten utilizar SQL de forma similar a como se escribe un programa en un lenguaje de programación estructurada. Las sentencias de control de SQL se pueden utilizar en el cuerpo de una rutina, en un desencadenante o en una sentencia compuesta dinámica. Este capítulo describe las sentencias de control de SQL soportadas y su sintaxis, junto con la sentencia de procedimiento SQL. 38.6.1 Sentencia de procedimiento SQL La información sobre la Sentencia de Procedimiento SQL ha cambiado a lo siguiente: Sentencia de procedimiento SQL Este capítulo contiene los diagramas de sintaxis, las descripciones semánticas, la normas y ejemplos sobre el uso de las sentencias que forman el cuerpo de procedimiento de una rutina de SQL, un desencadenante o una sentencia compuesta dinámica. Sintaxis >>-+------------+---+-| sentencia-control-SQL |-+-------------->< '-etiqueta:--' '-| sentencia-SQL |---------' sentencia-control-SQL (1) |---+-sentencia ALLOCATE CURSOR-----------------+---------------| | (1) | +-sentencia de asignación-------------------+ | (1) | +-sentencia ASSOCIATE LOCATORS--------------+ | (1) | +-sentencia CASE----------------------------+ | (2) | +-sentencia compuesta dinámica--------------+ +-sentencia FOR-----------------------------+ +-sentencia GET DIAGNOSTICS-----------------+ | (1) | +-sentencia GOTO----------------------------+ +-sentencia IF------------------------------+ +-sentencia ITERATE-------------------------+ +-sentencia LEAVE---------------------------+ | (1) | +-sentencia LOOP----------------------------+ | (1) | +-sentencia compuesta de procedimiento------+ | (1) | +-sentencia REPEAT--------------------------+ | (1) | +-sentencia RESIGNAL------------------------+ +-sentencia RETURN--------------------------+ +-sentencia SIGNAL--------------------------+ '-sentencia WHILE---------------------------' Notas: 1. Esta sentencia sólo se puede utilizar dentro del ámbito de un procedimiento SQL. 2. Esta sentencia sólo se puede utilizar dentro de un desencadenante, una función SQL o un método SQL. Debe ser la sentencia de nivel más externo. Descripción etiqueta: Especifica la etiqueta de una sentencia de procedimiento SQL. La etiqueta debe ser exclusiva dentro de una lista de sentencias de procedimiento SQL, incluidas las sentencias compuestas que estén anidadas dentro de la lista. Las sentencias compuestas que no estén anidadas puede utilizar la misma etiqueta. Se puede utilizar una lista de sentencias de procedimiento SQL en varias sentencias de control SQL. Dentro del ámbito de un desencadenante, una función o método SQL, o de una sentencia compuesta dinámica, sólo pueden tener etiqueta la sentencia compuesta dinámica y las sentencias FOR y WHILE. sentencia-SQL El cuerpo de un procedimiento SQL puede contener todas las sentencias SQL ejecutables, con excepción de las siguientes: o CONNECT o CREATE, para objetos que no sean índices, tablas ni vistas o DESCRIBE o DISCONNECT o DROP, para objetos que no sean índices, tablas ni vistas o FLUSH EVENT MONITOR o REFRESH TABLE o RELEASE (sólo para una conexión) o RENAME TABLE o RENAME TABLESPACE o REVOKE o SET CONNECTION o SET INTEGRITY Nota: El cuerpo del procedimiento SQL puede contener sentencias CALL, pero estas sentencias sólo pueden invocar otro procedimiento SQL o un procedimiento en lenguaje C. Las sentencias CALL incluidas dentro de un procedimiento SQL no pueden invocar otros tipos de procedimientos almacenados. 38.6.2 FOR FOR La sentencia FOR ejecuta una sentencia o grupo de sentencias para cada fila de una tabla. Sintaxis >>-+------------+---FOR--nombre-bucle-for--AS-------------------> '-etiqueta:--' >-----+---------------------------------+--sentencia-select-----> | (1) | '-nombre-cursor--CURSOR FOR-------' .-----------------------------------. V | >----DO-------sentencia-procedimiento-SQL--;---+--END FOR-------> >-----+-----------+-------------------------------------------->< '-etiqueta--' Notas: 1. Esta opción sólo se puede utilizar dentro del ámbito de un procedimiento SQL. Descripción etiqueta Especifica la etiqueta de la sentencia FOR. Si se especifica la etiqueta inicial, esa etiqueta se puede utilizar en sentencias LEAVE e ITERATE. Si se especifica la etiqueta final, debe ser igual a la etiqueta inicial. nombre-bucle-for Especifica una etiqueta para la sentencia compuesta implícita que se genera para ejecutar la sentencia FOR. Esta etiqueta cumple las reglas aplicables a la etiqueta de una sentencia compuesta, salvo que no se puede utilizar con una sentencia ITERATE ni LEAVE dentro de la sentencia FOR. El nombre-bucle-for se utiliza para calificar los nombres de columna devueltos por la sentencia-select especificada. nombre-cursor Designa el cursor que se utiliza para seleccionar filas de la tabla resultante de ejecutar la sentencia SELECT. Si no se especifica un nombre de cursor, DB2 genera un nombre de cursor exclusivo. sentencia-select Especifica la sentencia SELECT del cursor. Todas las columnas de la lista de selección deben tener un nombre y no pueden existir dos columnas con el mismo nombre. Dentro de un desencadenante, función, método o sentencia compuesta dinámica, la sentencia-select de constar sólo de una selección-completa con expresiones de tabla común opcionales. sentencia-procedimiento-SQL Especifica una sentencia (o sentencias) que se debe invocar para cada fila de la tabla. Reglas * La lista de selección debe constar de nombres de columna exclusivos y la tabla especificada en la lista de selección debe existir cuando se crea el procedimiento, o debe ser una tabla creada en una sentencia anterior de procedimiento SQL. * El cursor especificado en una sentencia FOR no se puede referenciar fuera de la sentencia FOR y no se puede especificar en las sentencias OPEN, FETCH ni CLOSE. Ejemplos El ejemplo siguiente utiliza la sentencia FOR para ejecutar un proceso iterativo sobre la tabla employee completa. Para cada fila de la tabla, la variable de SQL fullname toma el valor formado por el primer apellido del empleado, una coma, el nombre, un espacio en blanco y la inicial del segundo apellido. Cada valor de fullname se inserta en la tabla tnames. BEGIN DECLARE fullname CHAR(40); FOR vl AS SELECT firstnme, midinit, lastname FROM employee DO SET fullname = lastname || ',' || firstnme ||' ' || midinit; INSERT INTO tnames VALUE (fullname); END FOR END 38.6.3 Sentencia compuesta (ahora pasa a llamarse "Sentencia compuesta (procedimiento)" Una sentencia compuesta de procedimiento agrupa varias sentencias para formar un procedimiento SQL. Dentro de una sentencia compuesta, puede declarar variables SQL, cursores y gestores de condiciones. El diagrama de sintaxis ahora tiene un título: sentencia-compuesta-procedimiento. .-NOT ATOMIC--. >>-+------------+--BEGIN----+-------------+---------------------> '-etiqueta:--' '-ATOMIC------' >-----+--------------------------------------------------+------> | .--------------------------------------------. | | V | | '-----+-| declaración-variable-SQL |----+---;---+--' +-| declaración-condición |-------+ '-| declaración-códigos-retorno |-' >-----+--------------------------------------+------------------> | .--------------------------------. | | V | | '----| declaración-sentencia |--;---+--' >-----+-------------------------------------+-------------------> | .-------------------------------. | | V | | '----sentencia-DECLARE-CURSOR--;---+--' >-----+-----------------------------------+---------------------> | .-----------------------------. | | V | | '----| declaración-gestor |--;---+--' .-----------------------------------. V | >--------sentencia-procedimiento-SQL--;---+---------------------> >-----END--+-----------+--------------------------------------->< '-etiqueta--' declaración-variable-SQL .-,----------------------. V | |---DECLARE-------nombre-variable-SQL---+-----------------------> .-DEFAULT NULL--------. >-----+-tipo-datos----+---------------------+-+-----------------| | '-DEFAULT--constante--' | '-RESULT_SET_LOCATOR--VARYING-----------' declaración-condición |---DECLARE--nombre-condición--CONDITION--FOR-------------------> .-VALUE-. .-SQLSTATE--+-------+---. >----+-----------------------+---constante-de-tipo-serie--------| declaración-sentencia .-,-------------------. V | |---DECLARE-----nombre-sentencia---+---STATEMENT----------------| declaración-códigos-retorno |---DECLARE----+-SQLSTATE--CHAR (5)--+--------------------------> '-SQLCODE--INTEGER----' >-----+---------------------+-----------------------------------| '-DEFAULT--constante--' declaración-gestor |---DECLARE----+-CONTINUE-+---HANDLER--FOR----------------------> +-EXIT-----+ '-UNDO-----' .-,----------------------------------. V .-VALUE-. | >---------+-SQLSTATE--+-------+--serie--+--+--------------------> +-nombre-condición------------+ +-SQLEXCEPTION----------------+ +-SQLWARNING------------------+ '-NOT FOUND-------------------' >----sentencia-procedimiento-SQL--------------------------------| declaración-sentencia Una declaración-sentencia declara una lista de uno o más nombres que son locales respecto a la sentencia compuesta. Un nombre de sentencia no puede ser igual que otro nombre de sentencia dentro de la misma sentencia compuesta. 38.6.4 RETURN RETURN La sentencia RETURN se utiliza para finalizar la ejecución de la rutina. Para las funciones o métodos de SQL, esta sentencia devuelve el resultado de la función o método. Para un procedimiento SQL, devuelve opcionalmente un valor de estado entero. Sintaxis >>-RETURN--+---------------------------------------------------------------+-> +-expresión-----------------------------------------------------+ +-NULL----------------------------------------------------------+ '-+-------------------------------------+---selección-completa--' | .-,------------------------. | | V | | '-WITH-----expresión-tabla-común---+--' >-------------------------------------------------------------->< Descripción expresión Especifica un valor que es devuelto por la rutina: o Si la rutina es una función o método, se debe especificar una expresión, NULL o selección-completa (SQLSTATE 42630) y el tipo de datos del resultado se debe poder asignar al tipo RETURNS de la rutina (SQLSTATE 42866). o No se puede especificar una expresión escalar (salvo una selección completa escalar) para una función de tabla (SQLSTATE 428F1). o Si la rutina es un procedimiento, el tipo de datos de expresión debe ser INTEGER (SQLSTATE 428E2). Un procedimiento no puede devolver un valor NULL ni una selección completa. NULL Especifica que la función o método devuelve un valor nulo cuyo tipo de datos es el definido en la cláusula RETURNS. No se puede especificar NULL para la sentencia RETURN de un procedimiento. WITH expresión-tabla-común Define una expresión de tabla común para ser utilizada en la selección completa que sigue a continuación. selección-completa Especifica la fila o filas que se deben devolver para la función. El número de columnas de la selección completa debe coincidir con el número de columnas del resultado de la función (SQLSTATE 42811). Además, los tipos de columnas estáticos de la selección completa se deben poder asignar a los tipos de columna declarados del resultado de la función, utilizando las normas de asignación a columnas (SQLSTATE 42866). La selección-completa no se puede especificar para la sentencia RETURN de un procedimiento. Si la rutina es una función o método escalar, la selección completa debe devolver una sola columna (SQLSTATE 42823) y, como máximo, una fila (SQLSTATE 21000). Si la rutina es una función de fila, debe devolver, como máximo, una fila (SQLSTATE 21505). Si la rutina es una función de tabla, puede devolver ninguna o más filas y una o más columnas. Reglas * La ejecución de una función o método de SQL debe terminar con una sentencia RETURN (SQLSTATE 42632). * En una función de tabla o de fila de SQL donde se utilice una sentencia-compuesta-dinámica, la única sentencia RETURN permitida es la situada al final de la sentencia compuesta (SQLSTATE 429BD). Notas * Cuando un procedimiento devuelve un valor, el invocador del procedimiento puede acceder al valor de estas formas: o utilizando la sentencia GET DIAGNOSTICS para recuperar el estado de terminación (RETURN_STATUS) cuando el procedimiento SQL se invocó desde otro procedimiento SQL o utilizando el parámetro asociado al marcador de parámetros de valor de retorno en la sintaxis de la cláusula CALL de escape (?=CALL...) en una aplicación CLI o directamente de la SQLCA devuelta por la invocación de un procedimiento de SQL, recuperando el valor de SQLERRD[0] cuando SQLCODE no es menor que cero (se supone el valor -1 si SQLCODE es menor que cero). Ejemplos Utilización de una sentencia RETURN para finalizar la ejecución de procedimiento almacenado de SQL, cuyo valor de estado de terminación es 0 si la ejecución es satisfactoria y -200 en caso contrario. BEGIN ... GOTO FAIL ... SUCCESS: RETURN 0 FAIL: RETURN -200 END 38.6.5 SIGNAL La sentencia SIGNAL SQLSTATE ya no se utiliza. SIGNAL La sentencia SIGNAL se utiliza para señalar un error o condición de aviso. Hace que se devuelva un error o aviso junto con el SQLSTATE especificado y un mensaje opcional. Sintaxis >>-SIGNAL-------------------------------------------------------> .-VALUE-. >-----+-SQLSTATE--+-------+--cadena-constante-sqlstate--+-------> '-nombre-condición--------------------------------' >-----+----------------------------------------------------------+> +-SET--MESSAGE_TEXT-- = --+-nombre-variable--------------+-+ | '-cadena-constante-diagnóstico-' | | (1) | '-(--cadena-diagnóstico--)---------------------------------' >-------------------------------------------------------------->< Notas: 1. Esta opción sólo es válida dentro del ámbito de una sentencia CREATE TRIGGER y se proporciona para mantener la compatibilidad con versiones anteriores de DB2. Descripción SQLSTATE VALUE cadena-constante-sqlstate Es la cadena de caracteres constante que representa un SQLSTATE. Debe contener 5 caracteres y seguir las normas que se aplican a un SQLSTATE: o Cada carácter debe ser un dígito del 0 al 9 o bien una letra mayúscula no acentuada de la A a la Z. o La clase SQLSTATE (primeros dos caracteres) no puede ser '00', pues esto significa una finalización satisfactoria. En el contexto de una sentencia compuesta dinámica, un desencadenante, una función de SQL o un método de SQL, son aplicables también las normas siguientes: o La clase SQLSTATE (dos primeros caracteres) no puede ser '01' ni '02',, pues no representan clases de error. o Si la clase SQLSTATE comienza con un número del '0' al '6' o con las letras de la 'A' a la 'H',, la subclase (últimos tres caracteres) debe comenzar con una letra de la 'I' a la 'Z'. o Si la clase SQLSTATE comienza con los números '7', '8', '9', o las letras de la 'I' a la 'Z', la subclase puede ser un número del '0' al '9' o una letra de la 'A' a la 'Z'. Si el SQLSTATE no cumple estas normas, se emite un error (SQLSTATE 428B3). nombre-condición Especifica el nombre de la condición. El nombre de la condición debe ser exclusivo dentro del procedimiento y sólo puede aparecer dentro de la sentencia compuesta en la que está declarada la condición. SET MESSAGE_TEXT= Especifica una cadena de texto que describe el error o aviso. La cadena de texto se devuelve en el campo SQLERRMC de la SQLCA. Si la cadena tiene más de 70 bytes, se trunca sin avisar. Esta cláusula sólo se puede especificar si también se especifica un SQLSTATE o nombre de condición (SQLSTATE 42601). nombre-variable Identifica una variable SQL que debe declarar dentro de la sentencia compuesta. El tipo de datos de la variable SQL debe estar definido como CHAR o VARCHAR. cadena-constante-diagnóstico Especifica una cadena de caracteres constante donde está contenido el texto del mensaje. cadena-diagnóstico Es una expresión, cuyo tipo es CHAR o VARCHAR, que devuelve una cadena de caracteres de hasta 70 bytes la cual describe la condición de error. Si la cadena tiene más de 70 bytes, se trunca. Esta opción sólo es válida dentro del ámbito de una sentencia CREATE TRIGGER y se proporciona para mantener la compatibilidad con versiones anteriores de DB2. No es recomendable su utilización habitual. Notas * Si se emite una sentencia SIGNAL, el SQLCODE asignado es: +438 si SQLSTATE comienza con '01' o '02' -438 en otro caso * Si el SQLSTATE o condición indica la existencia de una excepción (clase de SQLSTATE distinta de '01' y '02'): o Se gestiona la excepción y el control se transfiere a un gestor de excepciones, si éste existe en la misma sentencia compuesta (o sentencia compuesta más externa) que la sentencia SIGNAL, y la sentencia compuesta contiene un gestor para el SQLSTATE, nombre de condición o SQLEXCEPTION especificado o Si no se puede gestionar la excepción, el control se traslada inmediatamente al final de la sentencia compuesta. * Si el SQLSTATE o condición indica la existencia de un aviso (clase de SQLSTATE igual a '01') o una condición de no encontrado (clase de SQLSTATE igual a '02'): o Se gestiona el aviso o condición de no encontrado y el control se transfiere a un gestor de excepciones, si éste existe en la misma sentencia compuesta (o sentencia compuesta más externa) que la sentencia SIGNAL, y la sentencia compuesta contiene un gestor para el SQLSTATE, nombre de condición, aviso (clase de SQLSTATE = 01), o condición de no encontrado (clase de SQLSTATE = 02) especificado o Si no se puede gestionar el aviso, el proceso continúa con la sentencia siguiente. * Los valores SQLSTATE constan de un código de clase de 2 caracteres seguido de un código de subclase de 3 caracteres. Los códigos de clase representan condiciones de ejecución satisfactoria y no satisfactoria. Puede utilizarse cualquier valor SQLSTATE válido en la sentencia SIGNAL. Sin embargo, es recomendable que el programador defina nuevos valores SQLSTATE basados en rangos reservados para aplicaciones. Esto impide la utilización involuntaria de un valor SQLSTATE que el gestor de bases de datos pueda definir en una versión futura del producto. o Se pueden definir clases de SQLSTATE que comiencen con los caracteres del '7' al '9', o de la 'I' a la 'Z'. Dentro de estas clases, se puede definir cualquier subclase. o Las clases de SQLSTATE que comienzan con los caracteres del '0' al '6', o de la 'A' a la 'H' están reservadas para el gestor de bases de datos. Dentro de estas clases, las subclases que comienzan con los caracteres de la 'A' a la 'H' están reservadas para el gestor de bases de datos. Se pueden definir subclases que comiencen con los caracteres de la 'I' a la 'Z'. Ejemplos Este ejemplo muestra un procedimiento SQL para un sistema de gestión de pedidos que señala un error de aplicación cuando la aplicación no reconoce un número de cliente. La tabla ORDERS incluye una clave externa para la tabla CUSTOMER, que hace que el número de cliente (CUSTNO) deba existir para poder insertar un pedido. CREATE PROCEDURE SUBMIT_ORDER (IN ONUM INTEGER, IN CNUM INTEGER, IN PNUM INTEGER, IN QNUM INTEGER) SPECIFIC SUBMIT_ORDER MODIFIES SQL DATA LANGUAGE SQL BEGIN DECLARE EXIT HANDLER FOR SQLSTATE VALUE '23503' SIGNAL SQLSTATE '75002' SET MESSAGE_TEXT = 'Número de cliente no conocido'; INSERT INTO ORDERS (ORDERNO, CUSTNO, PARTNO, QUANTITY) VALUES (ONUM, CNUM, PNUM, QNUM); END ------------------------------------------------------------------------ 38.7 Apéndice A. Límites de SQL Hay un cambio en la Tabla 33, Límites del Gestor de bases de datos. Con la variable de registro DB2_INDEX_2BYTEVARLEN establecida en ON, la parte más larga de la clave de índice de variable (in bytes) ahora puede ser mayor que 255. ------------------------------------------------------------------------ 38.8 Apéndice D. Vistas de catálogo Se ha añadido una nueva vista de catálogo: 38.8.1 SYSCAT.SEQUENCES La vista SYSCAT.SEQUENCES se genera automáticamente para las bases de datos creadas con el FixPack 3 o posterior. Para las bases de datos creadas con anterioridad al FixPack 3, ejecute el mandato db2updv7 para añadir la vista a la base de datos. Vea la información actualizada sobre el manual de Consulta de Mandatos, en las Notas del Release, para obtener detalles. Esta vista de catálogo se actualiza durante el funcionamiento normal, en respuesta a sentencias SQL de definición de datos, rutinas de entorno y determinados programas de utilidad. Se puede acceder a los datos de la vista de catálogo utilizando los recursos de consulta habituales del SQL. Las columnas tienen nombres uniformes que están basados en el tipo de objeto descrito por la columna. Tabla 30. Columnas de la vista de catálogo SYSCAT.SEQUENCES Posibili- dad de contener Nombre columna Tipo de datos nulos Descripción SEQSCHEMA VARCHAR(128) Esquema de la secuencia. SEQNAME VARCHAR(128) Nombre de la secuencia (generado por DB2 para una columna de identidad). DEFINER VARCHAR(128) Definidor de la secuencia. OWNER VARCHAR(128) Propietario de la secuencia. SEQID INTEGER ID interno de la secuencia. SEQTYPE CHAR(1) Tipo de secuencia S - Secuencia regular INCREMENT DECIMAL(31,0) Valor de incremento. START DECIMAL(31,0) Valor inicial. MAXVALUE DECIMAL(31,0) Sí Valor máximo. MINVALUE DECIMAL(31,0) Valor mínimo. CYCLE CHAR(1) Indicación de si habrá generación cíclica de valores al alcanzarse un valor límite: Y - habrá generación cíclica de valores N - no habrá generación cíclica de valores CACHE INTEGER Número de valores de secuencia que se deben preasignar en la memoria para obtener un acceso más rápido. 0 indica que no se preasignan valores. ORDER CHAR(1) Indicación de si los valores de la secuencia se deben generar en orden de petición: Y - los valores de la secuencia se deben generar en orden de petición N - no es necesario que los valores de la secuencia se generen en orden de petición DATATYPEID INTEGER Para los tipos incorporados, es el ID interno del tipo incorporado. Para los tipos diferenciados, es el ID interno del tipo diferenciado. SOURCETYPEID INTEGER Para un tipo incorporado, este campo tiene el valor 0. Para un tipo diferenciado, este campo es el ID interno del tipo incorporado que sirve de fuente para el tipo diferenciado. CREATE_TIME TIMESTAMP Indicación de la hora en la que se creó la secuencia. ALTER_TIME TIMESTAMP Indicación de la hora en la que se ejecutó por última vez la sentencia ALTER SEQUENCE para la secuencia. PRECISION SMALLINT Es la precisión definida para una secuencia de tipo decimal o numérica. Los valores son: 5 para SMALLINT, 10 para INTEGER y 19 para BIGINT. ORIGIN CHAR(1) El origen de la secuencia. U - Secuencia generada por el usuario S - Secuencia generada por el sistema REMARKS VARCHAR(254) Sí Comentarios suministrados por el usuario o nulo. ------------------------------------------------------------------------ DB2 Stored Procedure Builder ------------------------------------------------------------------------ 39.1 Soporte de Java 1.2 para DB2 Stored Procedure Builder DB2 Stored Procedure Builder soporta la creación de procedimientos almacenados Java utilizando el funcionamiento de Java 1.2. Además, Stored Procedure Builder soporta idiomas bidireccionales, tales como el árabe y el hebreo, utilizando el soporte bi-di en Java 1.2. Sólo se proporciona este soporte para plataformas Windows NT. Para que el Stored Procedure Builder pueda reconocer y utilizar el funcionamiento de Java 1.2, se tiene que haber instalado Java 1.2. Para instalar Java 1.2: 1. JDK 1.2.2 está disponible en el CD de DB2 UDB bajo el directorio DB2\bidi\NT. ibm-inst-n122p-win32-x86.exe es el programa instalador e ibm-jdk-n122p-win32-x86.exe es la distribución de JDK. Copie ambos archivos a un directorio temporal de la unidad de disco duro y, a continuación, ejecute el programa instalador desde éste. 2. Instálelo bajo \java\Java12, donde es la vía de acceso de instalación de DB2. 3. No seleccione JDK/JRE como System VM cuando lo solicite la instalación de JDK/JRE. Una vez que haya instalado Java 1.2 satisfactoriamente, inicie el Stored Procedure Builder de forma normal. Para ejecutar procedimientos almacenados Java utilizando soporte de JDK 1.2, establezca en TRUE la variable de entorno DB2_USE_JDK12 del servidor de bases de datos mediante el mandato siguiente: DB2SET DB2_USE_JDK12=TRUE Asimismo, establezca JDK11_PATH de forma que apunte al directorio en que está instalado el soporte de Java 1.2. Esta vía de acceso se establece utilizando el mandato siguiente: DB2 UPDATE DBM CFG USING JDK11_PATH Para detener la utilización de Java 1.2, puede desinstalar JDK/JRE de \java\Java12 o, simplemente, cambiar el nombre del subdirectorio \java\Java12. Importante: No confunda \java\Java12 con \Java12. \Java12 forma parte de la instalación de DB2 e incluye soporte de JDBC para Java 1.2. ------------------------------------------------------------------------ 39.2 Depuración remota de procedimientos almacenados de DB2 Para utilizar la capacidad de depuración remota para los procedimientos almacenados Java y C en plataformas UNIX y Windows, debe instalar IBM Distributed Debugger. IBM Distributed Debugger se incluye en el CD de Visual Age para Java Professional Edition CD. El cliente de depuración sólo se ejecuta en la plataforma Windows. Las plataformas de servidor soportadas incluyen: Windows, AIX y Solaris. Utilice la posibilidad de depuración de SQL incorporada Stored Procedure Builder para depurar procedimientos almacenados de SQL remotos para las plataformas Windows y UNIX. El soporte para la plataforma OS/2 no está disponible en este momento. Si desea obtener más información sobre el Stored Procedure Builder de DB2 para OS/390, vaya al siguiente sitio Web: http://www-4.ibm.com/software/data/db2/os390/spb/exciting Para depurar procedimientos de SQL en la plataforma OS/390, también debe disponer del producto IBM C/C++ Productivity Tools para OS/390 R1. Para obtener más información sobre IBM C/C++ Productivity Tools para OS/390 R1, diríjase al sitio Web siguiente: http://www.ibm.com/software/ad/c390/pt/ ------------------------------------------------------------------------ 39.3 Creación de procedimientos de SQL en las plataformas Windows, OS/2 o UNIX Antes de poder utilizar el Stored Procedure Builder para crear satisfactoriamente Procedimientos de SQL en la base de datos Windows, OS/2 o UNIX, debe configurar el servidor para Procedimientos de SQL. Para obtener información sobre cómo configurar el servidor para procedimientos de SQL, consulte el 34.3, Capítulo 4. Creación de aplicaciones y applets de Java. ------------------------------------------------------------------------ 39.4 Utilización de DB2 Stored Procedure Builder en la plataforma Solaris Para utilizar el Stored Procedure Builder en la plataforma Solaris: 1. Baje e instale JDK 1.1.8. Puede bajar JDK 1.1.8 desde el sitio web de JavaSoft. 2. Establezca la variable de entorno JAVA_HOME en la ubicación en que ha instalado el JDK. 3. Establezca DB2 JDK11_PATH en el directorio en que ha instalado el JDK. Para establecer DB2 JDK11_PATH, utilice el mandato siguiente: DB2 UPDATE DBM CFG USING JDK11_PATH. ------------------------------------------------------------------------ 39.5 Problemas y limitaciones conocidos * Actualmente no se soportan Procedimientos de SQL en Windows 98. * Para los procedimientos almacenados de Java, el ID de JAR, los nombres de clase y los nombres de método no pueden contener caracteres que no sean ASCII. * En AS/400, deben aplicarse las siguientes PTF V4R4 a OS/400 V4R4: - SF59674 - SF59878 * Los parámetros de procedimientos almacenados con un subtipo de carácter FOR MIXED DATA o FOR SBCS DATA no se muestran en el código fuente del panel del editor cuando se restaura el procedimiento almacenado desde la base de datos. * Actualmente, hay un problema cuando se recupera código fuente de Java desde una base de datos. En el momento de la recuperación, los comentarios del código aparecen contraídos. Esto afecta a los usuarios de DB2 Stored Procedure Builder que estén trabajando en páginas de códigos que no sean ASCII y cuyos clientes y servidores estén en páginas de códigos distintas. ------------------------------------------------------------------------ 39.6 Utilización de DB2 Stored Procedure Builder con el entorno nacional de chino tradicional Hay un problema al utilizar el Java Development Kit o Java Runtime 1.1.8 con el entorno nacional de chino tradicional. Los aspectos gráficos del programa Stored Procedure Builder (incluyendo menús, texto de editor, mensajes, etc.) no se visualizan correctamente. La solución es efectuar un cambio en el archivo font.properties.zh_TW, que aparece en uno de los directorios siguientes o en ambos: sqllib/java/jdk/lib sqllib/java/jre/lib Cambie: monospaced.0=\u7d30\u660e\u9ad4,CHINESEBIG5_CHARSET,NEED_CONVERTED por: monospaced.0=Courier New,ANSI_CHARSET ------------------------------------------------------------------------ 39.7 Instalaciones de UNIX (AIX, Sun Solaris, Linux) y Stored Procedure Builder Para instalaciones de Sun Solaris, y si está utilizando un Java Development Kit o Runtime que no sea el que se encuentra instalado en AIX con UDB, debe establecer la variable de entorno JAVA_HOME en la vía de acceso donde Java se encuentra instalado (es decir, en el directorio que contiene los directorios /bin y /lib). Stored Procedure Builder no está soportado en Linux, pero se puede utilizar en plataformas soportadas para crear y ejecutar procedimientos almacenados en DB2 UDB para sistemas Linux. Las plataformas soportadas incluyen AIX, Solaris y NT para el cliente y AIX, Solaris, NT, Linux, OS/2, HP-UX y NUMA-Q para el servidor. ------------------------------------------------------------------------ 39.8 Creación de procedimientos almacenados de SQL en OS/390 DB2 Stored Procedure Builder da soporte a la creación de procedimientos almacenados de SQL en el servidor DB2 UDB para OS390 V7. ------------------------------------------------------------------------ 39.9 Depuración de procedimientos almacenados de SQL La depuración de procedimientos almacenados de SQL en plataformas Windows y UNIX está ahora directamente integrada en el DB2 Stored Procedure Builder. La opción de configuración del gestor de bases de datos KEEPDARI puede establecerse en YES o NO cuando se depuran procedimientos de SQL no delimitados (de confianza); sin embargo, debe establecerse en YES (valor por omisión) cuando se depuran procedimientos de SQL delimitados (no de confianza). Consulte la ayuda de Stored Procedure Builder si desea obtener información adicional sobre la utilización del depurador integrado. ------------------------------------------------------------------------ 39.10 Exportación de procedimientos almacenados de Java DB2 Stored Procedure Builder ahora da soporte a la exportación de procedimientos almacenados de Java. Para exportar un procedimiento almacenado de Java: 1. Efectúe una pulsación con el botón derecho del ratón en la carpeta de procedimientos almacenados y pulse Exportar procedimientos almacenados de Java (Export Java Stored Procedures) para abrir la ventana Exportar procedimientos almacenados de Java (Export Java Stored Procedures). 2. Seleccione los procedimientos almacenados que desee exportar y trasládelos a la columna "Procedimientos almacenados seleccionados" ("Selected stored procedures"). 3. Seleccione las opciones que prefiera y luego pulse Bien. ------------------------------------------------------------------------ 39.11 Inserción de procedimientos almacenados en OS/390 Para DB2 Stored Procedure Builder Versión 5 y posterior, ejecutándose en OS/390, si se utiliza el asistente para insertar un procedimiento almacenado y no indicar ninguna opción de entorno WLM, el código generado contiene el texto siguiente: NO WLM ENVIRONMENT. Esta línea de código hace que el procedimiento almacenado se ejecute en el espacio de direcciones SPAS tal como se tenía previsto. Este arreglo resuelve un problema que existía en DB2 Stored Procedure Builder versión 6 y anteriores. El código generado después del arreglo tiene el aspecto siguiente: CREATE PROCEDURE SYSPROC.Proc2 ( ) RESULT SETS 1 LANGUAGE SQL MODIFIES SQL DATA COLLID TEST NO WLM ENVIRONMENT ASUTIME NO LIMIT RUN OPTIONS 'NOTEST(ALL,*,,VADTCPIP&9.112.14.91:*)' ------------------------------------------------------------------- -- SQL Stored Procedure ------------------------------------------------------------------- P1: BEGIN -- Declare cursor DECLARE cursor1 CURSOR WITH RETURN FOR SELECT * FROM SYSIBM.SYSPROCEDURES; -- Cursor left open for client application OPEN cursor1; END P1 ------------------------------------------------------------------------ 39.12 Establecimiento de opciones de creación para procedimientos almacenados de SQL en un servidor de estaciones de trabajo Utilizando DB2 Stored Procedure Builder en plataformas UNIX y Windows, puede establecer opciones de creación para todos los procedimientos almacenados de SQL. Estas opciones de creación incluyen las siguientes variables de registro de DB2 de compilador y precompilador: * DB2_SQLROUTINE_PREPOPTS * DB2_SQLROUTINE_COMPILER_PATH * DB2_SQLROUTINE_COMPILE_COMMAND * DB2_SQLROUTINE_KEEP_FILES Aunque es posible establecer estas variables de registro utilizando el mandato db2set, la utilización de Stored Procedure Builder elimina la necesidad de acceder físicamente al servidor de bases de datos para emitir el mandato o detener y luego reiniciar el servidor para que los cambios surtan efecto. Para abrir la ventana Opciones de SQL Stored Procedure Build, efectúe una pulsación con el botón derecho del ratón en una conexión de base de datos de la vista de proyectos y pulse Opciones de SQL Stored Procedure Build. Si desea obtener más información sobre el establecimiento de estas opciones, consulte la ayuda de DB2 Stored Procedure. ------------------------------------------------------------------------ 39.13 Renovación automática del espacio de direcciones WLM para procedimientos almacenados creados en OS/390 Después de crear satisfactoriamente un procedimiento almacenado en OS/390 que se ejecutará en WLM, DB2 Stored Procedure Builder renueva automáticamente el espacio de direcciones WLM . ------------------------------------------------------------------------ 39.14 Desarrollo de procedimientos almacenados Java en OS/390 DB2 Stored Procedure Builder da soporte al desarrollo de procedimientos almacenados Java en DB2 UDB para OS/390 Versión 6 y superiores. Puede crear nuevos procedimientos almacenados Java o modificar los existentes. ------------------------------------------------------------------------ 39.15 Creación de una función definida por el usuario (UDF) de tablas DB2 para MQ Series y OLE DB DB2 Stored Procedure Builder proporciona asistentes que le ayudan a crear UDF de tablas para MQSeries y OLE DB. Puede utilizar el asistente para crear UDF de tablas OLE DB para acceder a proveedores de datos OLE DB. El asistente crea un UDF de tablas OLE y una vista de tablas opcional. Puede utilizar el asistente para crear UDF de tablas MQSeries para crear una UDF de tablas con una vista de tablas opcional para acceder a mensajes MQSeries y analizar los datos en formato tabular. ------------------------------------------------------------------------ Actualizaciones de Unicode ------------------------------------------------------------------------ 40.1 Introducción El estándar de Unicode es el esquema de codificación de carácter universal para caracteres y texto escrito. Unicode es la representación de varios bytes de un carácter. Define un modo coherente de codificar texto en varios idiomas que permite el intercambio de datos de texto internacionalmente y crea las bases para el software global. Unicode proporciona dos siguientes esquemas de codificación. El esquema de codificación por omisión es UTF-16, que es un formato de codificación de 16 bits. UCS-2 es un subconjunto de UTF-16 que utiliza dos bytes para representar un carácter. UCS-2 se acepta normalmente como la página de códigos universal capaz de representar todos los caracteres necesarios de todas las páginas de códigos existentes de un sólo byte y de doble byte. UCS-2 está registrado en IBM como página de códigos 1200. El otro formato de codificación de Unicode es UTF-8, que está orientado a byte y que ha sido diseñado para que se utilice con facilidad con los sistemas existentes basados en ASCII. UTF-8 utiliza un número variable de bytes (normalmente 1-3, a veces 4) para almacenar cada uno de los caracteres. Los caracteres de ASCII invariables se almacenan como bytes únicos. Todos los demás caracteres se almacenan utilizando varios bytes. En general, los datos de UTF-8 pueden tratarse como datos ASCII ampliados por medio de un código que no ha sido diseñado para páginas de códigos de varios bytes. UTF-8 está registrado en IBM como página de códigos 1208. Es importante que las aplicaciones tengan en cuenta los requisitos de la conversión de los datos entre la página de códigos local, UCS-2 y UTF-8. Por ejemplo, 20 caracteres necesitarán exactamente 40 bytes en UCS-2 y entre 20 y 60 bytes en UTF-8, en función de la página de códigos original y de los caracteres utilizados. 40.1.1 Bases de datos y aplicaciones Unicode de DB2 Puede utilizarse una base de datos universal de DB2 para Unix, Windows u OS/2 creada con un conjunto de códigos UTF-8 para almacenar datos en formatos UCS-2 y UTF-8. A dicha base de datos se la denomina base de datos Unicode. Los datos de SQL CHAR se codifican utilizando UTF-8 y los datos de SQL GRAPHIC se codifican utilizando UCS-2. Puede compararse a almacenar conjuntos de códigos de un sólo byte (SBCS) y de varios bytes (MBCS) en columnas CHAR y conjuntos de códigos de doble byte (DBCS) en columnas GRAPHIC. Es posible que la página de códigos de una aplicación no coincida con la página de códigos que utiliza DB2 para almacenar datos. En una base de datos no Unicode, cuando las páginas de códigos no sean las mismas, el gestor de la base de datos convierte los datos de carácter y de gráfico (DBCS puro) que se transfieren entre el cliente y el servidor. En una base de datos Unicode, la conversión de datos de carácter entre la página de códigos de cliente y UTF-8 la efectúa automáticamente el gestor de la base de datos, pero todos los datos gráficos (UCS-2) se pasan sin conversión alguna entre el cliente y el servidor. Figura 7. Conversiones de página de códigos que efectúa el gestor de la base de datos [Conversiones de página de códigos que efectúa el gestor de la base de datos] Notas: 1. Al conectar con bases de datos Unicode, si la aplicación establece DB2CODEPAGE=1208, la página de códigos local es UTF-8, por lo que no se necesita ninguna conversión de página de códigos. 2. Cuando se conecta a una base de datos Unicode, las aplicaciones de CLI pueden recibir asimismo datos de tipo carácter como datos gráficos y datos gráficos como datos de tipo carácter. Para una aplicación es posible especificar una página de códigos UTF-8, indicando que todos los datos gráficos se enviarán y recibirán en UCS-2 y los datos de tipo carácter en UTF-8. Esta página de códigos de aplicación sólo está soportada para bases de datos Unicode. Otros puntos a tener en cuenta al utilizar Unicode: 1. La página de códigos de la base de datos en el momento en que se creó la base de datos y, por omisión, su valor lo determina el entorno nacional del sistema operativo (o página de códigos). Las palabras clave CODESET y TERRITORY pueden utilizarse para crear explícitamente una base de datos DB2 Unicode. Por ejemplo: CREATE DATABASE unidb USING CODESET UTF-8 TERRITORY US 2. La página de códigos de la aplicación toma asimismo el valor por omisión de la página de códigos local, pero UTF-8 puede alterarla temporalmente de una de estas dos formas: o Definiendo la página de códigos de la aplicación para UTF-8 (1208) con este mandato: db2set DB2CODEPAGE=1208 o Para las aplicaciones CLI/ODBC, llamando a SQLSetConnectAttr() y estableciendo SQL_ATTR_ANSI_APP en SQL_AA_FALSE. El valor por omisión es SQL_AA_TRUE. 3. Los datos de las columnas GRAPHIC adoptarán exactamente dos bytes por cada carácter Unicode, en tanto que los datos de las columnas CHAR adoptarán de 1 a 3 bytes por cada carácter Unicode. Los límites de SQL en términos de caracteres para las columnas GRAPHIC son habitualmente la mitad que para las columnas CHAR, pero en términos de bytes son iguales. La longitud máxima de caracteres para una columna CHAR es de 254. La longitud máxima de caracteres para una columna de gráficos es de 127. Para obtener más información, consulte MAX en el capítulo "Funciones" del manual Consulta de SQL. 4. Un literal gráfico se diferencia de un literal de caracteres por medio de un prefijo G. Por ejemplo: SELECT * FROM mytable WHERE mychar = 'utf-8 data' AND mygraphic = G'ucs-2 data' Nota: El prefijo G no se necesita para las bases de datos Unicode. Vea "Literales en bases de datos Unicode" para obtener más información y para soporte actualizado. 5. El soporte para las aplicaciones CLI/ODBC y JDBC difiere del soporte para las aplicaciones intercaladas. Para obtener información específica para el soporte de CLI/ODBC, vea 40.3, "CLI Guide and Reference". 6. El orden de los bytes de los datos de UCS-2 puede diferir entre las diversas plataformas. Internamente, DB2 utiliza el formato big-endian. 40.1.2 Actualizaciones de documentación Este documento actualiza la información siguiente sobre la utilización de Unicode con DB2 Versión 7.1: * Consulta de SQL: Capítulo 3 Elementos de lenguaje Capítulo 4 Funciones * CLI Guide and Reference: Capítulo 3. Utilización de características avanzadas Apéndice C. DB2 CLI y ODBC * Data Movement Utilities Guide and Reference, Apéndice C. Formatos de archivo de programa de utilidad de Exportación/Importación/Carga Para obtener más información sobre la utilización de Unicode con DB2 consulte el manual Administration Guide, Apéndice J. Soporte de idioma nacional (NLS): "Soporte de Unicode/UCS-2 y UTF-8 en DB2 UDB". ------------------------------------------------------------------------ 40.2 Consulta de SQL 40.2.1 Capítulo 3 Elementos de lenguaje 40.2.1.1 Promoción de tipos de datos La tabla 5 de este apartado muestra la lista de prioridad para cada tipo de datos. Por favor, tenga en cuenta que: 1. Para una base de datos Unicode, se considera que los siguientes tipos de datos son equivalentes: o CHAR y GRAPHIC o VARCHAR y VARGRAPHIC o LONG VARCHAR y LONG VARGRAPHIC o CLOB y DBCLOB 2. En una base de datos Unicode, es posible crear funciones en las que la única diferencia de la signatura de función se da entre los tipos de datos CHAR y GRAPHIC equivalentes, por ejemplo foo(CHAR(8)) y foo(GRAPHIC(8)). Les recomendamos encarecidamente que no definan tales funciones de duplicación ya que la migración a un futuro release obligará a que uno de ellos se elimine antes de que continúe la migración. Si existen dichas funciones duplicadas, la elección de la que se ha de invocar se determina por medio de un algoritmo en dos pasadas. El primer pase intenta hallar una correspondencia utilizando el mismo algoritmo que se utiliza para resolver funciones en una base de datos no Unicode. Si no se encuentra ninguna correspondencia, se efectuará un segundo pase teniendo en cuenta la prioridad de promoción siguiente para las series CHAR y GRAPHIC: GRAPHIC-->CHAR-->VARGRAPHIC-->VARCHAR-->LONG VARGRAPHIC-->LONG VARCHAR-->DBCLOB-->CLOB 40.2.1.2 Difusión entre tipos de datos La entrada siguiente se ha añadido a la lista introducida como: "Se da soporte a las siguientes difusiones que implican tipos diferentes": * para una base de datos Unicode, difusión desde un VARCHAR o VARGRAPHIC a un tipo DT diferente con un tipo de datos fuente CHAR o GRAPHIC. Lo que se muestra a continuación son actualizaciones a la Tabla 6. Difusiones soportadas entre tipos de datos incorporadas. Sólo se incluyen las filas afectadas de la tabla. Tabla 31. Difusiones soportadas entre tipos de datos incorporados L O N L G O V V Tipo de datos de destino N A A > G R R V V G G G A A R R R D R R A A A B C C C C P P P C H H H L H H H L A A A O I I I O Tipo de datos fuente V R R R B C C C B CHAR Y Y Y Y S1 S1 - - VARCHAR Y Y Y Y S1 S1 - - LONGVARCHAR Y Y Y Y - - S1 S1 CLOB Y Y Y Y - - - S1 GRAPHIC S1 S1 - - Y Y Y Y VARGRAPHIC S1 S1 - - Y Y Y Y LONGVARGRAPHIC - - S1 S1 Y Y Y Y DBCLOB - - - S1 Y Y Y Y 1 La difusión sólo está soportada para bases de datos Unicode. 40.2.1.3 Asignaciones y comparaciones Las asignaciones y comparaciones que implican tanto datos de tipo carácter como gráficos sólo están soportadas cuando una de las series es un literal. Para la resolución de funciones, los literales gráficos y los literales de tipo carácter se corresponderán tanto con los parámetros de función gráfica como con los de tipo carácter. Lo que se muestra a continuación son actualizaciones a la Tabla 7. Compatibilidad de tipo de datos para asignaciones y comparaciones. Sólo se incluyen las filas afectadas de la tabla y la nueva nota a pie de página 6: Indic. Entero Número Coma Serie de Serie de la Serie Operandos binario decimal flotante caracteres gráfica Fecha Hora hora binaria UDT Serie de No No No Sí Sí 6 1 1 1 No 3 2 caracteres Serie No No No Sí 6 Sí No No No No 2 gráfica 6 Sólo está soportada para bases de datos Unicode. Asignaciones de serie Asignación de almacenamiento El último párrafo de este subapartado se modifica del modo siguiente: Cuando se asigna una serie a una columna de longitud fija y la longitud de la serie es inferior al atributo de longitud del destino, la serie se rellena a la derecha con el número necesario de blancos de un único byte, de doble byte o UCS-22. El carácter de relleno es siempre un blanco incluso para las columnas que se definen con el atributo FOR BIT DATA. Asignación de recuperación El tercer párrafo de este subapartado se modifica del modo siguiente: Cuando se asigna una serie de caracteres a una variable de longitud fija y la longitud de la serie es inferior al atributo de longitud del destino, la serie se rellena a la derecha con el número necesario de blancos de un único byte, de doble byte o UCS-22. El carácter de relleno es siempre un blanco incluso para las series que se definen con el atributo FOR BIT DATA. 2 UCS-2 define varios caracteres SPACE con propiedades diferentes. Para una base de datos Unicode, el gestor de bases de datos siempre utiliza ASCII SPACE en la posición x'0020' como blanco UCS-2. Para una base de datos EUC, el IDEOGRAPHIC SPACE de la posición x'3000' se utiliza para rellenar gráficos GRAPHIC. Normas de conversión para asignaciones de serie Se ha añadido el párrafo siguiente al final de este subapartado: Para las bases de datos Unicode, las series de caracteres pueden asignarse a una columna gráfica y pueden asignarse series gráficas a una columna de caracteres. Consideraciones para asignaciones de serie gráfica El primer párrafo de este subapartado se ha modificado del modo siguiente: Las asignaciones de serie gráfica se procesan de un modo análogo al de las series de caracteres. Para bases de datos no Unicode, los tipos de datos de serie gráfica son únicamente compatibles con otros tipos de datos de serie gráfica y nunca con tipos de datos numéricos, de serie de caracteres o de fecha y hora. Para bases de datos no Unicode, los tipos de datos de serie gráfica son compatibles con tipos de datos de serie gráfica. Comparaciones de series Normas de conversión para la comparación Este subapartado se ha modificado del modo siguiente: Cuando se comparan dos series, una de las series se convierte en primer lugar, si es necesario, en el esquema de codificación y/o página de códigos de la otra serie. Para obtener más detalles, consulte el apartado "Normas para conversiones de serie" del Capítulo 3 Elementos de lenguaje del manual Consulta de SQL. 40.2.1.4 Normas para los tipos de datos de resultado Series de caracteres y de gráficos en una base de datos Unicode Este es un subapartado que se inserta detrás del subapartado "Series gráficas". En una base de datos Unicode, las series de caracteres y las series gráficas son compatibles. Si un operando es... Y el otro operando El tipo de datos del es... resultado es... GRAPHIC(x) CHAR(y) o GRAPHIC(y) GRAPHIC(z) donde z = max(x,y) VARGRAPHIC(x) CHAR(y) o VARCHAR(y) VARGRAPHIC(z) donde z = max(x,y) VARCHAR(x) GRAPHIC(y) o VARGRAPHIC VARGRAPHIC(z) donde z = max(x,y) LONG VARGRAPHIC CHAR(y) o VARCHAR(y) o LONG VARGRAPHIC LONG VARCHAR LONG VARCHAR GRAPHIC(y) o LONG VARGRAPHIC VARGRAPHIC(y) DBCLOB(x) CHAR(y) o VARCHAR(y) o DBCLOB(z) donde z = CLOB(y) max(x,y) DBCLOB(x) LONG VARCHAR DBCLOB(z) donde z = max(x,16350) CLOB(x) GRAPHIC(y) o DBCLOB(z) donde z = VARGRAPHIC(y) max(x,y) CLOB(x) LONG VARGRAPHIC DBCLOB(z) donde z = max(x,16350) 40.2.1.5 Normas para las conversiones de serie Se ha añadido el tercer punto a la lista siguiente de esta sección: Para cada par de páginas de códigos, el resultado lo determina la aplicación secuencial de las normas siguientes: * Si las páginas de códigos son iguales, el resultado es esa página de códigos. * Si una de las páginas de códigos es BIT DATA (página de códigos 0), la página de códigos de resultados es BIT DATA. * En una base de datos Unicode, si una página de códigos indica datos en un esquema de codificación diferente de otra página de códigos, el resultado es UCS-2 por encima de UTF-8 (es decir, el tipo de datos gráfico por encima del tipo de datos de carácter).1 * En caso contrario, la página de códigos de resultados la determina la Tabla 8 del apartado "Normas para las conversiones de serie" del Capítulo 3 Elementos de lenguaje del manual Consulta de SQL. Una entrada de 'primera' en la tabla significa que se ha seleccionado la página de códigos del primer operando y una entrada de 'segunda' significa que se ha seleccionado la página de códigos del segundo operando. 1 En una base de datos no Unicode, no se da soporte a la conversión entre nombres de codificación diferentes. 40.2.1.6 Expresiones Se ha añadido lo siguiente: En una base de datos Unicode, una expresión que acepte una serie de caracteres o gráfica aceptará cualquier tipo de serie para el que se dé soporte a la conversión. Con el operador de concatenación Se ha añadido lo siguiente al final de este subapartado: En una base de datos Unicode, la concatenación que implica tanto a los operandos de serie de caracteres como a los operandos de serie gráfica convertirá en primer lugar los operandos de carácter en operandos gráficos. Tenga en cuenta que en una base de datos no Unicode, la concatenación no puede implicar ni a operandos de caracteres ni a gráficos. 40.2.1.7 Predicados La entrada siguiente se ha añadido a la lista introducida por la sentencia: "Las normas siguientes se aplican a todos los tipos de predicados": * En una base de datos Unicode, todos los predicados que aceptan una serie de caracteres o gráfica aceptarán cualquier tipo de serie para el que se dé soporte a la conversión. 40.2.2 Capítulo 4 Funciones 40.2.2.1 Funciones escalares Se ha añadido la sentencia siguiente al final de este apartado: En una base de datos Unicode, todas las funciones escalares que aceptan una serie de caracteres o gráfica aceptarán cualquier tipo de serie que disponga de soporte de conversión. ------------------------------------------------------------------------ 40.3 CLI Guide and Reference 40.3.1 Capítulo 3. Utilización de características avanzadas A continuación se muestra una sección nueva para este capítulo: 40.3.1.1 Escritura de una aplicación Unicode de DB2 CLI Hay dos áreas principales de soporte para las aplicaciones Unicode de DB2 CLI: 1. La incorporación de un conjunto de funciones que puedan aceptar argumentos de serie Unicode en vez de los argumentos de serie ANSI. 2. La incorporación de tipos de datos C y SQL nuevos para describir datos como datos ANSI o Unicode. Las secciones siguientes proporcionan más información sobre ambas áreas. Para que una aplicación se considere una aplicación Unicode, la aplicación debe establecer el atributo de conexión SQL_ATTR_ANSI_APP en SQL_AA_FALSE, antes de efectuar una conexión. Esta acción asegurará que CLI se conectará como cliente de Unicode y que todos los datos de Unicode se enviarán en UTF-8 para datos CHAR o en UCS-2 para datos GRAPHIC. Funciones de Unicode A continuación se muestra una lista de las funciones API ODBC que dan soporte tanto a las versiones de Unicode (W) como a las de ANSI (A) (el nombre de función tendrá una W para Unicode): SQLBrowseConnect SQLForeignKeys SQLPrimaryKeys SQLColAttribute SQLGetConnectAttr SQLProcedureColumns SQLColAttributes SQLGetConnectOption SQLProcedures SQLColumnPrivileges SQLGetCursorName SQLSetConnectAttr SQLColumns SQLGetDescField SQLSetConnectOption SQLConnect SQLGetDescRec SQLSetCursorName SQLDataSources SQLGetDiagField SQLSetDescField SQLDescribeCol SQLGetDiagRec SQLSetStmtAttr SQLDriverConnect SQLGetInfo SQLSpecialColumns SQLDrivers SQLGetStmtAttr SQLStatistics SQLError SQLNativeSQL SQLTablePrivileges SQLExecDirect SQLPrepare SQLTables Las funciones Unicode que siempre devuelven o adoptan argumentos de longitud de serie se pasan como número de caracteres. Para las funciones que devuelven información de longitud para los datos de servidor, el tamaño y la precisión de la visualización se describen en números de caracteres. Cuando una longitud (tamaño de transferencia de los datos) puede hacer referencia a una serie o a datos que no sean una serie, la longitud se describe en longitudes de octeto. Por ejemplo, SQLGetInfoW siempre adoptará la longitud como número de bytes, pero SQLExecDirectW utilizará número de caracteres. CLI devolverá conjuntos de resultados en Unicode o ANSI, en función de la vinculación de la aplicación. Si una aplicación se vincula a SQL_C_CHAR, el controlador convertirá datos SQL_WCHAR en SQL_CHAR. El gestor de controladores correlaciona SQL_C_WCHAR con SQL_C_CHAR para controladores ANSI pero no efectúa correlación alguna para controladores Unicode. Tipos de datos nuevos y conversiones válidas Hay dos tipos de datos definidos CLI o ODBC nuevos, SQL_C_WCHAR y SQL_WCHAR. SQL_C_WCHAR indica que el almacenamiento intermedio C contiene datos UCS-2. SQL_WCHAR indica que una columna o marcador de parámetros en concreto contiene datos Unicode. Para los DB2 Unicode Servers, las columnas gráficas se describirán como SQL_WCHAR. Se permitirá la conversión entre SQL_C_WCHAR y SQL_CHAR, SQL_VARCHAR, SQL_LONGVARCHAR y SQL_CLOB, así como entre los tipos de datos gráficos. Tabla 32. Conversiones de datos soportadas S S Q Q L S S L _ Q Q _ C L L C S S _ _ _ _ Q Q T C C D S L L Y _ _ B S Q S _ _ P S S C B C S Q S S L S Q C C E Q Q L L L Q L S Q S Q _ Q L _ _ _ L L O O O L _ Q L Q L C L _ T T T _ S _ B B B _ C L _ L _ _ _ C Y Y I C Q C _ _ _ C _ _ C _ C T C _ P P M _ L _ L L L _ N C _ C _ I _ D E E E B _ D O O O B U _ W _ S N F O _ _ S I C B C C C I M C C L H Y L U D T T N _ C A A A G E H H O O I O B A I A A B H T T T I R A A N R N A L T M M R I A O O O N I Tipo de datos SQL R R G T T T E E E P Y T R R R R T C BLOB X X D X CHAR D X X X X X X X X X X X X X CLOB D X X X DATE X X D X DBCLOB X X D X DECIMAL D X X X X X X X X X X DOUBLE X X X X X X D X X X FLOAT X X X X X X D X X X GRAPHIC X X D (No Unicode) GRAPHIC X X X X X X X X X X X X D X (Unicode) INTEGER X X D X X X X X X X LONG D X X VARCHAR LONG X X X D VARGRAPHIC (No Unicode) LONG X X X D VARGRAPHIC (Unicode) NUMERIC D X X X X X X X X REAL X X X X X D X X X SMALLINT X X X D X X X X X X BIGINT X X X X X X X X X D X TIME X X D X TIMESTAMP X X X X D VARCHAR D X X X X X X X X X X X X X VARGRAPHIC X X D (No Unicode) VARGRAPHIC X X X X X X X X X X X X D X (Unicode) Nota: D La conversión está soportada. Este es el valor por omisión para el tipo de datos SQL. X Todos los DBMS de IBM dan soporte a la conversión. blanco Ningún DBMS de IBM da soporte a la conversión. o Los datos no se convierten en tipos de Localizador de LOB, en vez de eso, los localizadores representan un valor de datos, para obtener más información consulte Utilización de objetos grandes. o SQL_C_NUMERIC sólo está disponible en sistemas operativos Windows de 32 bits. Valor de palabra clave/parche obsoleto Antes de que se diera soporte a las aplicaciones Unicode, podía conseguirse que las aplicaciones que se habían escrito para que funcionaran con datos de tipo carácter de un solo byte funcionaran con datos gráficos de doble byte por medio de una serie de palabras clave de archivo cli ini, como por ejemplo, GRAPHIC=1,2 ó 3, Patch2=7 etc. Estas soluciones temporales presentaban datos gráficos como datos de tipo carácter y, asimismo afectaban a la longitud comunicada de los datos. Dichas palabras clave ya no son necesarias para las aplicaciones Unicode y, de hecho, no deberían utilizarse ya que podrían dar lugar a efectos colaterales graves. Si no se sabe si una determinada aplicación es una aplicación Unicode, le recomendamos que pruebe sin ninguna de las palabras clave que afectan al manejo de datos gráficos. Literales en bases de datos Unicode En bases de datos no Unicode, los datos de las columnas LONG VARGRAPHIC y LONG VARCHAR no pueden compararse. Los datos de las columnas GRAPHIC/VARGRAPHIC y CHAR/VARCHAR sólo puede compararse, a asignarse los unos a los otros, utilizando funciones cast explícitas, ya que no existe soporte de conversión de páginas de códigos implícita. Esto incluye a los literales GRAPHIC/VARGRAPHIC y CHAR/VARCHAR en los que un literal GRAPHIC/VARGRAPHIC se diferencia de un literal CHAR/VARCHAR por medio de un prefijo G. Para bases de datos Unicode, no se necesita la difusión entre literales GRAPHIC/VARGRAPHIC y CHAR/VARCHAR. Tampoco se necesita un prefijo G delante de un literal GRAPHIC/VARGRAPHIC. A condición de que uno de los argumentos sea un literal, se producirán conversiones implícitas. Lo cual permite que los literales con o sin el prefijo G se utilicen dentro de las sentencias que utilizan SQLPrepareW() o SQLExecDirect(). Los literales para LONG VARGRAPHIC deben tener el prefijo G. Para obtener más información, por favor consulte el apartado "Difusión entre tipos de datos" del Capítulo 3 Elementos de lenguaje del manual Consulta de SQL. Nuevas palabras clave de configuración de CLI Se han añadido las tres palabras clave siguientes para evitar exceso de carga cuando las aplicaciones Unicode se conecten a una base de datos. 1. DisableUnicode Descripción de la palabra clave: Inhabilita el soporte subyacente de Unicode. Sintaxis de las palabras clave de db2cli.ini: DisableUnicode = 0 | 1 Valor por omisión: 0 (falso) Pestaña Valores de CLI/ODBC de DB2: Esta palabra clave no puede establecerse utilizando el cuaderno Valores de CLI/ODBC. Para utilizar esta palabra clave, el archivo db2cli.ini debe modificarse directamente. Notas de uso: Una vez habilitado el soporte de Unicode, si una aplicación Unicode lo llama, CLI intentará conectarse a la base de datos utilizando la mejor página de códigos posible, de modo que no se produzca una pérdida de datos innecesaria debido a la conversión de página de códigos. Es posible que esto prolongue el tiempo de conexión debido al intercambio de páginas de códigos o que cause en el cliente conversiones de páginas de códigos que antes de añadir el soporte no se producían. Si esta palabra clave se establece en True (Verdadero), todos los datos Unicode se convertirán a la página de códigos local de la aplicación antes de que los datos se envíen al servidor. Es posible que esto provoque una pérdida de los datos que no puedan representarse en la página de códigos local. 2. ConnectCodepage Descripción de la palabra clave: Especifica una página de códigos específica que deberá utilizarse al conectarse a la fuente de datos para evitar que se produzca una actividad general de conexión extra. Sintaxis de las palabras clave de db2cli.ini: ConnectCodepage = 0 | 1 Valor por omisión: 0 Pestaña Valores de CLI/ODBC de DB2: Esta palabra clave no puede establecerse utilizando el cuaderno Valores de CLI/ODBC. Para utilizar esta palabra clave, el archivo db2cli.ini debe modificarse directamente. Notas de uso: Las aplicaciones no Unicode siempre se conectan a la base de datos utilizando la página de códigos local de la aplicación o el valor de entorno DB2Codepage. Por omisión, CLI se asegurará de que las aplicaciones Unicode se conecten a bases de datos Unicode utilizando páginas de códigos UTF-8 y UCS-2. También se asegurará de que se conecten a bases de datos que no sean Unicode utilizando la página de códigos de cada base de datos. Esto garantiza que no se produzcan pérdidas de datos innecesarias debido a la conversión de páginas de códigos. Esta palabra clave permite al usuario especificar la página de códigos de la base de datos cuando se conecta a una base de datos que no es Unicode para evitar que se produzca una actividad general extra en la conexión. Especifique un valor de 1 para que SQLDriverConnect() devuelva el valor correcto en la serie de conexión de salida, de modo que el valor pueda utilizarse en futuras llamadas de SQLDriverConnect(). 3. UnicodeServer Descripción de la palabra clave: Indica que la fuente de datos es un Servidor Unicode. Equivale a establecer ConnectCodepage=1208. Sintaxis de las palabras clave de db2cli.ini: UnicodeServer = 0 | 1 Valor por omisión: 0 Pestaña Valores de CLI/ODBC de DB2: Esta palabra clave no puede establecerse utilizando el cuaderno Valores de CLI/ODBC. Para utilizar esta palabra clave, el archivo db2cli.ini debe modificarse directamente. Notas de uso: Esta palabra clave equivale a ConnectCodepage=1208 y se añade únicamente por comodidad. Establezca esta palabra clave para evitar que se produzca actividad general extra al conectarse a DB2 para OS/390 Versión 7 o superior. No es necesario establecer esta palabra clave para bases de datos de DB2 para Windows, DB2 para Unix o DB2 para OS/2, ya que no requieren procesos adicionales. 40.3.2 Apéndice C. DB2 CLI y ODBC A continuación se muestra una sección nueva que se ha añadido a este apéndice: 40.3.2.1 Aplicaciones Unicode de ODBC Una aplicación Unicode de ODBC envía y recupera datos de tipo carácter fundamentalmente en UCS-2. Efectúa esta acción llamando a las versiones de Unicode de las funciones ODBC (sufijo 'W') e indicando los tipos de datos de Unicode. La aplicación no especifica una página de códigos local de modo explícito. La aplicación puede seguir llamando a las funciones ANSI y pasando las series de página de códigos local. Por ejemplo, la aplicación puede llamar a SQLConnectW() y pasar el DSN, ID de usuario y contraseña como argumentos de Unicode. A continuación, puede llamar a SQLExecDirectW(), pasar una serie de sentencia SQL de Unicode SQL y, después vincular una combinación de almacenamientos intermedios de página local ANSI (SQL_C_CHAR) y de almacenamientos intermedios Unicode (SQL_C_WCHAR). Los tipos de datos de base de datos pueden ser la página de códigos local o UCS-2 y UTF-8. Si una aplicación CLI llama a SQLConnectW o llama a SQLSetConnectAttr con SQL_ATTR_ANSI_APP establecido en SQL_AA_FALSE, se considera que la aplicación es una aplicación Unicode. Esto significa que todos los datos CHAR se envían y reciben desde la base de datos en formato UTF-8. A continuación, la aplicación puede captar datos CHAR en almacenamientos intermedios SQL_C_CHAR de la página de códigos local (con una posible pérdida de datos), o en almacenamientos intermedios SQL_C_WCHAR en UCS-2 sin pérdida de datos. Si la aplicación no efectúa ninguna de las dos llamadas anteriores, los datos CHAR se convierten a la página de códigos local de las aplicaciones del servidor. Lo cual significa que los datos CHAR que se captan en SQL_C_WCHAR pueden experimentar una pérdida de datos. Si la variable de instancia de DB2CODEPAGE se establece (utilizando db2set) en la página de códigos 1208 (UTF-8), la aplicación recibirá todos los datos CHAR en UTF-8 ya que ésta es ahora la página de códigos local. La aplicación debe asegurarse también de que todos los datos de entrada CHAR estén asimismo en UTF-8. ODBC asume asimismo que todos los datos SQL_C_WCHAR están en formato endian nativo. CLI efectuará la alternancia de bytes que se necesite para SQL_C_WCHAR. Aplicaciones Unicode de ODBC frente a aplicaciones no Unicode de ODBC Este release de DB2 Universal Database contiene la API de SQLConnectW(). Un controlador Unicode debe exportar SQLConnectW para que el gestor de controladores lo reconozca como controlador Unicode. Es importante tener en cuenta que numerosas aplicaciones de ODBC (por ejemplo Microsoft Access y Visual Basic) llaman a SQLConnectW(). En los releases anteriores de DB2 Universal Database, DB2 CLI no daba soporte a esta API y, por tanto el gestor de controladores de ODBC no lo reconocía como controlador Unicode. Esto hacía que el gestor de controladores de ODBC convirtiera todos los datos de Unicode a la página de códigos local de la aplicación. Con el soporte añadido de la función SQLConnectW(), estas aplicaciones se convertirán ahora en aplicaciones Unicode y DB2 CLI asumirá todas las conversiones de datos necesarias. DB2 CLI acepta en este momento las API de Unicode (con un sufijo de "W") y las API de ANSI habituales. ODBC define un conjunto de funciones con un sufijo de "A", pero el gestor de controladores no pasa funciones de ANSI con el sufijo "A" al controlador. En vez de eso, convierte dichas funciones en llamadas de función de ANSI sin el sufijo y después las pasa al controlador. Una aplicación de ODBC que llama a la API de SQLConnectW() se considera que es una aplicación Unicode. Puesto que el gestor de controladores de ODBC siempre llamará a la API de SQLConnectW() sin tener en cuenta la versión de la aplicación llamada, ODBC introducirá el atributo de conexión SQL_ATTR_ANSI_APP para notificar al controlador si la aplicación debería considerarse una aplicación ANSI o UNICODE. Si SQL_ATTR_ANSI_APP no se establece en SQL_AA_FALSE, DB2 CLI convierte todos los datos de Unicode a la página de códigos local antes de enviarlos al servidor. ------------------------------------------------------------------------ 40.4 Data Movement Utilities Guide and Reference 40.4.1 Apéndice C. Formatos de archivo de programa de utilidad de Exportación/Importación/Carga A este apéndice se le ha añadido la siguiente actualización: No se da soporte a los programas de utilidad de exportación, importación y carga cuando éstos se utilizan con un cliente Unicode conectado a una base de datos no Unicode. Sólo se da soporte a los archivos de cliente Unicode cuando éste está conectado a una base de datos Unicode. ------------------------------------------------------------------------ Conexión con sistemas principales Tabla de contenido parcial * Suplemento de conectividad o 41.1 Configuración del servidor de aplicaciones en un entorno VM o 41.2 Valores de PATCH1 y PATCH2 para configuración de CLI/ODBC/JDBC ------------------------------------------------------------------------ Suplemento de conectividad ------------------------------------------------------------------------ 41.1 Configuración del servidor de aplicaciones en un entorno VM Añada la frase siguiente después de la primera (y única) frase de la sección "Suministro de información de la red", subsección "Definición del servidor de aplicaciones": RDB_NAME se proporciona en SQLSTART EXEC como el parámetro DBNAME. ------------------------------------------------------------------------ 41.2 Valores de PATCH1 y PATCH2 para configuración de CLI/ODBC/JDBC El controlador CLI/ODBC/JDBC se puede configurar mediante el Asistente de configuración del cliente o el ODBC Driver Manager (si está instalado en el sistema) o editando manualmente el archivo db2cli.ini. Para obtener más detalles, consulte el manual Suplemento de instalación y configuración o el manual CLI Guide and Reference. El comportamiento por omisión del controlador DB2 CLI/ODBC puede modificarse especificando valores para las palabras clave PATCH1 y PATCH2 mediante el archivo db2cli.ini o mediante las API CLI SQLDriverConnect() o SQLBrowseConnect(). La palabra clave PATCH1 se especifica añadiendo todas las palabras clave que el usuario desea establecer. Por ejemplo, si se especificasen los parches 1, 2 y 8, PATCH1 tendría el valor 11. A continuación encontrará una descripción de cada valor de la palabra clave y su efecto en el controlador: 1 - Hace que el controlador busque "count(exp)" y lo sustituya por "count(distinct exp)". Es necesario porque algunas versiones de DB2 soportan la sintaxis "count(exp)" y esta sintaxis la generan algunas aplicaciones ODBC. Es necesario para aplicaciones Microsoft cuando el servidor no soporta la sintaxis "count(exp)". 2 - Algunas aplicaciones ODBC se interrumpen cuando se devuelve SQL_NULL_DATA en la función SQLGetTypeInfo() para las columnas LITERAL_PREFIX o LITERAL_SUFFIX. Esto fuerza al controlador a devolver una serie vacía en su lugar. Es necesario para Impromptu 2.0. 4 - Fuerza al controlador a tratar los datos de indicación de la hora de entrada como datos de fecha si la parte de la hora y la fracción de la indicación de la hora son cero. Necesario para Microsoft Access. 8 - Fuerza al controlador a tratar los datos de indicación de la hora de entrada como datos de hora si la parte de fecha de la indicación de la hora es 1899-12-30. Necesario para Microsoft Access. 16 - No utilizado. 32 - Fuerza al controlador a no devolver información acerca de las columnas SQL_LONGVARBINARY y SQL_LONGVARGRAPHIC. Para la aplicación, parece como si no estuviesen soportados los campos largos. Necesario para Lotus 123. 64 - Fuerza al controlador a terminar en NULL las series de salida gráficas. Necesario para Microsoft Access en un entorno de doble byte. 128 - Fuerza al controlador a dejar la consulta "SELECT Config, nValor FROM MSysConf" vaya al servidor. Actualmente el controlador devuelve un error con el valor SQLSTATE asociado de S0002 (tabla no encontrada). Es necesario si el usuario ha creado esta tabla de configuración en la base de datos y desea que la aplicación acceda a ella. 256 - Fuerza al controlador a devolver primero las columnas de clave primaria primero en la llamada SQLStatistics(). Actualmente, el controlador devuelve los índices clasificados por nombre de índice, que es el comportamiento estándar de ODBC. 512 - Fuerza al controlador a devolver FALSE en SQLGetFunctions() para SQL_API_SQLTABLEPRIVILEGES y SQL_API_SQLCOLUMNPRIVILEGES. 1024 - Fuerza al controlador a devolver SQL_SUCCESS en lugar de SQL_NO_DATA_FOUND en SQLExecute() o SQLExecDirect() si la sentencia UPDATE o DELETE ejecutada no afecta a ninguna fila. Necesario para aplicaciones Visual Basic. 2048 - No se utiliza. 4096 - Fuerza al controlador a no emitir COMMIT después de cerrar un cursor cuando se está en modalidad de confirmación automática. 8192 - Fuerza al controlador a devolver un conjunto de resultados adicional después de invocar un procedimiento almacenado. Este conjunto de resultados es un conjunto de resultados de una fila que consta de los valores de salida del procedimiento almacenado. Pueden acceder a él aplicaciones Powerbuild. 32768 - Fuerza al controlador a realizar trabajos de aplicaciones de consulta Microsoft con sinónimos DB2 MVS. 65536 - Fuerza al controlador a insertar manualmente una "G" delante de los literales de caracteres que son de hecho literales gráficos. Este parche debe suministrarse siempre cuando se trabaja en un entorno de doble byte. 131072 - Fuerza al controlador a describir una columna de indicación de la hora como una columna CHAR(26) cuando forma parte de un índice exclusivo. Necesario para aplicaciones Microsoft. 262144 - Fuerza al controlador a usar la tabla del seudocatálogo db2cli.procedures en lugar de las tablas SYSCAT.PROCEDURES y SYSCAT.PROCPARMS. 524288 - Fuerza al controlador a usar SYSTEM_TABLE_SCHEMA en lugar de TABLE_SCHEMA cuando se efectúa una consulta de tabla del sistema a un sistema DB2/400 V3.x. Esto da como resultado un mejor rendimiento. 1048576 - Fuerza al controlador a tratar una serie de longitud cero mediante SQLPutData() como SQL_NULL_DATA. La palabra clave PATCH2 difiere de la palabra clave PATCH1. En este caso, se especifican múltiples parches utilizando comas como separadores. Por ejemplo, si se han especificado los parches 1, 4 y 5, PATCH2 tendría un valor de "1,4,5". A continuación encontrará una descripción de cada valor de la palabra clave y su efecto en el controlador: 1 - Fuerza al controlador a convertir a mayúsculas el nombre del procedimiento almacenado de una sentencia CALL. 2 - No se utiliza. 3 - Fuerza al controlador a convertir a mayúsculas todos los argumentos para llamadas de esquema. 4 - Fuerza al controlador a devolver el conjunto de resultados como en la Versión 2.1.2 para llamadas a esquemas (es decir, SQLColumns(), SQLProcedureColumns(), etcétera) en lugar de devolver el conjunto de resultados como en la Versión 5 como conjunto de resultados. 5 - Fuerza al controlador a no optimizar el proceso de columnas VARCHAR de entrada, en las que el puntero para los datos y el puntero para la longitud son consecutivos en la memoria. 6 - Fuerza al controlador a devolver el mensaje que indica que los cursores desplazables no están soportados. Es necesario para programas Visual Basic si el cliente DB2 es de la Versión 5 y el servidor es DB2 UDB Versión 5. 7 - Fuerza al controlador a correlacionar todos los tipos de datos de columnas GRAPHIC con los tipo de datos de columnas CHAR. Es necesario en un entorno de doble byte. 8 - Fuerza al controlador a ignorar los argumentos de búsqueda del catálogo en llamadas a esquemas. 9 - No confirma en el Cierre rápido de un cursor 10 - No se utiliza 11 - Informa de que el nombre del catálogo está soportado, (procedimientos almacenados VB) 12 - Elimina las comillas de los argumentos de llamadas a esquemas, (Visual Interdev) 13 - No añade palabras clave de db2cli.ini a la serie de conexión de salida 14 - Ignora el nombre de esquema en SQLProcedures() y SQLProcedureColumns() 15 - Utiliza siempre el punto como separador decimal en salida de caracteres 16 - Fuerza la devolución de información de descripción para cada apertura 17 - No devuelve nombres de columnas en la descripción 18 - Intenta sustituir los literales por marcadores de parámetros 19 - Actualmente, DB2 MVS V4.1 no soporta la sintaxis ODBC en la que están permitidos los paréntesis en la cláusula ON de una cláusula de unión exterior. La activación de esta PATCH2 hará que el controlador IBM DB2 ODBC desmiembre los paréntesis cuando la cláusula de unión exterior esté en una secuencia de escape ODBC. Esta PATCH2 sólo debe utilizarse en DB2 MVS 4.1. 20 - Actualmente, DB2 en MVS no soporta el predicado BETWEEN con marcadores de parámetros como operandos (expresión ? BETWEEN ?). La activación de este parche provocará que el Controlador IBM ODBC vuelva a escribir el predicado como (expresión >= ? y expresión <= ?). 21 - Establece todos los parámetros de sólo OUTPUT para procedimientos almacenados en SQL_NULL_DATA 22 - Esta PATCH2 hace que el controlador IBM ODBC informe de la unión OUTER como no soportada. Es para la aplicación que genera SELECT DISTINCT col1 u ORDER BY col1 cuando utiliza una sentencia de unión externa donde col1 tiene una longitud superior a 254 caracteres y hace que DB2 UDB devuelva un error (ya que DB2 UDB no soporta columnas superiores a 254 bytes en este uso 23 - No optimiza la entrada para parámetros vinculados con cbColDef=0 24 - Solución de Access para correlacionar valores de Tiempo como Caracteres 25 - Solución de Access para columnas decimales - elimina los ceros de cola en la representación de char 26 - No devuelve sqlcode 464 a la aplicación - indica que se devuelven conjuntos de resultados 27 - Fuerza SQLTables para que utilice el valor de palabra clave TABLETYPE, incluso si la aplicación especifica un valor válido 28 - Describe columnas reales como columnas dobles 29 - Solución ADO para columnas decimales - elimina los ceros iniciales para los valores x, donde 1 > x > -1 (Sólo es necesario para algunas versiones de MDAC) 30 - Inhabilita la optimización de puesta en antememoria de procedimiento almacenado 31 - Informa de estadísticas para alias en la llamada a SQLStatistics 32 - Altera temporalmente el proceso 4 del código de razón sqlcode -727 33 - Devuelve la versión ISO de la indicación de la hora cuando se convierte a char (al contrario de la versión ODBC) 34 - Informa de las columnas CHAR FOR BIT DATA como CHAR 35 - Informa de un TABLENAME no válido cuando se solicita SQL_DESC_BASE_TABLE_NAME - optimización de sólo lectura ADO 36 - Reservado 37 - Reservado ------------------------------------------------------------------------ Información general Tabla de contenido parcial * Información general o 42.1 DB2 Universal Database Business Intelligence Quick Tour o 42.2 DB2 Everywhere ahora es DB2 Everyplace o 42.3 Ratón necesario o 42.4 Intento de vinculación desde los resultados de Cliente de tiempo de ejecución de DB2 en un error "Archivos de vinculación no encontrados" o 42.5 Search Discovery o 42.6 Ventanas de memoria para HP-UX 11 o 42.7 Acción del usuario para la anomalía de dlfm client_conf o 42.8 En las raras ocasiones en que el daemon de copia no se detenga con dlfm stop o 42.9 Desinstalación de DB2 DFS Client Enabler o 42.10 Autentificación de cliente en Windows NT o 42.11 AutoLoader puede colgarse durante un fork o 42.12 Restauración de DATALINK o 42.13 Definir el ID de usuario y la contraseña en IBM Communications Server para Windows NT (CS/NT) + 42.13.1 Definición de nodo o 42.14 Restricciones para sistemas federados o 42.15 Restricción para DataJoiner o 42.16 Gestor de catálogos de información en hebreo para Windows NT o 42.17 Soporte de Microsoft SNA Server y SNA Multisite Update (Confirmación en dos fases) o 42.18 El SPM de SNA de DB2 no se inicia después de rearrancar Windows o 42.19 Valor de entorno nacional para DB2 Administration Server o 42.20 Los atajos no funcionan o 42.21 Requisitos de la cuenta de servicio para DB2 en Windows NT y Windows 2000 o 42.22 Privilegio EXECUTE perdido para los usuarios de Query Patroller creados con la versión 6 o 42.23 Restricciones de Query Patroller o 42.24 Necesidad de confirmar todos los programas definidos por el usuario que se utilizarán en el Centro de depósito de datos (DWC) o 42.25 Nueva opción para la exportación de la línea de mandatos del Centro de depósito de datos o 42.26 Las API de servicios de copia de seguridad (XBSA) o 42.27 Agente de OS/390 + 42.27.1 Visión general de instalación + 42.27.2 Detalles sobre la instalación + 42.27.3 Configuración de funciones de agente adicionales + 42.27.4 Planificación de pasos de depósito con el programa desencadenante (XTClient) + 42.27.5 Transformadores + 42.27.6 Acceso a bases de datos fuera de la familia DB2 + 42.27.7 Ejecución de programas de utilidad de DB2 para OS/390 + 42.27.8 Duplicación + 42.27.9 Anotación cronológica del agente o 42.28 Colocación en antememoria en el cliente en Windows NT o 42.29 Productos de prueba en los CD-ROM de UNIX Enterprise Edition o 42.30 Productos de prueba en los CD-ROM de UNIX de DB2 Connect Enterprise Edition o 42.31 Descarte de Data Links Manager o 42.32 La desinstalación de los componentes de DLFM utilizando la SMIT puede eliminar catálogos de archivos adicionales o 42.33 Error SQL1035N al utilizar CLP en Windows 2000 o 42.34 Mejora de SQL Assist o 42.35 Integración de escritorios Gnome y KDE para DB2 en Linux o 42.36 Ejecución de DB2 bajo Windows 2000 Terminal Server, Modalidad de administración o 42.37 Ayuda en línea para los mandatos de copia de seguridad y restauración o 42.38 "Warehouse Manager" debe ser "DB2 Warehouse Manager" ------------------------------------------------------------------------ Información general ------------------------------------------------------------------------ 42.1 DB2 Universal Database Business Intelligence Quick Tour Quick Tour no está disponible en DB2 para Linux o Linux/390. Quick Tour está optimizado para ejecutarse con fonts de sistema pequeños. Es posible que tenga que ajustar el tamaño de font del navegador de Web para poder visualizar correctamente Quick Tour en OS/2. Consulte la información para ello en la ayuda del navegador de Web. Para visualizar Quick Tour correctamente (sólo SBCS), es aconsejable utilizar un font en Helvética de 8 puntos. Para clientes japoneses y coreanos, es aconsejable utilizar un font Mincho de 8 puntos. Cuando establezca sus preferencias de fonts, asegúrese de seleccionar la opción "Utilizar mis fonts por omisión, alterando temporalmente los fonts especificados por el documento" en la página Fonts de la ventana Preferencias. En algunos casos, se puede visualizar Quick Tour detrás de una ventana secundaria del navegador. Para corregir este problema, cierre Quick Tour y realice los pasos indicados en el apartado 2.4, Mensajes de error cuando se intenta ejecutar Netscape. Cuando lance Quick Tour, es posible que reciba un error de JavaScript parecido al siguiente: archivo:/C/Archivos de programa/SQLLIB/doc/html/db2qt/index4e.htm, línea 65: La ventana no está definida. Este error de JavaScript impide que la página de lanzamiento de Quick Tour, index4e.htm, se cierre automáticamente después de lanzar Quick Tour. Puede cerrar dicha página cerrando la ventana del navegador en la que se visualiza index4e.htm. En el apartado "Novedades", bajo el tema Gestión de datos, se indica que la versión 7.1 da soporte al "soporte de archivador de anotaciones cronológicas bajo petición". Este no es el caso. También se afirma que: El tamaño de los archivos de anotaciones cronológicas se ha aumentado de 4GB a 32GB. Esta frase debería decir: El espacio total de anotaciones cronológicas activo se ha aumentado de 4GB a 32GB. La sección que describe DB2 Data Links Manager contiene una frase que dice: Además, ahora se da soporte a la utilización de la interfaz Veritas XBSA para realizar copias de seguridad y restauraciones utilizando NetBackup. Esta frase debería decir: Además, ahora se da soporte a la interfaz XBSA para el archivado y la restauración de archivos. Entre los gestores de almacenamiento que dan soporte a la interfaz XBSA se incluyen Legato NetWorker y Veritas NetBackup. ------------------------------------------------------------------------ 42.2 DB2 Everywhere ahora es DB2 Everyplace El nombre de DB2 Everywhere se ha cambiado por DB2 Everyplace. ------------------------------------------------------------------------ 42.3 Ratón necesario Para todas las plataformas excepto Windows, se necesita un ratón para utilizar las herramientas. ------------------------------------------------------------------------ 42.4 Intento de vinculación desde los resultados de Cliente de tiempo de ejecución de DB2 en un error "Archivos de vinculación no encontrados" Puesto que el Cliente de tiempo de ejecución de DB2 no tiene el conjunto completo de archivos de vinculación, la vinculación de herramientas de GUI no se puede llevar a cabo desde el cliente de tiempo de ejecución de DB2 y sólo se puede realizar desde el DB2 Administration Client. ------------------------------------------------------------------------ 42.5 Search Discovery Search discovery sólo está soportado en soporte de difusión. Por ejemplo, search discovery no funcionará a través de un adaptador ATM. Sin embargo, esta limitación no se aplica a un discovery conocido. ------------------------------------------------------------------------ 42.6 Ventanas de memoria para HP-UX 11 Las ventanas de memoria sirven para los usuarios de máquinas grandes HP de 64 bits, que desean aprovechar la memoria compartida superior a 1,75 GB para aplicaciones de 32 bits. Las ventanas de memoria no son necesarias si está ejecutando la versión de 64 bits de DB2. Las ventanas de memoria hacen que esté disponible 1 GB de memoria compartida separado por proceso o grupo de procesos. Esto permite que una instancia tenga 1 GB propio de memoria compartida, más 0,75 GB de memoria global compartida. Si los usuarios desean aprovecharlo, pueden ejecutar múltiples instancias, cada una en su propia ventana. A continuación encontrará los requisitos previos y las condiciones para utilizar las ventanas de memoria: * Entorno DB2 EE o Parches: Extension Software 12/98 y PHKL_17795. o Debe establecerse la variable $DB2INSTANCE para la instancia. o Debe existir una entrada en el archivo /etc/services.window para cada instancia de DB2 que desee ejecutar bajo ventanas de memoria. Por ejemplo: instanciadb21 50 instanciadb22 60 Nota: Sólo puede haber un espacio entre el nombre y el ID. o Cualquier mandato DB2 que desee ejecutar en el servidor y que necesite más de una sola sentencia, debe ejecutarse utilizando el método de bucle de retorno TCP/IP. Esto es debido a que el shell terminará cuando las ventanas de memoria terminen el proceso de la primera sentencia. El servicio DB2 sabe como conseguirlo. o Cualquier mandato DB2 que desee ejecutar en una instancia que se ejecute en ventanas de memoria debe ir precedido de db2win (situado en sqllib/bin). Por ejemplo: db2win db2start db2win db2stop o Cualquier mandato de DB2 que se ejecute fuera de las ventanas de memoria (pero cuando estén en ejecución) debe devolver un 1042. Por ejemplo: db2win db2start <== OK db2 connect to db <==SQL1042 db2stop <==SQL1042 db2win db2stop <== OK * Entorno DB2 EEE o Parches: Extension Software 12/98 y PHKL_17795. o Debe establecerse la variable $DB2INSTANCE para la instancia. o La variable de registro DB2_ENABLE_MEM_WINDOWS debe establecerse en TRUE. o Debe existir una entrada en el archivo /etc/services.window para cada nodo lógico de cada instancia que desee ejecutar bajo ventanas de memoria. El primer campo de cada entrada debe ser el nombre de instancia concatenado con el número de puerto. Por ejemplo: === $HOME/sqllib/db2nodes.cfg for db2instance1 === 5 host1 0 7 host1 1 9 host2 0 === $HOME/sqllib/db2nodes.cfg for db2instance2 === 1 host1 0 2 host2 0 3 host2 1 === /etc/services.window on host1 === db2instance10 50 db2instance11 55 db2instance20 60 === /etc/services.window on host2 === db2instance10 30 db2instance20 32 db2instance21 34 o No debe preceder ningún mandato DB2 con db2win, que sólo debe utilizarse en un entorno EE. ------------------------------------------------------------------------ 42.7 Acción del usuario para la anomalía de dlfm client_conf Si, en un cliente DLFM, falla dlfm client_conf por algún motivo, la razón puede ser que existan entradas "obsoletas" en los catálogos de DB2. La solución consiste en emitir los mandatos siguientes: db2 uncatalog db db2 uncatalog node db2 terminate A continuación, vuelva a intentar dlfm client_conf. ------------------------------------------------------------------------ 42.8 En las raras ocasiones en que el daemon de copia no se detenga con dlfm stop En muy pocas situaciones puede pasar que dlfm_copyd (el daemon de copia) no se detenga cuando un usuario emite dlfm stop o se produce una conclusión anormal. Si esto sucede, emita un dlfm shutdown antes de intentar reiniciar dlfm. ------------------------------------------------------------------------ 42.9 Desinstalación de DB2 DFS Client Enabler Antes de desinstalar DB2 DFS Client Enabler, el usuario root debe asegurarse de que ningún archivo DFS esté en uso y de que ningún usuario tenga abierto un shell en el espacio de archivos DFS. Como root, emita el mandato siguiente: stop.dfs dfs_cl Compruebe que /... ya no esté montado: mount | grep -i dfs Si no lo hace así y se ha desinstalado DB2 DFS Client Enabler, deberá volver a arrancar la máquina. ------------------------------------------------------------------------ 42.10 Autentificación de cliente en Windows NT Se introduce una nueva variable de registro de DB2, DB2DOMAINLIST, para complementar el mecanismo de autentificación de cliente existente en el entorno Windows NT. Esta variable se utiliza en el servidor DB2 para Windows NT para definir uno o más dominios de Windows NT. Tan solo se aceptarán peticiones de conexión o enlace desde los usuarios que pertenecen a los dominios definidos en esta lista. Esta variable de registro sólo debe utilizarse bajo un dominio Windows NT puro con servidores y clientes DB2 que ejecuten la Versión 7 (o superior). Para obtener información sobre cómo establecer esta variable de registro, consulte la sección "Variables de registro y de entorno de DB2" en el manual Administration Guide: Performance. ------------------------------------------------------------------------ 42.11 AutoLoader puede colgarse durante un fork AIX 4.3.3 contiene un arreglo para un problema de libc que puede hacer que AutoLoader se quede colgado durante un fork (crear y arrancar un proceso dependiente). AutoLoader es un programa de múltiples hebras. Una de las hebras crea y arranca otro proceso. Crear y arrancar un proceso hijo hace que se cree una imagen de la memoria del padre en el hijo. Es posible que una hebra que no sea de fork haya retenido bloqueos utilizados por libc.a para gestionar varias hebras asignando memoria de la pila dentro del mismo proceso. Puesto que la hebra que no es de fork no existirá en el proceso hijo, este bloqueo nunca se liberará en el hijo, lo cual hace que a veces el padre se quede colgado. ------------------------------------------------------------------------ 42.12 Restauración de DATALINK La restauración de cualquier copia de seguridad fuera de línea que se haya realizado después de una restauración de base de datos, con o sin recuperación de avance, no implicará proceso de reconciliación rápida. En tales casos, todas las tablas con columnas DATALINK bajo control de enlace de archivo pasarán a estado pendiente de reconciliación de enlace de datos (DRP). ------------------------------------------------------------------------ 42.13 Definir el ID de usuario y la contraseña en IBM Communications Server para Windows NT (CS/NT) Si utiliza APPC como protocolo de comunicaciones para clientes DB2 remotos para conectarse al servidor DB2 y si utiliza CS/NT como producto SNA, asegúrese de que las palabras clave siguientes estén definidas correctamente en el archivo de configuración de CS/NT. Este archivo normalmente se encuentra en el directorio x:\ibmcs\private. 42.13.1 Definición de nodo TG_SECURITY_BEHAVIOR Este parámetro permite al usuario determinar cómo debe manejar el nodo la información de seguridad presente en ATTACH si el TP no está configurado para seguridad IGNORE_IF_NOT_DEFINED Este parámetro permite al usuario determinar si hay presentes parámetros de seguridad en ATTACH e ignorarlos si el TP no está configurado para seguridad. Si utiliza IGNORE_IF_NOT_DEFINED, no es necesario definir un ID de usuario y una contraseña en CS/NT. VERIFY_EVEN_IF_NOT_DEFINED Este parámetro permite al usuario determinar si hay presentes parámetros de seguridad en ATTACH y verificarlos incluso si el TP no está configurado para seguridad. Este es el valor por omisión. Si utiliza VERIFY_EVEN_IF_NOT_DEFINED, debe definir un ID de usuario y una contraseña en CS/NT. Para definir el ID de usuario y la contraseña en CS/NT, realice los pasos siguientes: 1. Inicio --> Programas --> IBM Communications Server --> Configuración de nodo SNA. Se abrirá la ventana Bienvenido a Configuración de Communications Server. 2. Elija el archivo de configuración que desee modificar. Pulse Siguiente. Se abrirá la ventana Elegir un escenario de configuración. 3. Resalte CPI-C, APPC o Emulación 5250. Pulse Finalizar. Se abrirá la ventana Nodo SNA de Communications Server. 4. Pulse el [+] junto a CPI-C y APPC. 5. Pulse el [+] junto a Seguridad de LU6.2. 6. Pulse el botón derecho del ratón en Contraseñas de usuario y seleccione Crear. Se abrirá la ventana Definir ID de usuario y contraseña. 7. Rellene el ID de usuario y la contraseña. Pulse en Aceptar. Pulse Finalizar para aceptar los cambios. ------------------------------------------------------------------------ 42.14 Restricciones para sistemas federados A continuación se indican las restricciones aplicables a sistemas federados: * No se soportan los tipos de datos NCHAR, NVARCHAR2, NCLOB y BFILE de Oracle en consultas que impliquen apodos. * No se soportan los mandatos Crear opción de servidor, Alterar opción de servidor ni Eliminar opción de servidor desde el Centro de control. Para emitir cualquiera de estos mandatos, se debe utilizar el procesador de línea de mandatos (CLP). * Para las consultas que implican apodos, DB2 UDB no siempre se ajusta a la opción de configuración de bases de datos DFT_SQLMATHWARN. En cambio, DB2 UDB devuelve los errores aritméticos o avisos directamente desde la fuente de datos remota, independientemente del valor de DFT_SQLMATHWARN. * La sentencia CREATE SERVER OPTION no permite que la opción de servidor COLSEQ se establezca en 'I' para fuentes de datos que tienen secuencias de clasificación que no son sensibles a las mayúsculas y minúsculas. * La sentencia ALTER NICKNAME devuelve SQL0901N cuando se especifica una opción que no es válida. * Para fuentes de datos Oracle, Microsoft SQL Server y Sybase, los tipos de datos numéricos no se pueden correlacionar con el tipo de datos BIGINT de DB2. Por omisión, el tipo de datos número(p,s) de Oracle, en que 10 <= p <= 18 y s = 0, se correlaciona con el tipo de datos DECIMAL de DB2. ------------------------------------------------------------------------ 42.15 Restricción para DataJoiner Las peticiones distribuidas emitidas dentro de un entorno federado están limitadas a las operaciones de sólo lectura. ------------------------------------------------------------------------ 42.16 Gestor de catálogos de información en hebreo para Windows NT El componente Gestor de catálogos de información está disponible en hebreo y se proporciona en el CD de DB2 Warehouse Manager para Windows NT. La traducción al hebreo se proporciona en un archivo zip llamado IL_ICM.ZIP y está ubicado en el directorio DB2\IL del CD de DB2 Warehouse Manager para Windows NT. Para instalar la traducción al hebreo del Gestor de catálogos de información, primero debe instalar la versión en inglés de DB2 Warehouse Manager para Windows NT y todos los requisitos previos en una versión de Windows NT que tenga habilitado el hebreo. Una vez que se haya instalado DB2 Warehouse Manager para Windows NT, desempaquete el archivo IL_ICM.ZIP desde el directorio DB2\IL en el mismo directorio en que se ha instalado DB2 Warehouse Manager para Windows NT. Asegúrese de que se proporcionen al programa unzip las opciones correctas para crear la estructura de directorios en el archivo zip. Una vez que se haya desempaquetado el archivo, la variable de entorno global LC_ALL se debe pasar de En_US a Iw_IL. Para cambiar este valor: 1. Abra el Panel de control de Windows NT y realice una doble pulsación en el icono Sistema. 2. En la ventana Propiedades del sistema, pulse sobre la pestaña Entorno, después localice la variable LC_ALL en el apartado Variables del sistema. 3. Pulse la variable para visualizar el valor en el recuadro de edición Valor. Cambie el valor de En_US por Iw_IL. 4. Pulse el botón Establecer. 5. Cierre la ventana Propiedades del sistema y el Panel de control. Ahora ya debe estar instalada la versión en hebreo del Gestor de catálogos de información. ------------------------------------------------------------------------ 42.17 Soporte de Microsoft SNA Server y SNA Multisite Update (Confirmación en dos fases) Las aplicaciones de sistema principal y AS/400 no pueden acceder a servidores DB2 UDB utilizando la confirmación en dos fases de SNA cuando el producto SNA que se está utilizando es Microsoft SNA Server. Cualquier publicación de DB2 UDB que indique que se soporta esta circunstancia es incorrecta. Se requiere IBM Communications Server para Windows NT Versión 5.02 o posteriores. Nota: Las aplicaciones que acceden a servidores de bases de datos de sistema principal y AS/400 utilizando DB2 UDB para Windows pueden utilizar la confirmación en dos fases de SNA usando el Paquete de servicio 3 de Microsoft SNA Server Versión 4 o posteriores. ------------------------------------------------------------------------ 42.18 El SPM de SNA de DB2 no se inicia después de rearrancar Windows Si está utilizando Microsoft SNA Server Versión 4 SP3 o posteriores, verifique que el SPM de SNA de DB2 se ha iniciado correctamente después de un rearranque. Vea si en el archivo \sqllib\\db2diag.log hay entradas parecidas a las siguientes: 2000-04-20-13.18.19.958000 Instance:DB2 Node:000 PID:291(db2syscs.exe) TID:316 Appid:none common_communication sqlccspmconnmgr_APPC_init Probe:19 SPM0453C Sync point manager did not start because Microsoft SNA Server has not been started. 2000-04-20-13.18.23.033000 Instance:DB2 Node:000 PID:291(db2syscs.exe) TID:302 Appid:none common_communication sqlccsna_start_listen Probe:14 DIA3001E "SNA SPM" protocol support was not successfully started. 2000-04-20-13.18.23.603000 Instance:DB2 Node:000 PID:291(db2syscs.exe) TID:316 Appid:none common_communication sqlccspmconnmgr_listener Probe:6 DIA3103E Error encountered in APPC protocol support. APPC verb "APPC(DISPLAY 1 BYTE)". Primary rc was "F004". Secondary rc was "00000000". Si existen entradas como éstas en db2diag.log y las indicaciones de la hora coinciden con la hora del rearranque más reciente, debe: 1. Invocar a db2stop. 2. Iniciar el servicio SnaServer (en caso de que aún no esté iniciado). 3. Invocar a db2start. Vuelva a comprobar el archivo db2diag.log para verificar que las entradas ya no están añadidas. ------------------------------------------------------------------------ 42.19 Valor de entorno nacional para DB2 Administration Server Asegúrese de que el entorno nacional de la instancia de DB2 Administration Server sea compatible con el entorno nacional de la instancia de DB2. De no ser así, la instancia de DB2 no puede comunicar con el DB2 Administration Server. Si la variable de entorno LANG no está establecida en el perfil de usuario del DB2 Administration Server, el DB2 Administration Server se iniciará con el entorno nacional por omisión del sistema. Si el entorno nacional por omisión del sistema no está definido, el DB2 Administration Server se iniciará con la página de códigos 819. Si la instancia de DB2 utiliza uno de los entornos nacionales DBCS, y si el DB2 Administration Server se inicia con la página de códigos 819, la instancia no podrá comunicar con el DB2 Administration Server. El entorno nacional del DB2 Administration Server y el entorno nacional de la instancia de DB2 deben ser compatibles. Por ejemplo, en un sistema Linux en chino simplificado, se debe establecer "LANG=zh_CN" en el perfil de usuario del DB2 Administration Server. ------------------------------------------------------------------------ 42.20 Los atajos no funcionan En algunos idiomas, para el Centro de control en sistemas basados en UNIX y en OS/2, algunos atajos del teclado no funcionan. Utilice el ratón para seleccionar opciones. ------------------------------------------------------------------------ 42.21 Requisitos de la cuenta de servicio para DB2 en Windows NT y Windows 2000 Durante la instalación de DB2 para Windows NT o Windows 2000, el programa de instalación crea varios servicios de Windows y asigna una cuenta de servicio para cada servicio. Para ejecutar DB2 correctamente, el programa de instalación otorga los siguientes derechos de usuario a la cuenta de servicio que está asociada con el servicio de DB2: * Actuar como parte del sistema operativo * Crear un objeto símbolo * Incrementar cuotas * Iniciar la sesión como un servicio * Sustituir un símbolo de nivel de proceso. Si desea utilizar una cuenta de servicio distinta para los servicios de DB2, deberá otorgar estos derechos de usuario a la cuenta de servicio. Además de estos derechos de usuario, la cuenta de servicio también debe tener acceso al directorio en el que esté instalado el producto DB2. La cuenta de servicio para el servicio DB2 Administration Server (servicio DB2DAS00) también debe tener la autorización para arrancar y detener otros servicios DB2 (es decir, la cuenta de servicio debe pertenecer al grupo de Usuarios de Power) y tener autorización SYSADM DB2 sobre todas las instancias de DB2 que administre. ------------------------------------------------------------------------ 42.22 Privilegio EXECUTE perdido para los usuarios de Query Patroller creados con la versión 6 Debido a algunos nuevos procedimientos almacenados (IWM.DQPGROUP, IWM.DQPVALUR, IWM.DQPCALCT e IWM.DQPINJOB) que se han añadido a Query Patroller versión 7, los usuarios existentes creados con Query Patroller versión 6 no conservan el privilegio EXECUTE en estos paquetes. Se ha añadido una aplicación para corregir automáticamente este problema al FixPak 1. Cuando intente utilizar DQP Query Admin para modificar la información de usuario de DQP, no intente eliminar usuarios existentes de la lista de usuarios. ------------------------------------------------------------------------ 42.23 Restricciones de Query Patroller Debido a las restricciones de la plataforma de JVM (Java Virtual Machine), Query Enabler no está soportado en HP-UX y NUMA-Q. Además, Query Patroller Tracker no está soportado en NUMA-Q. Si se necesitan todas las herramientas de cliente de Query Patroller, le recomendamos que utilice una plataforma diferente (por ejemplo Windows NT) para ejecutar estas herramientas frente al servidor de HP-UX o NUMA-Q. ------------------------------------------------------------------------ 42.24 Necesidad de confirmar todos los programas definidos por el usuario que se utilizarán en el Centro de depósito de datos (DWC) Si desea utilizar un procedimiento almacenado creado mediante DB2 Stored Procedure Builder como un programa definido por el usuario en el Centro de depósito de datos (DWC), debe insertar la sentencia siguiente en el procedimiento almacenado antes de la sentencia con.close();: con.commit(); Si no se inserta esta sentencia, las modificaciones que el procedimiento almacenado realice se retrotraerán cuando el procedimiento almacenado se ejecute desde el DWC. Para todos los programas definidos por el usuario en el DWC, es necesario confirmar explícitamente todas las funciones de DB2 incluidas para que las modificaciones entren en vigor en la base de datos; es decir, debe añadir las sentencias COMMIT a los programas definidos por el usuario. ------------------------------------------------------------------------ 42.25 Nueva opción para la exportación de la línea de mandatos del Centro de depósito de datos La exportación de la línea de mandatos para archivos de identificación tiene una opción nueva, /B. Esta opción no está disponible mediante la interfaz del Centro de depósito de datos. La nueva sintaxis para el mandato iwh2exp2 es: iwh2exp2 nombre_archivo.INP nombreBD IDusuario contraseña [PREFIX=esquema_tabla] [/S] [/R] [/B] donde - nombre_archivo.INP es el nombre completo de la vía de acceso del archivo INP - nombreBD es el nombre de la base de datos de control del Centro de depósito de datos - IDusuario es el ID de usuario que se utiliza para conectarse a la base de datos - contraseña es la contraseña utilizada para conectarse a la base de datos - los parámetros opcionales son: - PREFIX=esquema_tabla: el esquema de tabla para las tablas de control de la base de datos (el valor por omisión es IWH) - /S: programas de exportación con los pasos seleccionados - /R: no exportar fuentes de depósito con los pasos seleccionados - /B: no exportar pasos de colaboración con los pasos seleccionados Nota: Si se especifica /R o /B, las fuentes de depósito o los pasos de colaboración ya deben existir cuando se importa el archivo de identificación existente. Si no, se devuelve un error. ------------------------------------------------------------------------ 42.26 Las API de servicios de copia de seguridad (XBSA) Las API de servicios de copia de seguridad (XBSA) han sido definidas por Open Group en el Reino Unido como una interfaz de programación de aplicaciones abierta entre aplicaciones o recursos que necesitan la gestión de depósito de datos con la finalidad de copia de seguridad o archivado. Hallará más información en "Open Group Technical Standard System Management: Backup Services API (XBSA)", número de documento C425 (ISBN: 1-85912-056-3). Como ayuda para esto, se han creado dos nuevas variables de registro en DB2, que actualmente cuentan con el soporte de AIX, HP, Solaris y Windows NT: DB2_VENDOR_INI Indica un archivo que contiene todos los valores de un entorno específico para los proveedores. El valor se selecciona cuando se inicia el gestor de la base de datos. DB2_XBSA_LIBRARY Indica la biblioteca XBSA suministrada por los proveedores. En AIX, el valor debe incluir el objeto compartido si no tiene el nombre shr.o. HP, Solaris y Windows NT no requieren el nombre de objeto compartido. Por ejemplo, para utilizar Legato's NetWorker Business Suite Module para DB2, la variable de registro debe estar establecida del modo siguiente: db2set DB2_XBSA_LIBRARY="/usr/lib/libxdb2.a(bsashr10.o)" Es posible llamar a la interfaz XBSA mediante el mandato BACKUP DATABASE o el mandato RESTORE DATABASE. Por ejemplo: db2 backup db sample use XBSA db2 restore db sample use XBSA ------------------------------------------------------------------------ 42.27 Agente de OS/390 ¿Qué hay en este documento? Instalación de OS/390 y sus características En este documento, encontrará instrucciones sobre cómo instalar el agente de OS/390 y la información sobre sus características. Consulte "Visión general de la instalación" para obtener una visión rápida del proceso de instalación y "Detalles sobre la instalación" para obtener instrucciones detalladas. Consulte "Configuración de funciones de agente adicionales," "Transformadores," y "Acceso a bases de datos fuera de la familia DB2" si desea obtener información sobre las características del agente. Visión general El Centro de depósito de DB2 incluye un agente de OS/390. Puede utilizar el agente para comunicarse entre las bases de datos de DB2 Universal Database para OS/390 y otras bases de datos, incluyendo las bases de datos de DB2 de otras plataformas y las bases de datos no DB2. El agente puede comunicarse con las fuentes de datos soportadas que una conexión ODBC utiliza. El agente se ejecuta en OS/390 UNIX Systems Services. Requiere OS/390 V2R6 o posterior y es compatible con DB2 para OS/390 Versiones 5, 6 y 7. El agente de OS/390 da soporte a las tareas siguientes: * Copiar datos de una base de datos de DB2 fuente a una base de datos DB2 de destino. * Contenido de ejemplo de una tabla o archivo * Ejecutar programas definidos por el usuario * Acceder a bases de datos que no son DB2 utilizando IBM DataJoiner * Acceder a datos VSAM o IMS por medio de Cross Access Classic Connect * Ejecutar programas de utilidad de DB2 Universal Database para OS/390 * Ejecutar el trabajo de aplicación para IBM Data Propagator 42.27.1 Visión general de instalación Estos pasos resumen el proceso de instalación. La sección "Detalles sobre la instalación" proporciona más detalles sobre estos pasos. 1. Instalar el agente de OS/390 desde la cinta de DB2 Universal Database para OS/390. 2. Actualizar las variables de entorno en el archivo de perfiles. 3. Configurar las conexiones: o Entre el kernel y el daemon de agente. o Entre el agente y las bases de datos a las que accederá. 4. Vincular CLI localmente y a cualquier base de datos remota. 5. Configurar el archivo de inicialización de ODBC 6. Configurar autorizaciones para que el usuario: o Pueda ejecutar el daemon de agente. o Tenga autorización de ejecución sobre el plan de DSNAOCL I. o Tenga autorización de lectura y grabación para los directorios de anotación cronológica y de rastreo de ODBC, si es necesario. 7. Iniciar el daemon de agente. 42.27.2 Detalles sobre la instalación Instalación del agente de OS/390 El agente de OS/390 se incluye en la cinta de DB2 Universal Database para OS/390 Versión 7. Vea el directorio del programa que acompaña a la cinta para obtener más información sobre la instalación del agente de OS/390. Será necesario aplicar el apar PQ36585 o PQ36586 al subsistema DB2 antes de instalar el agente de OS/390. Actualización de las variables de entorno en el archivo de perfiles Las variables asocian el agente con varias bibliotecas de DB2, directorios de salida, etc. El ejemplo siguiente muestra el contenido de un archivo .profile de ejemplo. El archivo .profile define las variables de entorno y debe estar en el directorio inicial del usuario que inicia el daemon de agente: export VWS_LOGGING=/usr/lpp/DWC/logs export VWP_LOG=/usr/lpp/DWC/vwp.log export VWS_TEMPLATES=usr/lpp/DWC/ export DSNAOINI=/usr/lpp/DWC/dsnaoini export LIBPATH=usr/lpp/DWC/:$LIBPATH export PATH=/usr/lpp/DWC/:$PATH export STEPLIB=DSN710.SDSNEXIT:DSN710.SDSNLOAD Configuración de conexiones Para configurar la conexión del kernel y el daemon, añada las líneas siguientes al archivo /etc/services o TCPIP.ETC.SERVICES: vwkernal 11000/tcp vwd 11001/tcpvwlogger 11002/tcp Para configurar conexiones entre el agente de OS/390 y las bases de datos, añada todas las bases de datos remotas a la base de datos de comunicación del OS/390 (CDB). Aquí mostramos algunas inserciones de ejemplo de CDB: INSERT INTO SYSIBM.LOCATIONS (LOCATION, LINKNAME, PORT) VALUES ('NTDB','VWNT704','60002'); INSERT INTO SYSIBM.IPNAMES (LINKNAME, SECURITY_OUT, USERNAMES, IPADDR) VALUES ('VWNT704', 'P', 'O', 'VWNT704.STL.IBM.COM'); INSERT INTO SYSIBM.USERNAMES (TYPE, AUTHID, LINKNAME, NEWAUTHID, PASSWORD) VALUES ('O', 'MVSUID', 'VWNT704', 'NTUID', 'NTPW'); Para obtener más información sobre la configuración de conexiones y la actualización de la base de datos de comunicaciones, consulte el capítulo "Connecting Distributed Database Systems" del manual DB2 UDB for OS/390 Installation Guide, GC26-9008-00. Vinculación de CLI Como el agente OS/390 utiliza la CLI para comunicarse con DB2, debe vincular el plan de CLI a todas las bases de datos remotas a las que accederá el agente. He aquí algunas sentencias del paquete de vinculación de ejemplo para una base de datos DB2 para OS/390 local: BIND PACKAGE (DWC6CLI) MEMBER(DSNCLICS) ISO(CS) BIND PACKAGE (DWC6CLI) MEMBER(DSNCLINC) ISO(NC) BIND PACKAGE (DWC6CLI) MEMBER(DSNCLIRR) ISO(RR) BIND PACKAGE (DWC6CLI) MEMBER(DSNCLIRS) ISO(RS) BIND PACKAGE (DWC6CLI) MEMBER(DSNCLIUR) ISO(UR) BIND PACKAGE (DWC6CLI) MEMBER(DSNCLIMS) BIND PACKAGE (DWC6CLI) MEMBER(DSNCLIC1) BIND PACKAGE (DWC6CLI) MEMBER(DSNCLIC2) BIND PACKAGE (DWC6CLI) MEMBER(DSNCLIF4) He aquí algunas sentencias del paquete de vinculación de ejemplo para una base de datos DB2 que se ejecute en Windows NT: BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLICS) ISO(CS) BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLINC) ISO(NC) BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIRR) ISO(RR) BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIRS) ISO(RS) BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIUR) ISO(UR) BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIC1) BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIC2) BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIQR) BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIF4) BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIV1) BIND PACKAGE (NTDB.DWC6CLI) MEMBER(DSNCLIV2) He aquí una sentencia de vinculación de ejemplo para vincular paquetes de CLI en un plan: BIND PLAN(DWC6CLI) PKLIST(*.DWC6CLI.* ) Configuración del archivo de inicialización de ODBC Un archivo de inicialización de ODBC, inisamp, se incluye en el directorio usr/lpp/DWC/. Puede editar este archivo para trabajar con el sistema o bien puede crear su propio archivo. Para asegurarse de que el archivo funciona correctamente, compruebe que se ha configurado correctamente: * La variable de entorno de DSNAOINI debe apuntar al archivo de inicialización. * El nombre de archivo debe utilizar el convenio de denominación dsnaoini.location_name. * El archivo debe incluir los parámetros CONNECTTYPE=2 y MVSATTACHTYPE=CAF. Para obtener más información sobre la vinculación de CLI y el archivo DSNAOINI, consulte el manual DB2 UDB for OS/390 ODBC Guide and Reference, SC26-9005. Configuración de autorizaciones El agente de OS/390 es un proceso de daemon. Puede ejecutar el daemon de agente con la seguridad UNIX habitual o con la seguridad UNIX OS/390. Puesto que el agente necesita autorización de daemon, defina estos ejecutables del agente para el control de programa RACF: * libtls4d.dll * iwhcomnt.dll * vwd Para definir los programas ejecutables al control de programa RACF, vaya al directorio donde se encuentran almacenados los archivos ejecutables del Centro de depósito de datos y ejecute los mandatos siguientes: extattr +p libtls4d.dll extattr +p iwhcomnt.dll extattr +p vwd Para utilizar el mandato extattr con el parámetro +p, debe tener, como mínimo, acceso de lectura para la clase BPX.FILEATTR.PROGCTL FACILITY. El ejemplo siguiente muestra el mandato RACF utilizado para otorgar este permiso al ID de usuario SMORG: RDEFINE FACILITY BPX.FILEATTR.PROGCTL UACC(NONE) PERMIT BPX.FILEATTR.PROGCTL CLASS(FACILITY) ID(SMORG) ACCESS(READ) SETROPTS RACLIST(FACILITY) REFRESH Para obtener más información sobre autorizaciones, consulte el manual OS/390 UNIX System Services Planning, SC28-1890. Arranque del daemon de agente Cuando acabe de configurar el sistema, arranque el daemon del agente: 1. Conéctese con Telnet a UNIX Systems Services de OS/390 mediante el nombre de sistema principal OS/390 y el puerto USS. 2. Arranque el daemon de agente: o Para arrancar el daemon en primer plano, entre vwd en la línea de mandatos. o Para arrancarlo en el fondo, entre: vwd>/usr/lpp/DWC/logs/vwd.log 2>&1 & Para verificar que se esté ejecutando el daemon del agente de OS/390, entre el mandato siguiente en una línea de mandatos del shell de UNIX: ps -e | grep vwd O bien, entre D OMVS,a=all en la consola de OS/390 y busque la serie vwd: 42.27.3 Configuración de funciones de agente adicionales El paquete de DB2 Warehouse Manager incluye los siguientes programas definidos por el usuario: * vwpftp: Ejecuta un archivo de mandatos de FTP. * vwpmvs: Somete una corriente de trabajos de JCL. * vwprcpy: Copia un archivo utilizando FTP. * XTClient: Programa desencadenante de cliente. * etidlmvs: Programa de utilidad de ETI (Evolutionary Technologies International); suprime un archivo en MVS. * etircmvs: Programa de utilidad de ETI; ejecuta FTP en un sistema principal MVS. * etiexmvs: Programa de utilidad de ETI; ejecuta JCL en MVS. Además, puede crear procedimientos almacenados y programas definidos por el usuario en el Centro de depósito de datos. El agente de OS/390 da soporte a cualquier programa ejecutable que se ejecute bajo UNIX Systems Services. Un programa definido por el usuario se asigna a uno o más pasos. Cuando se ejecuta el programa definido por el usuario, se producen las acciones siguientes: * El agente arranca. * El agente ejecuta el programa definido por el usuario. * El programa definido por el usuario devuelve un código de retorno y un archivo de realimentación al agente. * El agente devuelve los resultados al kernel. Para ejecutar programas ETI en OS/390, debe aplicar en primer lugar el FixPack 2 a DB2 Universal Database Versión 7.1. Utilice la variable de entorno VWP_LOG para definir un directorio donde los programas definidos por el usuario pueden escribir salida. Si utiliza un programa definido por el usuario para someter un trabajo utilizando FTP, en primer lugar debe crear el JCL y los datos que desee someter. El nombre de trabajo del JCL debe ser USERIDx, donde x es un número o letra de 1 carácter (ejemplo: MYUSERA). La clase de salida para los archivos MSGCLASS y SYSOUT que se hallan en el JCL debe especificar una clase de salida retenida por JES. Restricción: El LRECL máximo para el trabajo sometido es de 254 caracteres. JES sólo explora los primeros 72 caracteres del JCL. Cambio de la plantilla del Centro de depósito de datos para el soporte de FTP El Centro de depósito de datos instala una plantilla JCL para transferir archivos utilizando FTP. Si se planifica que el agente de OS/390 utilice los mandatos de FTP GET o PUT para transferir archivos de un sistema principal OS/390 a otro sistema principal remoto, es necesario cambiar la información de cuenta de la plantilla de JCL para su sistema OS/390: 1. Inicie la sesión con un ID que tenga autorización para copiar y actualizar archivos en el directorio /usr/lpp/DWC. 2. Busque ftp.jcl y copia el archivo con el nuevo nombre de archivo nombresistema.ftp.jcl, donde nombresistema es el nombre del sistema OS/390. 3. Cree una copia de este archivo para cada sistema OS/390 en el que piense ejecutar los programas de conversión vwpmvs o ETI extract. Por ejemplo, si desea ejecutar cualquiera de estos programas en STLMVS1, cree una copia del archivo llamada STLMVS1.ftp.jcl. 4. Utilice un editor de texto para personalizar el JCL para satisfacer los requisitos de su sitio. Cambie la información de cuenta para que coincida con la información de cuenta estándar para su sistema MVS. No cambie ninguno de los parámetros que están entre corchetes, por ejemplo [USERID] y [FTPFILE]. (Los corchetes son los caracteres hexadecimales x'AD' y x'BD', respectivamente. Si su tipo de terminal TSO no está establecido en 3278A en SPF opción 0, puede que vea estos valores como caracteres especiales en vez de como corchetes. Esto no es un problema si no cambia x'AD' ni x'BD', ni ninguno de los datos que están entre los caracteres.) 5. Actualice la variable de entorno VWS_TEMPLATES para apuntar al directorio del archivo de plantilla copiado. El Centro de depósito de datos incluye esta plantilla de JCL de ejemplo: //[USERID]A JOB , 'PUT/GET', // CLASS=A, // USER=&SYSUID, // NOTIFY=&SYSUID, // TIME=(,30), // MSGCLASS=H //STEP1 EXEC PGM=FTP,PARM='( EXIT' //INPUT DD DSN=[FTPFILE],DISP=SHR //OUTPUT DD SYSOUT=* //SYSPRINT DD SYSOUT=* Contenido de ejemplo de una tabla o archivo Utilizando el agente de OS/390, puede visualizar el contenido de tablas de DB2 y archivos sin formato como, por ejemplo, los archivos de UNIX System Services y los archivos sin formato nativos de OS/390. También puede ver el contenido de archivos IMS o VSAM con Classic Connect utilizando el agente de OS/390. Para archivos sin formato, el agente busca los parámetros de las propiedades de la definición del archivo para determinar el formato de archivos. 42.27.4 Planificación de pasos de depósito con el programa desencadenante (XTClient) Utilice el programa activador para planificar pasos de depósito desde la plataforma OS/390. Usted o un planificador de trabajos de OS/390 puede someter un trabajo que active un paso en el Centro de depósito de datos. Si el paso resulta satisfactorio, el paso activador de JCL devuelve un código de retorno de 0. Para utilizar el programa desencadenante debe disponer del Java Development Kit (JDK) 1.1.8 o posterior instalado en OS/390 UNIX Systems Services. Para iniciar el desencadenante, arranque primero XTServer en la máquina en la que está ejecutándose el servidor de depósito. Este proceso se describe en el Capítulo 5 del manual Data Warehouse Center Administration Guide, en el tema "Starting a step from outside the Data Warehouse Center." Después de arrancar XTServer, arranque el XTClient en OS/390. El ejemplo siguiente muestra JCL de ejemplo para iniciar el activador. //DBA1A JOB 1,'XTCLIENT',CLASS=A,MSGCLASS=H, // MSGLEVEL=(1,1),REGION=4M,NOTIFY=&SYSUID //****************************************************** //* submit iwhetrig //****************************************************** //BRADS EXEC PGM=BPXBATCH, // PARM=('sh cd /usr/lpp/DWC/; java XTClient 9.317.171.133 1100x // 9 drummond pw bvmvs2nt 1 1 100') //STDOUT DD PATH='/tmp/xtclient.stdout', // PATHOPTS=(OWRONLY,OCREAT), // PATHMODE=SIRWXU //STDERR DD PATH='/tmp/xtclient.stderr', // PATHOPTS=(OWRONLY,OCREAT), // PATHMODE=SIRWXU // Nota: el código JCL de ejemplo anterior muestra el modo de continuar los parámetros en una línea nueva. Para hacerlo, escriba los parámetros hasta la columna 71, coloque una 'X' en la columna 72 y prosiga en la columna 16 de la línea siguiente. La primera parte del parámetro es una sentencia (cd /usr/lpp/DWC/;) que va al directorio en el que está instalado el agente de OS/390. La segunda parte del parámetro arranca XTClient y pasa los siguientes 8 parámetros: * El nombre de sistema principal del servidor del Centro de depósito de datos o la dirección IP * El puerto del servidor del Centro de depósito de datos (normalmente, 11009) * El ID de usuario del Centro de depósito de datos * La contraseña del Centro de depósito de datos * El nombre del paso a ejecutar * El mandato del servidor del Centro de depósito de datos, donde: o 1 = llenar el paso o 2 = promocionar el paso a la modalidad de prueba o 3 = promocionar el paso a la modalidad de producción o 4 = degradar el paso a la modalidad de prueba o 5 = degradar el paso a la modalidad de desarrollo * La opción de si esperar o no a la finalización del paso, donde 1= yes y 0 = no * El número máximo de filas (utilice 0 o un espacio en blanco para captar todas las filas) 42.27.5 Transformadores Introducción Estos 12 transformadores son procedimientos almacenados de Java que proporcionan algunas transformaciones de datos básicas. Para ejecutar estos transformadores, primero debe configurar procedimientos almacenados de Java en el subsistema DB2. Hay información adicional disponible sobre estos transformadores en la publicación IBM DB2 Universal Database Data Warehouse Center Administration Guide Version 7, SC26-9993-00. IWH.CLEAN IWH.PERIODTABLE IWH.KEYTABLE IWH.CHISQUARE IWH.CORRELATION IWH.STATISTICS IWH.INVERTDATA IWH.PIVOTDATA IWH.REGRESSION IWH.ANOVA IWH.SUBTOTAL IWH.MOVINGAVERAGE Configuración de procedimientos almacenados de Java Estas instrucciones son una versión breve de las instrucciones completas sobre cómo configurar procedimientos almacenados de Java, que se pueden encontrar en la publicación Application Programming Guide and Reference for Java(TM), SC26-9018 1. Aplicar los PTF UQ46170 y UQ46114 al subsistema DB2. 2. Instalar Visual Age para Java 2.0 o posterior en el sistema OS/390. 3. Instalar JDBC en DB2 y vincular los paquetes JDBC del subsistema DB2. 4. Configurar los procedimientos almacenados RRS y DB2 WLM para el subsistema DB2. 5. Configurar los procedimientos almacenados Java para DB2. Esto incluye la creación de un procedimiento de arranque de WLM de Java para el espacio de direcciones de los procedimientos almacenados de Java. 6. Bajo WLM, debe asociar el procedimiento de arranque de WLM de Java con un nombre de entorno de WLM. Utilice el panel de entorno de aplicación de WLM titulado "Creación de un entorno de aplicación" para asociar el nombre de entorno con el procedimiento JCL. 7. Especifique el nombre del entorno de aplicación de WLM para la opción WLM_ENVIRONMENT en CREATE o ALTER PROCEDURE para asociar un procedimiento almacenado o función definida por el usuario con un entorno de aplicación. 8. Asegúrese de que el propietario de las tareas iniciadas de DB2 tenga acceso a las bibliotecas del procedimiento de arranque de WLM de Java. Pasos para configurar transformadores de depósito Estas instrucciones son una breve de las instrucciones completas, que se pueden encontrar en el manual IBM DB2 Universal Database Data Warehouse Center Administration Guide Version 7, SC26-9993-00 1. Aplique el Fixpack 3 a DB2 Universal Database para NT versión 7 o actualice la base de datos de control del depósito en TRANSREGISTERED = 1 y TRANSFENCED=1. Para actualizar la base de datos de control del depósito, entre el SQL siguiente en un procesador de línea de mandatos de DB2 Universal Database: CONNECT TO su_basedatos_control_depósito UPDATE IWH.INFORESOURCE SET TRANSREGISTERED = '1' WHERE SUBDBTYPE = 'DB2 MVS' UPDATE IWH.INFORESOURCE SET TRANSFENCED = '1' WHERE SUBDBTYPE = 'DB2 MVS' 2. Defina los transformadores en DB2 o Si tiene DB2 para OS/390 Versión 7, utilice las sentencias de SQL en /usr/lpp/DWC/createXfSQLV7. o Si tiene DB2 para OS/390 Versión 6, utilice las sentencias de SQL en /usr/lpp/DWC/createXfSQL. o Si tiene DB2 para OS/390 Versión 5, utilice las sentencias de SQL comentadas en /usr/lpp/DWC/createXfSQL. Comente todas las sentencias CREATE PROCEDURE. Luego elimine los comentarios de éstas y utilice las sentencias INSERT INTO SYSIBM.SYSPROCEDURES para definir los transformadores en DB2 para OS/390 Versión 5. Cuando se configuran procedimientos almacenados de Java, se utiliza WLM para asociar el procedimiento de arranque WLM de Java a un nombre de entorno WLM. El nombre de entorno se especifica en la opción WLM ENVIRONMENT de la sentencia CREATE PROCEDURE. DSNWLMJ es el nombre de entorno WLM que se incluye con las definiciones de transformador que se describen anteriormente. Se puede añadir un nombre de asociación WLM de DSNWLMJ o cambiar la opción WLM ENVIRONMENT para cada definición de transformador por un nombre que ya se ha asociado con el procedimiento de arranque. 3. Configure enlaces de UNIX Systems Services a los módulos de carga de transformador de IWH710.SIWHLOAD. o Conéctese con Telnet a UNIX Systems Services en el sistema principal OS/390. o Vaya al directorio donde ha instalado el agente de OS/390. El directorio de instalación por omisión es /usr/lpp/DWC. o Si está utilizando DB2 V7, vaya al paso 4. Si está utilizando DB2 V5 o V6, edite el conjunto de datos trlinks del directorio instalado. Comente esta línea poniendo un signo de almohadilla (#) en la columna 1: ln -e IWHXFV7 xf.jll; Elimine el comentario de esta línea eliminando el signo de almohadilla (#) en la columna 1. #ln -e IWHXF xf.jll; Guarde los cambios. o Escriba trlinks y pulse Intro. Esto creará un enlace xf.jll en el directorio que dirigirá el agente a la carga de los módulos IWHXF o IWHXFV7. 4. Autorice IWH710.SIWHPDSE para APF y luego añádalo a la concatenación STEPLIB del procedimiento de arranque de procedimientos almacenados de Java de DB2. 5. Añada el directorio donde se encuentra el enlace xf.jll (valor por omisión: /usr/lpp/DWC) a las variables de entorno CLASSPATH y LIBPATH del conjunto de datos de entorno WLM. o Si no está seguro de dónde está ubicado el conjunto de datos de entorno WLM, busque en el procedimiento de arranque de procedimientos almacenados de Java de DB2. El conjunto de datos de entorno WLM es aquél hacia el que señala la tarjeta JAVAENV DD. 6. Inicie los procedimientos almacenados y luego cree y ejecute los pasos de depósito. Restricciones para procedimientos almacenados de Java Los objetos de Java en la signatura de un procedimiento alamcenado sólo tienen soporte en DB2 para OS/390 Versión 7. Por este motivo, los transformadores no dan soporte a valores nulos en sus parámetros en DB2 para OS/390 versiones 5 ó 6. En estas versiones, si se pasa un parámetro nulo, éste se comportará como un cero. Los transformadores de las versiones 5 y 6 tratan los parámetros cero como series nulas. DB2 da soporte a la sentencia COMMIT SQL de procedimientos almacenados sólo en DB2 para OS/390 Versión 7. El procedimiento almacenado INVERTDATA descarta y vuelve a crear una tabla dentro del procedimiento almacenado; por lo que requiere una sentencia de confirmación. Por este motivo, IWH.INVERTDATA no tiene soporte en DB2 para OS/390 Versión 5 o Versión 6. DB2 para OS/390 no da soporte a funciones de Java definidas por el usuario, por lo que IWH.FORMATDATE no está soportado en la plataforma 390. Procedimiento de arranque de ejemplo para procedimientos almacenados de Java (descrito en "DB2 for OS/390 Application Programming Guide and Reference for Java"): //DSNWLMJ PROC DB2SSN=DSN,NUMTCB=5,APPLENV=DSNWLMJ <-- Valor WLM ENVIRONMENT de CREATE PROC //******************************************************************* //* THIS PROC IS USED TO START THE WLM-ESTABLISHED SPAS * //* ADDRESS SPACE FOR THE DSNWLMJ APPLICATION ENVIRONMENT * //* V WLM,APPLENV=DSNWLMJ,RESUME * //******************************************************************* //DSNWLMJ EXEC PGM=DSNX9WLM,TIME=1440,REGION=0M, // PARM='&DB2SSN, &NUMTCB, &APPLENV' //STEPLIB DD DSN=DSN.TESTLIB,DISP=SHR // DD DSN=IWH710.SIWHPDSE,DISP=SHR <-- Tiene los transformadores en él mismo // DD DSN=DSN.HPJSP.PDSE.JDBC,DISP=SHR <-- DLL HPJ de configuración HPJ // DD DSN=SYS1.PP.PDSELINK,DISP=SHR <-- bibliotecas ejecución HPJ // DD DSN=DSN710.SDSNEXIT,DISP=SHR // DD DSN=DSN710.SDSNLOAD,DISP=SHR // DD DSN=SYS1.SCEERUN,DISP=SHR // DD DSN=DSN.PDSE,DISP=SHR <-- Información configuración HPJ //JAVAENV DD DSN=DSN.WLMENVJ.JSPENV,DISP=SHR <-- Variables de entorno, ver a continuación //CEEDUMP DD SYSOUT=A //DSSPRINT DD SYSOUT=A //JSPDEBUG DD SYSOUT=A //SYSABEND DD SYSOUT=A //SYSPRINT DD SYSOUT=A Conjunto de datos de variable de entorno de ejemplo (descrito en "DB2 for OS/390 Application Programming Guide and Reference for Java"): ENVAR("TZ=PST07", "DB2SQLJPROPERTIES=/usr/lpp/db2/jdbc/db2710/classes/db2sqljjdbc.properties", "LIBPATH=/usr/lpp/DWC", "VWSPATH=/usr/lpp/DWC", "CLASSPATH=/usr/lpp/db2/jdbc/db2710/classes:/usr/lpp/DWC:/usr/lpp/hpj/lib"), MSGFILE(JSPDEBUG) Soporte a idiomas para los transformadores La mayoría de mensajes producidos por el agente de OS/390 se envían a la plataforma NT para ser interpretados, por lo que en la mayoría de casos el idioma del mensaje depende del modo en que se ha instalado UDB para NT. Los transformadores son una excepción. El agente de OS/390 emite los siguientes archivos de mensajes para los transformadores: Nombre archivo: Para el idioma: Xf.properties_Fi_FI Finlandés de Finlandia Xf.properties_No_NO Noruego de Noruega Xf.properties_Ru_RU Ruso de Rusia Xf.properties_Zh_CN Chino de China (República Popular de la China) Xf.properties_Zh_TW Chino de Taiwan Xf.properties_Da_DK Danés de Dinamarca Xf.properties_De_DE Alemán de Alemania Xf.properties_En_US Inglés de Estados Unidos Xf.properties_Es_ES Español de España Xf.properties_Fr_FR Francés de Francia Xf.properties_It_IT Italiano de Italia Xf.properties_Ja_JP Japonés de Japón Xf.properties_Ko_KR Coreano de Corea Xf.properties_Pt_BR Portugués de Brasil Xf.properties_Sv_SE Sueco de Suecia Si los mensajes de transformador deben estar en un idioma que no es el inglés, seleccione uno de los archivos anteriores y copie su contenido en el archivo Xf.properties. 42.27.6 Acceso a bases de datos fuera de la familia DB2 Para acceder a sistemas que no son de DB2 Universal Database, el agente de OS/390 utiliza DataJoiner. DataJoiner permite al agente utilizar un flujo DRDA normal hacia el mismo como si fuera una base de datos UDB. Si se dirige una petición ODBC hacia una fuente que no es DB2, DataJoiner llama a una capa de códigos adicional que le permite acceder a bases de datos externas. DataJoiner puede acceder a bases de datos Oracle, Sybase, Informix, Microsoft SQL Server, Teradata y a cualquier otra que tenga un controlador ODBC que se ejecute en Windows NT, AIX o Sun Solaris Operating Environment. El agente de OS/390 puede acceder a DataJoiner como fuente pero no como destino. DataJoiner no da soporte a la confirmación de dos fases. Aunque DataJoiner da soporte a TCP/IP como solicitante de aplicaciones en las Versiones 2.1 y 2.1.1, no tiene un servidor de aplicaciones. Puesto que el agente de OS/390 necesita un servidor de aplicaciones para utilizar TCP/IP, será necesario utilizar una conexión SNA en vez de acceder a DataJoiner desde OS/390. Acceso a IMS y VSAM en OS/390 Classic Connect debe adquirirse e instalarse independientemente del agente de depósito. El agente de OS/390 puede acceder a IMS y VSAM mediante el controlador ODBC de Classic Connect. Con Classic Connect, se puede configurar una definición similar a una definición de DB2 de conjuntos de datos IMS y VSAM, y luego acceder a los mismos utilizando ODBC. El agente de OS/390 carga el controlador de ODBC correcto en función de si la petición se dirige a Classic Connect o a DB2. Si accede a una fuente de DB2, el agente carga el controlador ODBC de DB2. Si accede a una fuente de VSAM o IMS, el agente carga el controlador ODBC de Classic Connect. A continuación se procesa la petición del agente. Configuración del acceso al depósito y del controlador ODBC de Classic Connect Classic Connect debe adquirirse e instalarse independientemente del agente de OS/390. Classic Connect puede visualizar un único archivo o una parte de un archivo como una o más tablas relacionales. Es necesario correlacionar los datos IMS y VSAM para que Classic Connect pueda acceder a ellos. Se pueden correlacionar los datos manualmente o utilizar el correlacionador de datos no relacionales de Microsoft Windows Classic Connect. 1. Instale el servidor de datos de Classic Connect en OS/390. 2. Opcional: Instale el producto correlacionador de datos de Classic Connect en NT. 3. Defina las definiciones de tabla lógica de Classic Connect de modo que Classic Connect pueda acceder a los datos de forma relacional. Puede utilizar el correlacionador de datos para crear las definiciones para estructuras IMS y VSAM, o cree las definiciones manualmente. 4. Después de configurar Classic Connect, puede configurar el acceso al depósito: a. Cree un archivo Classic Connect .ini. Un archivo de configuración de aplicación de Classic Connect de ejemplo cxa.ini está en el directorio /usr/lpp/DWC/ y se encuentra reproducido a continuación: * idioma nacional para los mensajes NL = Inglés americano * archivo maestro de recursos NL CAT = usr/lpp/DWC/v4r1m00/msg/engcat FETCH BUFFER SIZE = 32000 DEFLOC = CXASAMP USERID = uid USERPASSWORD = pwd DATASOURCE = DJX4DWC tcp/9.112.46.200/1035 MESSAGE POOL SIZE = 1000000 b. Actualice la línea DATASOURCE del archivo .ini. Esta línea contiene un nombre de fuente de datos y una dirección de protocolo. El nombre de la fuente de datos debe corresponder con un nombre de Query Processor definido en el servidor de datos de Classic Connect, que se halla en la entrada QUERY PROCESSOR SERVICE INFO del archivo de configuración del servidor de datos. La dirección del protocolo puede hallarse en el mismo archivo en la entrada TCP/IP SERVICE INFO. Al definir una fuente de datos de depósito, se utilizan USERID y USERPASSWORD de este archivo. c. Exporte la variable de entorno CXA_CONFIG a los archivos de programa de Classic Connect, que normalmente se encuentran en el mismo directorio que el archivo .ini. d. Actualice la variable de entorno LIBPATH para que incluya la vía de acceso a los archivos de programa de Classic Connect, que normalmente están en el mismo directorio que su archivo .ini. e. Opcional: Verifique la instalación con el programa de prueba cxasamp: Entre cxasamp desde el directorio que contiene el archivo .ini. location/uid/pwd es el name/userid/userpassword de la fuente de datos definido en el archivo .ini. f. Defina una fuente de datos en el depósito igual que definiría cualquier fuente de datos de DB2. No necesita actualizar el archivo dsnaoini, porque DB2 para OS/390 no tiene un gestor de controladores. El gestor de controladores para Classic Connect se crea en el agente de OS/390. 42.27.7 Ejecución de programas de utilidad de DB2 para OS/390 Es necesario aplicar el apar PQ44904 al agente OS/390 para utilizar el agente para ejecutar los programas de utilidad. >DSNUTILS es un procedimiento almacenado de DB2 para OS/390 que se ejecuta en un entorno WLM y RRS. Puede utilizarlo para ejecutar cualquier programa de utilidad instalado de DB2 utilizando la interfaz para procedimientos almacenados definida por el usuario. Los programas de utiildad de DB2 para OS/390 LOAD, REORG y RUNSTATS tienen hojas de propiedades que se pueden utilizar para cambiar el modo en que se ejecuta el programa de utilidad. Para cambiar las propiedades de los programas de utilidad, efectúe una pulsación con el botón derecho del ratón en el programa de utilidad desde la ventana del Modelador de procesos y pulse Propiedades. Warehouse Manager proporciona también una interfaz para DSNUTILS que permite incluir programas de utilidad de DB2 en los pasos de Warehouse Manager. Para configurar el procedimiento almacenado de DSNUTILS: 1. Ejecute el trabajo DSNTIJSG cuando instale DB2 para establecer y vincular el procedimiento almacenado de DSNUTILS. Asegúrese de que la definición de DSNUTILS tenga PARAMETER STYLE GENERAL. 2. Habilite los procedimientos almacenados gestionados por WLM. 3. Configure los entornos RRS y WLM. 4. Ejecute los programas de ejemplo de ejecución por lotes DSNUTILS que DB2 proporciona. (Este paso se recomienda pero no es obligatorio.) 5. Vincule el plan de DSNUTILS con el plan de DSNCLI de forma que la CLI pueda llamar al procedimiento almacenado: BIND PLAN(DSNAOCLI) PKLIST(*.DSNAOCLI.*, *.DSNUTILS.*) 6. Configure un paso utilizando el Warehouse Manager y ejecútelo. El tipo de llenado debería ser APPEND. En caso contrario, Warehouse Manager suprime todo lo que se encuentra en la tabla antes de ejecutar el programa de utilidad. Copia de datos entre tablas de DB2 para OS/390 utilizando el programa de utilidad LOAD Supongamos que desea copiar una tabla descargándola en un archivo sin formato y luego cargando el archivo sin formato en otra tabla. Para hacerlo, normalmente es necesario descargar los datos, editar las sentencias de control de carga que produce la descarga y luego cargar los datos. Utilizando el depósito, puede especificar que desea volver a cargar en otra tabla sin tener que detenerse entre los pasos y editar manualmente las sentencias de control. Esto se lleva a cabo del modo siguiente: Utilice la interfaz Reorg/Generic para crear un paso que descargue un archivo utilizando el programa de utilidad UNLOAD o el programa de utilidad REORG TABLESPACE. Ambos programas de utilidad producen dos conjuntos de datos de salida, uno con los datos de tabla y uno con la sentencia de control del programa de utilidad que puede ser entrada para LOAD. En la sentencia de control que el programa de utilidad genera, el nombre de tabla INTO TABLE es el nombre de la tabla descargada. Aquí hay un ejemplo de los parámetros de DSNUTILS que puede utilizar para el paso de descarga de Reorg: Tabla 33. Propiedades del paso de descarga de Reorg UTILITY_ID REORGULX RESTART NO UTSTMT REORG TABLESPACE DBVW.USAINENT UNLOAD EXTERNAL UTILITY_NAME REORG TABLESPACE RECDSN DBVW.DSNURELD.RECDSN RECDEVT SYSDA RECSPACE 50 PNCHDSN DBVW.DSNURELD.PNCHDSN PNCHDEVT SYSDA PNCHSPACE 3 Utilice la interfaz de Reorg/Generic DSNUTILS para crear un paso de carga. Normalmente, el parámetro de sentencia del programa de utilidad DSNUTILS especifica una sentencia de control del programa de utilidad. La interfaz del programa de utilidad del depósito también permite un nombre de archivo en el campo de sentencia del programa de utilidad. Se puede especificar el archivo que contiene la sentencia de control válida utilizando la palabra clave :FILE: y el nombre de la tabla que desea cargar utilizando la palabra clave :TABLE:. Para utilizar el programa de utilidad LOAD para trabajar con la salida del ejemplo anterior, aplique los valores de parámetro siguientes en las propiedades LOAD: Nota: En el campo UTSTMT, escriba una sentencia de carga o el nombre del archivo que ha sido la salida del programa de utilidad REORG con la opción UNLOAD EXTERNAL. Tabla 34. Propiedades del paso LOAD UTILITY_ID LOADREORG RESTART NO UTSTMT :FILE:DBVW.DSNURELD.PNCHDSN:TABLE:[DBVW] .INVENTORY UTILITY_NAME LOAD RECDSN DBVW.DSNURELD.RECDSN RECDEVT SYSDA Esto funcionará para cualquier tabla fuente y destino de DB2 para OS/390 en el mismo subsistema de DB2 u otro distinto. El archivo sin formato de la sentencia de control puede ser un archivo de MVS nativo o HFS. Para obtener información más detallada sobre los programas de utilidad de DB2 y DSNUTILS disponibles para OS/390, consulte la publicación DB2 for OS/390 Utility Guide and Reference. 42.27.8 Duplicación Puede utilizar el agente de OS/390 para automatizar los pasos de aplicación de la duplicación del Data Propagator. La duplicación requiere una base de datos fuente, una base de datos de control y una base de datos de destino. Pueden ser las mismas bases de datos o bases de datos diferentes. Un trabajo de captura lee las anotaciones cronológicas de DB2 para determinar qué filas de la base de datos fuente se han añadido, actualizado o cambiado. Luego el trabajo graba los cambios en una tabla de cambios de datos. Entonces se ejecuta un trabajo de aplicación para aplicar las modificaciones a una base de datos de destino. El paquete de DB2 Warehouse Manager puede automatizar el trabajo de aplicación creando un paso de duplicación. Utilice Warehouse Manager para definir el tipo de trabajo de aplicación a ejecutar y el momento de ejecutarlo. Es necesario exportar la biblioteca SASNLINK a la variable de entorno steplib. Adición del soporte de duplicación a la plantilla del Centro de depósito de datos El Centro de depósito de datos incluye una plantilla JCL para el soporte de duplicación. Si piensa utilizar el agente de OS/390 para ejecutar el programa de aplicación, ha de cambiar la información de cuenta y de conjunto de datos de esta plantilla para el sistema OS/390. Para cambiar la plantilla: 1. Inicie la sesión con un ID que tenga autorización para copiar y actualizar archivos en el directorio /usr/lpp/DWC/. 2. Busque apply.jcl y copie este archivo como nombre_sistema.apply.jcl, donde nombre_sistema es el nombre del sistema MVS. Por ejemplo, en STLMVS1, cree una copia del archivo llamada STLMVS1.apply.jcl. 3. Utilice un editor de texto para personalizar el JCL para satisfacer los requisitos de su sitio. Cambie la información de cuenta para que coincida con la información de cuenta estándar y cambie el conjunto de datos para STEPLIB DD y MSGS DD para su sistema MVS. 4. Si es necesario, cambie el nombre de programa en la tarjeta EXEC. Para obtener detalles sobre el cambio de los nombres de programas, consulte el manual DB2 Replication Guide and Reference. No cambie ninguno de los parámetros que están entre corchetes, por ejemplo [USERID] y [APPLY_PARMS]. (Los corchetes son los caracteres hexadecimales x'AD' y x'BD', respectivamente. Si su tipo de terminal TSO no está establecido en 3278A en SPF opción 0, puede que vea estos valores como caracteres especiales en vez de como corchetes. Esto no es un problema si no cambia x'AD' ni x'BD', ni ninguno de los datos que están entre los caracteres.) 5. Actualice la variable de entorno VWS_TEMPLATES para apuntar al directorio del archivo de plantilla copiado. El ejemplo siguiente muestra la plantilla de JCL que se incluye con el Centro de depósito de datos: Aplicar plantilla de JCL: //[USERID]A JOB ,MSGCLASS=H,MSGLEVEL=(1,1), // REGION=2M,TIME=1440,NOTIFY=&SYSUID //* DON'T CHANGE THE FIRST LINE OF THIS TEMPLATE. //* THE REMAINING JCL SHOULD BE MODIFIED FOR YOUR SITE. //********************************************** //* RUN APPLY/MVS ON OS/390 DB2 6.1 * //********************************************** //ASNARUN EXEC PGM=ASNAPV66,REGION=10M, // [APPLY_PARMS] //STEPLIB DD DISP=SHR,DSN=DPROPR.V6R1M0.SASNLINK // DD DISP=SHR,DSN=DSN610.SDSNLOAD //MSGS DD DSN=DPROPR.V2R1M0A.MSGS,DISP=SHR //ASNASPL DD DSN=&&ASNASPL,DISP=(NEW,DELETE,DELETE), // UNIT=SYSDA,SPACE=(CYL,(10,1)), // DCB=(RECFM=VB,BLKSIZE=6404) //SYSTERM DD SYSOUT=* //SYSTSPRT DD SYSOUT=* //SYSPRINT DD SYSOUT=* // 42.27.9 Anotación cronológica del agente Muchos componentes de DB2 Warehouse Manager, como el servidor, el anotador cronológico, agentes y algunos programas del Centro de depósito de datos graban anotaciones cronológicas en el directorio de anotación cronológica, lo que se especifica en la variable de entorno VWS_LOGGING. Estos archivos de anotación cronológica son texto sin formato. Se puede iniciar la anotación cronológica del agente desde el Centro de depósito de datos. Desde el panel izquierdo, efectúe una pulsación con el botón derecho del ratón en Depósito y pulse Propiedades. En la pestaña Nivel de rastreo, cambie los valores por el nivel de rastreo que desea. El rastreo de agentes da soporte a los niveles 0-4: * Nivel 1 - rastreo de entradas/salidas * Nivel 2 - nivel 1 más rastreo de depuraciones * Nivel 3 - nivel 2 más rastreo de datos * Nivel 4 - rastreo del almacenamiento intermedio interno Cuando el rastreo se define en un nivel superior al nivel 1, el rendimiento será más lento. Active el rastreo sólo con la finalidad de realizar depuraciones. La información de rastreo se almacena en el archivo AGNTxxx.LOG. La información de entorno se almacena en el archivo AGNTxxx.SET. ------------------------------------------------------------------------ 42.28 Colocación en antememoria en el cliente en Windows NT Si un usuario intenta acceder a un archivo READ PERM DB que resida en una máquina servidor de Windows NT en la que está instalado DB2 Datalinks utilizando una unidad compartida que utiliza una señal válida, el archivo se abre tal y como se esperaba. Sin embargo, después de eso, las peticiones de apertura posteriores que utilizan la misma señal no llegan en realidad al servidor, sino que se da servicio a las mismas desde la antememoria del cliente. Incluso después de haber caducado la señal, el contenido del archivo sigue siendo visible para el usuario, puesto que la entrada sigue estando en la antememoria. Sin embargo, este problema no se produce en el caso de que el archivo resida en una estación de trabajo Windows NT. Una solución sería definir la entrada de registro \\HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Services\Lanmanserver\Parameters\EnableOpLocks en cero en el servidor de Windows NT. Con esta definición de registro, cada vez que se acceda a un archivo que reside en el servidor desde una estación de trabajo cliente por medio de una unidad compartida, la petición siempre llegará al servidor, en vez de recibir servicio desde la antememoria del cliente. Por tanto, la señal vuelve a validarse para todas las peticiones. El impacto negativo de esta solución es que afecta al rendimiento general para todos los accesos a archivos desde el servidor a través de unidades compartidas. Incluso con este valor, si se accede al archivo por medio de una correlación de unidad compartida en el propio servidor, a diferencia de lo que ocurre desde una máquina cliente diferente, parece que sigue dándose servicio a la petición desde la antememoria. Por tanto, la caducidad de la señal no tiene lugar. Nota: En todos los casos, si el acceso a archivo es un acceso local y no a través de una unidad compartida, la validación de señal y la posterior caducidad de señal se producirán tal y como se espera. ------------------------------------------------------------------------ 42.29 Productos de prueba en los CD-ROM de UNIX Enterprise Edition Los CD-ROM de DB2 Universal Database (UDB) Enterprise Edition (EE) para plataformas UNIX Versión 6 y Versión 7 contienen una versión de prueba de 90 días de DB2 Connect Enterprise Edition (CEE). Puesto que la funcionalidad de DB2 Connect se crea sobre el producto DB2 UDB EE, no tiene que instalar el producto DB2 CEE en sistemas donde DB2 UDB EE está instalado para utilizar la funcionalidad de DB2 Connect. Si instala la versión de prueba de 90 días de DB2 CEE y decide actualizar a una versión con licencia, debe adquirir el producto DB2 CEE e instalar la clave de licencia de DB2 CEE. No tiene que volver a instalar el producto. Las instrucciones para instalar la clave de licencia se proporcionan en el libro DB2 EE o DB2 CEE para UNIX Guía rápida de iniciación. Si ha instalado el producto CEE de prueba conjuntamente con la instalación de EE y no desea instalar CEE permanentemente, puede eliminar la versión de prueba de 90 días de CEE siguiendo estas instrucciones. Si elimina la versión de prueba de Connect EE, todavía tendrá la funcionalidad de DB2 Connect disponible con DB2 EE. Para eliminar DB2 Connect Versión 7, desinstale los conjuntos de archivos siguientes desde las plataformas respectivas: * En AIX, desinstale el catálogo de archivos db2_07_01.clic. * En NUMA-Q y Solaris Operating Environments, desinstale el paquete db2clic71. * En Linux, desinstale el RPM db2clic71-7.1.0-x. * En HP-UX, desinstale el catálogo de archivos DB2V7CONN.clic. Para eliminar DB2 Connect Versión 6, desinstale los conjuntos de archivos siguientes desde las plataformas respectivas: * En AIX, desinstale el catálogo de archivos db2_06_01.clic. * En NUMA-Q y Solaris Operating Environments, desinstale el paquete db2cplic61. * En Linux, desinstale el RPM db2cplic61-6.1.0-x. * En HP-UX, desinstale el catálogo de archivos DB2V6CONN.clic. ------------------------------------------------------------------------ 42.30 Productos de prueba en los CD-ROM de UNIX de DB2 Connect Enterprise Edition Los CD-ROM de DB2 Connect Enterprise Edition (EE) para plataformas UNIX Versión 6 y Versión 7 contienen una versión de prueba de 90 días de DB2 Universal Database (UDB) Enterprise Edition (EE). La versión de prueba de 90 días de DB2 UDB EE se proporciona para su evaluación, pero no es necesaria para que funcione DB2 Connect. Si instala la versión de prueba de 90 días de DB2 UDB EE y decide actualizar a una versión con licencia, debe adquirir el producto DB2 UDB EE e instalar la clave de licencia de DB2 UDB EE. No tiene que volver a instalar el producto. Las instrucciones para instalar la clave de licencia se proporcionan en el libro DB2 EE o DB2 CEE para UNIX Guía rápida de iniciación. Si ha instalado el producto UDB EE de prueba conjuntamente con la instalación de Connect EE y no desea instalar UDB EE permanentemente, puede eliminar la versión de prueba de 90 días de EE siguiendo estas instrucciones. Si elimina la versión de prueba de DB2 UDB EE, no afectará a la funcionalidad de DB2 Connect EE. Para eliminar DB2 UDB EE Versión 7, desinstale los siguientes conjuntos de archivos desde las plataformas respectivas: * En AIX, desinstale el catálogo de archivos db2_07_01.elic. * En NUMA-Q y Solaris Operating Environments, desinstale el paquete db2elic71. * En Linux, desinstale el RPM db2elic71-7.1.0-x. * En HP-UX, desinstale el catálogo de archivos DB2V7ENTP.elic. Para eliminar DB2 UDB EE Versión 6, desinstale los siguientes conjuntos de archivos desde las plataformas respectivas: * En AIX, desinstale el catálogo de archivos db2_06_01.elic. * En NUMA-Q y Solaris Operating Environments, desinstale el paquete db2elic61. * En Linux, desinstale el RPM db2elic61-6.1.0-x. * En HP-UX, desinstale el catálogo de archivos DB2V6ENTP.elic. ------------------------------------------------------------------------ 42.31 Descarte de Data Links Manager Ahora se puede descartar DB2 Data Links Manager para una base de datos especificada. El proceso de algunas peticiones de SQL relacionados con Data Links, así como también programas de utilidad, por ejemplo copia de seguridad y restauración, implican la comunicación con todos los DLM configurados en una base de datos. Previamente, DB2 no tenía la capacidad de descartar un DLM configurado aunque puede que no haya sido operativo. Esto ocasionaba una actividad general en el proceso de programas de utilidad y SQL. Cuando se añadía un DLM, el motor se comunicaba con el mismo en el proceso de peticiones, lo que puede haber ocasionado la anomalía de algunas peticiones de SQL (por ejemplo, descartar tabla/espaciotabla/basedatos). ------------------------------------------------------------------------ 42.32 La desinstalación de los componentes de DLFM utilizando la SMIT puede eliminar catálogos de archivos adicionales Antes de desinstalar DB2 (Versión 5, 6 ó 7) de una máquina AIX en la que está instalado Data Links Manager, siga estos pasos: 1. Como root, efectúe una copia de /etc/vfs utilizando el mandato: cp -p /etc/vfs /etc/vfs.bak 2. Desinstale DB2. 3. Como root, sustituya /etc/vfs con la copia de seguridad efectuada en el paso 1: cp -p /etc/vfs.bak /etc/vfs ------------------------------------------------------------------------ 42.33 Error SQL1035N al utilizar CLP en Windows 2000 Si DB2 está instalado en un directorio al que sólo algunos usuarios (por ejemplo, administradores) tienen acceso de grabación, un usuario normal puede recibir el error SQL1035N al intentar utilizar el procesador de línea de mandatos de DB2. Para solucionar este problema, DB2 debe instalarse en un directorio al que tengan acceso de grabación todos los usuarios. ------------------------------------------------------------------------ 42.34 Mejora de SQL Assist La herramienta SQL Assist ahora permite al usuario especificar un operador de unión distinto de "=" para uniones de tabla. El diálogo Tipo de unión (Join Type), que se inicia pulsando el botón Tipo de unión (Join Type) de la página Uniones (Joins) de la herramienta SQL Assist, se ha mejorado para incluir una lista desplegable de operadores de unión. Los operadores válidos son "=", "<>", "<", ">", "<=" y ">=". SQL Assist es una herramienta que ayuda al usuario en la creación de sentencias de SQL simples. Está disponible desde el Centro de mandatos (pestaña Interactivo), el Centro de control (diálogos Crear vista y Crear activador), Stored Procedure Builder (asistente "Inserción de procedimiento almacenado de SQL") y el Centro de depósito de datos (paso Proceso de SQL). ------------------------------------------------------------------------ 42.35 Integración de escritorios Gnome y KDE para DB2 en Linux Ahora DB2 incluye una serie de programas de utilidad para la creación de carpetas de escritorio e iconos de DB2 para ejecutar las herramientas de DB2 que se utilizan con más frecuencia en los escritorios Gnome y KDE para las distribuciones Linus basadas en Intel soportadas. Estas herramientas las instala DB2 Versión 7.2 por omisión y se pueden utilizar tras la instalación para crear y eliminar iconos del escritorio para uno o más usuarios seleccionados. Para añadir un grupo de iconos de escritorio para uno o más usuarios, utilice el siguiente mandato: db2icons [ ...] Nota: Tenga en cuenta que si se generan iconos mientras se está ejecutando un entorno de escritorio Gnome o KDE, es posible que el usuario tenga que forzar una renovación manual del escritorio para ver los nuevos iconos. Para eliminar un grupo de iconos de escritorio para uno o más usuarios, utilice el siguiente mandato: db2rmicons [ ...] Nota: Debe tener suficiente autorización para generar o eliminar iconos para otros usuarios. Normalmente, db2icons y db2rmicons se pueden utilizar para crear o eliminar iconos para el propio usuario si se trata de un usuario normal y para otros únicamente si se trata del usuario root o de otro usuario con autorización de grabación en los directorios iniciales de los usuarios especificados. ------------------------------------------------------------------------ 42.36 Ejecución de DB2 bajo Windows 2000 Terminal Server, Modalidad de administración Para DB2 UDB Versión 7.1, FixPak 3 y posterior, DB2 se puede ejecutar bajo Windows 2000 Terminal Server, Modalidad de administración. Antes de esta versión, no podía ejecutar DB2 bajo la sesión Cliente de Windows 2000 Terminal Server, Modalidad administración. ------------------------------------------------------------------------ 42.37 Ayuda en línea para los mandatos de copia de seguridad y restauración Aparece información incorrecta cuando escribe db2 ? backup. La salida correcta es la siguiente: BACKUP DATABASE alias-basedatos [USER nombreusuario [USING contraseña]] [TABLESPACE (nombre-espaciotbl [ {,nombre-espaciotbl} ... ])] [ONLINE] [INCREMENTAL [DELTA]] [USE TSM [OPEN núm-ses SESSIONS]] | TO dir/disp [ {,dir/disp} ... ] | LOAD nombre-bib [OPEN núm-ses SESSIONS]] [WITH núm-almint BUFFERS] [BUFFER tamaño-almint ] [PARALLELISM n] [WITHOUT PROMPTING] Aparece información incorrecta cuando escribe db2 ? restore. La salida correcta es la siguiente: RESTORE DATABASE alias-basedatos-origen { opciones-restauración | CONTINUE | ABORT }"; opciones-restauración:"; [USER nombreusuario [USING contraseña]] [{TABLESPACE [ONLINE] |"; TABLESPACE (nombre-espaciotbl [ {,nombre-espaciotbl} ... ]) [ONLINE] |"; HISTORY FILE [ONLINE]}] [INCREMENTAL [ABORT]]"; [{USE TSM [OPEN núm-ses SESSIONS] |"; FROM dir/disp [ {,dir/disp} ... ] | LOAD bib-comp"; [OPEN núm-ses SESSIONS]}] [TAKEN AT fecha-hora] [TO directorio-destino]"; [INTO alias-basedatos-destino] [NEWLOGPATH directorio]"; [WITH núm-almint BUFFERS] [BUFFER tamaño-almint]"; [DLREPORT nombre-archivo] [REPLACE EXISTING] [REDIRECT] [PARALLELISM n]"; [WITHOUT ROLLING FORWARD] [WITHOUT DATALINK] [WITHOUT PROMPTING]"; ------------------------------------------------------------------------ 42.38 "Warehouse Manager" debe ser "DB2 Warehouse Manager" Todas las apariciones de la frase "Warehouse Manager" en las pantallas y en la documentación del producto deben decir "DB2 Warehouse Manager". ------------------------------------------------------------------------ Información adicional ------------------------------------------------------------------------ Información adicional ------------------------------------------------------------------------ 43.1 Soporte en línea de DB2 Universal Database y DB2 Connect Para obtener una fuente de información sobre DB2 completa y actualizada, incluyendo información sobre los aspectos descubiertos después de la publicación de este documento, utilice el sirio Web de DB2 Universal Database & DB2 Connect Online Support, ubicado en http://www.ibm.com/software/data/db2/udb/winos2unix/support. ------------------------------------------------------------------------ 43.2 Revista de DB2 Para conocer la información más reciente sobre la familia de productos DB2, obtenga una suscripción gratuita a la "Revista de DB2". La edición en línea de esta revista está disponible en http://www.db2mag.com; en este sitio también se indican las instrucciones para solicitar una suscripción. ------------------------------------------------------------------------ Apéndices ------------------------------------------------------------------------ Apéndice A. Avisos Es posible que IBM no comercialice en todos los países algunos productos, servicios o características descritos en este manual. Consulte al representante local de IBM para obtener información sobre los productos y servicios que actualmente pueden adquirirse en su zona geográfica. Cualquier referencia a un producto, programa o servicio de IBM no pretende afirmar ni implicar que sólo se puede utilizar dicho producto, programa o servicio de IBM. En su lugar se puede utilizar cualquier producto, programa o servicio funcionalmente equivalente que no infrinja ninguno de los derechos de propiedad intelectual de IBM. Sin embargo, es responsabilidad del usuario evaluar y verificar el funcionamiento de cualquier producto, programa o servicio que no sea de IBM. IBM puede tener patentes o solicitudes de patentes en tramitación que afecten al tema tratado en este documento. La posesión de este documento no confiere ninguna licencia sobre dichas patentes. Puede realizar consultas sobre licencias escribiendo a: IBM Director of Licensing IBM Corporation North Castle Drive Armonk, NY 10504-1785 EE.UU. En el caso de consultas sobre licencias referentes a información de doble byte (DBCS), consulte al Departamento de Propiedad Intelectual de IBM en su país o envíe consultas por escrito a: IBM World Trade Asia Corporation Licensing 2-31 Roppongi 3-chome, Minato-ku Tokyo 106, Japón El párrafo siguiente no es aplicable al Reino Unido ni a ningún país en el que tales disposiciones sean incompatibles con la legislación local: INTERNATIONAL BUSINESS MACHINES CORPORATION PROPORCIONA ESTA PUBLICACIÓN "TAL CUAL", SIN GARANTÍA DE NINGUNA CLASE, NI EXPLÍCITA NI IMPLÍCITA, INCLUIDAS, PERO SIN LIMITARSE A ELLAS, LAS GARANTÍAS IMPLÍCITAS DE NO VULNERACIÓN DE DERECHOS, COMERCIABILIDAD O IDONEIDAD PARA UN FIN DETERMINADO. Algunos estados no permiten la exclusión de garantías expresas o implícitas en determinadas transacciones, por lo que es posible que esta declaración no sea aplicable en su caso. Esta publicación puede contener inexactitudes técnicas o errores tipográficos. Periódicamente se efectúan cambios en la información aquí contenida; dichos cambios se incorporarán a las nuevas ediciones de la publicación. IBM puede efectuar, en cualquier momento y sin previo aviso, mejoras y/o cambios en los productos y/o programas descritos en esta publicación. Las referencias hechas en esta publicación a sitios Web que no son de IBM se proporcionan sólo para la comodidad del usuario y no constituyen un aval de esos sitios Web. La información contenida en esos sitios Web no forma parte de la información del presente producto IBM y el usuario es responsable de la utilización de esos sitios Web. IBM puede utilizar o distribuir cualquier información que se le facilite de la manera que considere adecuada, sin contraer por ello ninguna obligación con el remitente. Los licenciatarios de este programa que deseen obtener información sobre él con el fin de habilitar: (i) el intercambio de información entre programas creados de forma independiente y otros programas (incluido este) y (ii) el uso mutuo de la información intercambiada, deben ponerse en contacto con: IBM Canada Limited Office of the Lab Director 1150 Eglinton Ave. East North York, Ontario M3C 1H7 CANADÁ Dicha información puede estar disponible, sujeta a los términos y condiciones apropiados, incluido en algunos casos, el pago de una tarifa. El programa bajo licencia descrito en este manual y todo el material bajo licencia asociado a él, los proporciona IBM según los términos del Acuerdo de Cliente de IBM, el Acuerdo Internacional de Programas Bajo Licencia de IBM o cualquier acuerdo equivalente entre el usuario e IBM. Los datos de rendimiento contenidos en este documento se obtuvieron en un entorno controlado. Por tanto, los resultados obtenidos en otros entornos operativos pueden variar significativamente. Algunas mediciones pueden haberse hecho en sistemas experimentales y no es seguro que estas mediciones sean las mismas en los sistemas disponibles comercialmente. Además, algunas mediciones pueden haberse calculado mediante extrapolación. Los resultados reales pueden variar. Los usuarios del presente manual deben verificar los datos aplicables para su entorno específico. La información referente a productos que no son de IBM se ha obtenido de los proveedores de esos productos, de sus anuncios publicados o de otras fuentes disponibles públicamente. IBM no ha probado esos productos y no puede confirmar la exactitud del rendimiento, la compatibilidad ni cualquier otra afirmación referente a productos que no son de IBM. Las preguntas sobre las prestaciones de productos que no son de IBM deben dirigirse a los proveedores de esos productos. Todas las declaraciones de intenciones de IBM están sujetas a cambio o cancelación sin previo aviso, y sólo representan objetivos. Esta publicación puede contener ejemplos de datos e informes que se utilizan en operaciones comerciales diarias. Para ilustrarlos de la forma más completa posible, los ejemplos incluyen nombres de personas, empresas, marcas y productos. Todos estos nombres son ficticios y cualquier similitud con nombres y direcciones utilizados por una empresa real es totalmente fortuita. LICENCIA DE COPYRIGHT: Este manual puede contener programas de aplicaciones de ejemplo escritos en lenguaje fuente, que muestran técnicas de programación en diversas plataformas operativas. Puede copiar, modificar y distribuir estos programas de ejemplo de la forma que desee, sin pago alguno a IBM, con la intención de desarrollar, utilizar, comercializar o distribuir programas de aplicaciones de acuerdo con la interfaz de programación de aplicaciones correspondiente a la plataforma operativa para la que están escritos los programas de ejemplo. Estos ejemplos no se han probado exhaustivamente bajo todas las condiciones. Por tanto, IBM no puede asegurar ni implicar la fiabilidad, utilidad o función de estos programas. Cada copia o porción de estos programas de ejemplo o cualquier trabajo derivado debe incluir una nota de copyright como la siguiente: (C) (nombre de la empresa) (año). Partes de este código derivan de programas de ejemplo de IBM Corp. (C) Copyright IBM Corp. _especifique el año o años _. Reservados todos los derechos. ------------------------------------------------------------------------ A.1 Marcas registradas Los términos siguientes, que pueden estar indicados por un asterisco (*), son marcas registradas de International Business Machines Corporation en los Estados Unidos y/o en otros países. ACF/VTAM IBM AISPO IMS AIX IMS/ESA AIX/6000 LAN DistanceMVS AIXwindows MVS/ESA AnyNet MVS/XA APPN Net.Data AS/400 OS/2 BookManager OS/390 CICS OS/400 C Set++ PowerPC C/370 QBIC DATABASE 2 QMF DataHub RACF DataJoiner RISC System/6000 DataPropagator RS/6000 DataRefresher S/370 DB2 SP DB2 Connect SQL/DS DB2 Extenders SQL/400 DB2 OLAP Server System/370 DB2 Universal Database System/390 Distributed Relational SystemView Database Architecture VisualAge DRDA VM/ESA eNetwork VSE/ESA Extended Services VTAM FFST WebExplorer First Failure Support TechnologyWIN-OS/2 Los términos siguientes son marcas registradas de otras empresas: Microsoft, Windows y Windows NT son marcas registradas de Microsoft Corporation. Java, y las marcas registradas y logotipos basados en Java y Solaris, son marcas registradas de Sun Microsystems, Inc. en los Estados Unidos y/o en otros países. Tivoli y NetView son marcas registradas de Tivoli Systems Inc. en los Estados Unidos y/o en otros países. UNIX es una marca registrada en los Estados Unidos y/o en otros países bajo licencia exclusiva de X/Open Company Limited. Otros nombres de empresas, productos o servicios, que pueden estar indicados por un doble asterisco (**), pueden ser marcas registradas o marcas de servicio de otras empresas. ------------------------------------------------------------------------ Índice A B C CH D E F G H I J L M N O P Q R S T U V W ------------------------------------------------------------------------ A * a petición, archivado de anotaciones cronológicas (1036) * accesibilidad (1392) * acceso a clientes remotos o configuración de Communication Server para NT (1385) * acceso a varios índices (1060) * Address Windowing Extensions (AWE) (1062) * Adobe Acrobat Reader o acceso con entornos nacionales no ingleses (926) * agrupaciones de almacenamiento intermedio o AWE (1061) * aislamiento a nivel de sentencia (1051) * AIX 4.3.3 o cuando AutoLoader se cuelga después de un fork (1382) * alta disponibilidad (1021) * ALTER SEQUENCE, sentencia o descripción detallada (1302) * anotación cronológica o reflexión (1038) * anotación cronológica dual (1040) * anotaciones cronológicas o archivado a petición (1037) * API de servicios de copia de seguridad o soporte de DB2 (1404) * aplicaciones Unicode de ODBC (1365) * app_ctl_heap_sz (1073) * archivado de anotaciones cronológicos a petición (1035) * archivado y recuperación o programa de salida de usuario (1045) * Archive Log (1107) * archivo de configuración de gobierno (1065) * archivo de lenguaje de códigos, DWC, ICM, archivo ERwin, archivo ER1 (1167) * AS/400 o capture y apply para (1117) * asignación de series a columnas, normas para (1351) * asignaciones o series, normas básicas para (1349) * asistente MQSeries Assist (1160) * asistente OLE DB Assist (1162) * Asistente para crear bases de datos o establecimiento del tamaño de extensión en (1158) * Asistentes o Crear base de datos (1159) o MQSeries Assist (1161) o OLE DB Assist (1163) * autentificación o por dominio utilizando DB2DOMAINLIST (1380) * AutoLoader o si se cuelga durante un fork (1381) * autorización o otorgar para secuencia (1323) o pública para secuencia (1324) B * bases de datos clónicas o creación (1024) * bases de datos distribuidas o configuración para actualizar (965) * bases de datos particionadas o errores al añadir nodos (905) * bloqueo de siguiente clave (1127) * búsqueda de información en línea o en el entorno operativo Solaris (923) C * captadores previos o creación y ampliación de contenedores DMS en paralelo (990) * capture y apply o en AS/400 (1118) o inicio desde dentro de una aplicación (1122) o mensajes de error (1121) * características de accesibilidad (901) * Centro de administración de satélites o Versión 6, utilización para administrar entorno de satélites (1105) * centro de alertas (992) * Centro de control o arreglo necesario para OS/390 (1145) o cuaderno Valores de herramienta (1151) o ejecución de versiones traducidas (981) o en la plataforma OS/390 (1144) o errores con Internet Explorer (916) o problema de visualización de infopops en OS/2 (1148) o problemas del centro de scripts en Windows 95 (1153) o resolución de problemas (1146) o resolución de problemas en plataformas UNIX (1147) o restricciones sobre applets simultáneos (1152) o soporte bidireccional + en Windows NT (1136) o utilización para administrar bases de datos de VM y VSE (1135) o Versión 6, utilización para administrar entorno de satélites (1104) * Centro de depósito de datos o sintaxis del mandato iwh2exp2 (1401) o Soporte de OLE DB (1176) o utilización de procedimientos almacenados (1399) * cifrado o datos (1013) * cifrado de datos (1014) * cifrado de información o función ENCRYPT (1263) o función GETHINT (1267) * cláusula SWITCH ONLINE (1007) * claves de índice o mayores (1055) * claves de particionamiento o actualización (963) * CLI o escritura de una aplicación Unicode (1364) * clientes o bajar (927) o entorno de tres niveles (1222) * clientes Unicode o limitaciones de movimiento de datos (1368) * columna o asignación de serie, normas básicas para (1350) * columna de identidad o alteración (1004) * columnas IDENTITY (999) * Common Warehouse Metamodel o soporte XML (1185) * compuesto, SQL (1238) * concatenación o operador (1358) * conexiones con nombre o copia de seguridad en (1033) * confirmación incremental con sustitución (1177) * contenedores o adición a un espacio de tabla SMS (1003) * contenedores DMS o creación y ampliación en paralelo (991) * contenido de ejemplo, ver (1155) * convenios de denominación o límites de caracteres (971) * conversión de caracteres o normas al comparar series (1354) o normas para las operaciones que combinan series (1352) * copia de seguridad o en conexiones con nombre (1032) o fuera de línea + de imagen de división de reflejo (1034) o incremental (1027) * copia de seguridad y recuperación incremental (1026) * CREATE PROCEDURE, sentencia o sentencia compuesta dinámica (1304) o sentencia de procedimiento SQL (1333) o sentencia FOR (1334) o sentencia RETURN (1337) o sentencia SIGNAL (1340) * CREATE SEQUENCE, sentencia o descripción detallada (1311) * cursor ambiguo (1318) * cursores o actualizable (1229) o atributos, por omisión (1226) o controlado por conjunto de claves + actualización (1233) o desplazables (1231) + controlado por conjunto de claves (1221) + estático (1220) + extremo del servidor (1219) + OS/390 (1218) + resolución de problemas de aplicaciones (1236) o sensibilidad (1228) o simultaneidad (1230) o simultaneidad de valores (1234) o tipo (1227) * CWM o soporte XML (1183) CH * Chino simplif. o valor de entorno nacional en Linux (915) D * daemon de copia (1376) * Data Links File System o incompatible con Norton Utilities (976) * DataJoiner o restricciones (1387) * DATALINK o duplicación (1112) o problemas al restaurar (1383) * Datos, borrado, borrado de nombre y dirección (1170) * DAYOFWEEK_ISO, función escalar (1247) * db2_all (1046) * DB2 Connect o Sun Cluster 2.2, requisitos previos (967) * DB2 Data Links Manager o interacciones con recuperación (1043) * DB2 Enterprise Edition o configuración como satélite (1084) + requisitos previos (1091) o Versión 6, utilización como servidor de control de DB2 (1102) * DB2_INDEX_2BYTEVARLEN (1001) * DB2 Personal Edition o configuración como satélite (1083) + requisitos previos (1090) * DB2 Relational Connect o instalación en AIX, Solaris y Linux (944) o instalación en Windows NT (943) * DB2 Server para VM y VSE o administración de bases de datos desde el Centro de control (1134) * db2ArchiveLog (1210) * db2expln o en ejecución (1081) * db2iupdt, ejecución de este mandato después de actualizar DB2 (936) * db2start o en Windows 95, 98 y ME (1123) * DECLARE CURSOR (1317) * DECRYPT, función o descripción detallada (1256) o valores y argumentos (1257) * descifrar información o función DECRYPT (1259) * desencadenantes o inoperativos (1313) o mensajes de error (1315) * desinstalación o DB2 DFS Client Enabler (1377) * devolver valor de columna de identidad o función IDENTITY_VAL_LOCAL (1271) * DFS Client Enabler o desinstalación (1378) * división de reflejo o como base de datos en espera (1025) * dlfm client_conf o motivos de anomalía (1375) * duplicación o con servidores no IBM (1108) o DATALINK (1111) o determinación de problemas en (1115) o marcos hipotéticos para (1109) o planificación (1113) o requisito previo a una actualización en cualquier parte (update-anywhere) (1114) o restricciones en nombres de tabla y de columna (1110) * DWC o CWM, soporte XML (1184) o Soporte de OLE DB (1175) * dynexpln o en ejecución (1082) E * enable_MQFunctions (1130), (1132) * ENCRYPT, función o descripción detallada (1260) o valores y argumentos (1261) * entorno de satélites o administración con Versión 6 del Centro de administración de satélites (1106) o consideraciones sobre la instalación (1095) o instalación de archivo de respuestas del satélite (1098) o instalación interactiva de satélite (1101) o requisitos previos (1089) o satélite de DB2 Personal Edition (1087) o satélite de DB2 Workgroup Edition (1088) * entorno nacional o compatibilidad entre Administration Server e instancia (982), (1391) o japonés y chino simplificado en Linux (912) * entorno operativo Solaris o búsqueda de información en línea en (924) * entornos nacionales o chino simplificado en Red Flag Linux (909) o versiones en idiomas nacionales (979) * error de acceso a archivo denegado (1141) * error de atajo no válido (1138) * ERwin, metadatos, extracción, importación (1164) * espacios de tabla o establecimiento del estado ONLINE (1008) * espacios de tabla DMS o ajuste del tamaño y creación paralela (1009) * espacios de tabla SMS o adición de contenedores (1002) * esperas de bloqueo (1126) * estadísticas del catálogo del sistema o recogida de estadísticas de distribución (1056) * estructuras de tabla (1119) * expresión o operador de concatenación (1356) o serie (1357) * expresión-nextval (1255) * expresión-prevval (1254) * expresiones o NEXTVAL (996) o PREVVAL (995) o secuencias (1252) F * fuente no db2, entrada de ejemplo para Sybase (1182) * fuentes de datos de Microsoft SQL Server o acomodadores MERANT (959) o biblioteca MERANT (955) o controlador ODBC (954) o enlace a DB2 (957) o mejora del rendimiento (958) o nombre de DSN (960) o páginas de códigos (962) o rastreos ODBC (961) o variables de entorno (956) * fuentes de datos Oracle o acomodador de Linux (946) o acomodador de Solaris (945) o variables de entorno (947) * fuentes de datos Sybase (948) o enlace a DB2 (951) o mejora del rendimiento (952) o páginas de códigos (953) o variables de entorno (950) * fuentes de depósito no DB2, AIX (1179) * fuentes de depósito no DB2, Solaris Operating Environment (1180) * función de CLI SQLBindFileToParam, corrección (1241) * función de I/O en suspensión o soporte de disponibilidad continua (1020) * función IDENTITY_VAL_LOCAL o descripción detallada (1268) o valores y argumentos (1269) * función MQPUBLISH o descripción detallada (1273) o valores y argumentos (1274) * función MQREAD o descripción detallada (1276) o valores y argumentos (1277) * función MQREADALL o descripción detallada (1294) o valores y argumentos (1295) * función MQRECEIVE o descripción detallada (1279) o valores y argumentos (1280) * función MQRECEIVEALL o descripción detallada (1297) o valores y argumentos (1298) * función MQSEND o descripción detallada (1282) o valores y argumentos (1283) * función MQSUBSCRIBE o descripción detallada (1285) o valores y argumentos (1286) * función MQUNSUBSCRIBE o descripción detallada (1288) o valores y argumentos (1289) * función REC2XML o descripción detallada (1290) o valores y argumentos (1291) * función SQLNextResult (1243) * funciones o DECRYPT (1016) o en una base de datos Unicode (1362) o ENCRYPT (1015) o escalares + DECRYPT (1258) + ENCRYPT (1262) + GETHINT (1266) + IDENTITY_VAL_LOCAL (1270) + MQPUBLISH (1272) + MQREAD (1275) + MQRECEIVE (1278) + MQSEND (1281) + MQSUBSCRIBE (1284) + MQUNSUBSCRIBE (1287) + REC2XML (1292) o GETHINT (1017) o procedimientos (1299) o tabla + MQREADALL (1293) + MQRECEIVEALL (1296) * funciones CLI o SQLBindFileToParam (1242) o SQLNextResult (1244) * funciones escalares o DAYOFWEEK_ISO (1245) o WEEK_ISO (1246) G * gestión de mensajes, MQ Series (1172), (1173) * Gestor de catálogos de información o en hebreo (1388) o programa de utilidad (1209) * GETHINT, función o descripción detallada (1264) o valores y argumentos (1265) * GRANT o CREATE ON SEQUENCE (1322) * GRANT (privilegios para secuencias), sentencia o descripción detallada (1320) H * herramienta db2inidb (1019) * herramientas de la gui o errores de vinculación (1371) * High Availability en Solaris (970) * HP-UX o sin soporte para Query Enabler (1397) * HP-UX 11 o ventanas de memoria (1374) * HP y Sun Solaris o soporte de copia de seguridad y restauración (1042) I * ID de usuario o límites de caracteres (973) * idiomas bálticos o soporte a página de códigos (983) * importar, archivo de lenguaje de códigos, ICM, Gestor de catálogos de información (1169) * importar, importación, archivo de lenguaje de códigos, DWC (1168) * índices o acceso a varios (1059) o claves mayores (1054) * inicio de DB2 o utilización de db2start en Windows 95, 98 y ME (1124) * inoperativos, desencadenantes o descripción detallada (1314) * instalación o cuenta de servicio necesaria en Windows (1393) o detención de los procesos de DB2 durante (934) o se cuelga al utilizar una unidad extraíble (911) * instalación de archivo de respuestas o palabras clave del servidor de control de DB2 (1094) o palabras clave específicas del satélite (1099) * instalar, instalación, migración, ejecutables (1166) * interfaz CLI o valores de página de códigos (987) * Internet Explorer o errores con el Centro de control (917) J * Japonés o valor de entorno nacional en Linux (914) * JDBC o cursores desplazables, acceso (1225) * JDK 1.1 o vía de instalación (1149) L * Linux o establecimiento del entorno para el Centro de control (938) o valores de entorno nacional para japonés y chino simplificado (913) * locklist o parámetro de configuración maxlocks (1068) M * mandato iwh2exp2 o nueva opción (1402) * manejo de división de reflejos o en línea (1023) * maxappls (1077) * mensajes o para capture y apply (1120) * mensajes de error o acceso a archivo denegado (1142) o al añadir nodos a bases de datos particionadas (906) o al ejecutar desencadenantes (1316) o atajo no válido (1139) o durante la migración (907) o no se encuentran los archivos de vinculación (1370) o SQL10012N (1150) * métodos Java o en CREATE PROCEDURE o CREATE FUNCTION (1213) * migración o ejecución de db2iupdt para actualizar instancias (937) o en Windows 2000 (929) o errores durante (908) o problemas con las vistas (930) * modelador de esquemas o Centro de depósito de datos (1188) * modelador de procesos o Centro de depósito de datos (1187) * mon_heap_sz (1075) * movimiento de datos o límites de clientes Unicode (1367) * MQ Functions (1131), (1133) * multisite update test connect o incompatibilidad entre versiones de instancia (1143) N * navegadores de web o recomendaciones para Windows 2000 (920) * Netscape o mensajes de error (925), (1156) o utilización para acceder a la información en línea (921) * NEXTVAL (998) * niveles de aislamiento o en sentencia DELETE (1319) o en sentencia INSERT (1325) o en sentencia SELECT (1301) o en sentencia SELECT INTO (1326) o en sentencia UPDATE (1332) o nivel de sentencia (1050) * niveles de parche o en Solaris versión 2.6 (903) * Nombre y dirección, borrado, Trillium (1171) * nombres de esquema o límites de caracteres (972) * nombres de los archivos de datos de rastreo componentes (1178) * normas de conversión o para comparaciones de serie (1355) o para las operaciones que combinan series (1353) * normas de denominación (974) * Norton Utilities o incompatible con Data Links File System (975) * NUMA-Q o sin soporte para Query Enabler o Tracker (1398) O * ODBC o cursores desplazables, acceso (1224) o orientaciones de captación (1232) * Open Client, fuentes de depósito no DB2 y (1181) * operando o serie (1360) * optimista, bloqueo (1235) * OS/2 o instalación del Centro de control (1140) o nivel de JDK necesario para los mensajes (1211) P * páginas de códigos o correlación con entornos nacionales (980) o en aplicaciones que utilizan CLI (986) o idiomas bálticos (984) * parámetro de configuración o MIN_DEC_DIV_3 (1071) * parámetros de configuración o app_ctl_heap_sz (1072) o maxappls (1076) o maxlocks (1069) o mon_heap_sz (1074) o softmax (1078) * pasarelas o entorno de tres niveles (1223) * perfil estático, en aplicaciones JDBC/ODBC/CLI (1216) * perfil estático JDBC/ODBC/CLI, limitaciones (1215) * plantilla o Commit.tag + símbolo (1190) + valores de ejemplo (1192) o ForeignKey.tag + símbolos (1194) + valores de ejemplo (1196) o ForeignKeyAdditional.tag + símbolos (1198) + valores de ejemplo (1200) o PrimaryKey.tag + símbolos (1202) + valores de ejemplo (1204) o PrimaryKeyAdditional.tag + símbolos (1206) + valores de ejemplo (1208) * plantilla Commit.tag o símbolos (1189) o valores de ejemplo (1191) * plantilla ForeignKey.tag o símbolos (1193) o valores de ejemplo (1195) * plantilla ForeignKeyAdditional.tag o símbolos (1197) o valores de ejemplo (1199) * plantilla PrimaryKey.tag o símbolos (1201) o valores de ejemplo (1203) * plantilla PrimaryKeyAdditional.tag o símbolos (1205) o valores de ejemplo (1207) * PREVVAL (997) * privilegio USAGE (1012) * privilegios o USAGE (1011) * procedimiento de SQL o sentencia compuesta dinámica (1306) o sentencia DECLARE (1310) o sentencia FOR (1336) o sentencia RETURN (1339) o sentencia SIGNAL (1342) o variables (1309) * procedimientos almacenados o en el Centro de depósito de datos (1400) * procedimientos almacenados de CLI o limitaciones (1239) o vinculación automática (1240) * procesos, detención antes de la instalación (935) * programa de utilidad DB2MSCS, rearranque de la máquina para establecer PATH (966) * puntos muertos (1125) Q * Query Enabler o no soportado en HP-UX y NUMA-Q (1396) * Query Patroller o pérdida de privilegios de usuario después de la migración (1394) * Query Patroller Tracker o no soportado en NUMA-Q (1395) * quick tour (1369) R * recomendación sobre el valor dl_expint (1070) * recuperación o incremental (1029) o interacción con DB2 Data Links Manager (1044) o paralela (1031) * recuperación de detenciones anormales o utilización de la herramienta db2inidb (1022) * recuperación paralela (1030) * Red Flag Linux o entorno nacional chino simplificado (910) * reflexión o anotaciones cronológicas (1039) * Replication Analyzer (1116) * requisitos de software, archivo de lenguaje de códigos ERwin, Centro de depósito de datos, DWC, Gestor de catálogos de información, ICM (1165) * requisitos previos de instalación o para UDB EE y CEE en Linux para OS/390 (939) * restauración o incremental (1028) o problemas con columnas DATALINK (1384) * resultados de consultas, ver (1154) * rutinas o procedimientos (1300) S * satélites o consideraciones sobre la instalación (1096) o DB2 Personal Edition (1085) o DB2 Workgroup Edition (1086) o instalación de archivo de respuestas (1097) o instalación interactiva (1100) * search discovery (1372) * secuencia, invocación (1253) * secuencias (1000) o alteración (1005) o creación (994) o descarte (1006) o expresión-nextval (1251) o expresión-prevval (1250) o invocar (1249) o privilegios (1010) * secuencias, descripción (1212) * Sentencia compuesta (dinámica) o variables (1307) * sentencia compuesta dinámica (1305) * sentencia FOR (1335) * sentencia RETURN (1338) * sentencia SIGNAL (1341) * sentencias compuestas o dinámicas (1052) * sentencias compuestas dinámicas (1053) * sentencias de SQL o ALTER SEQUENCE (1303) o CREATE SEQUENCE (1312) o GRANT (privilegios para secuencias) (1321) o SET ENCRYPTION PASSWORD (1328) o SET Variable (1330) * sentencias de SQL activadas por desencadenante o sentencia SET Variable (1331) * serie o expresión (1359) o operando (1361) * serie de caracteres o asignación, vista general (1348) * servidor de control de DB2 o instalación de archivo de respuestas (1093) o requisitos mínimos (1092) o Versión 6, actualización (1103) * SET CONSTRAINTS, sentencia o sustituida por SET INTEGRITY (977) * SET ENCRYPTION PASSWORD (1018) * SET ENCRYPTION PASSWORD, sentencia o descripción detallada (1327) * SET INTEGRITY, sentencia o sustitución de SET CONSTRAINTS (978) * SET Variable, sentencia o descripción detallada (1329) * SIGTTIN (1047) * sistema operativo Solaris o 64-bits + configuración (1128) + restricciones (1129) * sistemas federados o acomodadores (940) o apodos (941) o restricciones (942) * sistemas federados, restricciones (1386) * SNA Server o acceso a UDB desde aplicaciones de AS/400 o sistema principal (1389) * SNA SPM o verificación del inicio después de rearrancar (1390) * softmax (1079) * Solaris o falta de soporte para versiones anteriores a UltraSparc (904) o nivel de parche necesario en V2.6 (902) * soporte a idiomas (989) * soporte a idiomas bidireccional o con el Centro de control en Windows NT (1137) * Soporte de OLE DB (1174) * soporte del protocolo IPX/SPX, en Windows 2000 (933) * soporte NLV o Unicode (1345) * soporte XML o para Common Warehouse Metamodel (CWM) (1186) * SQL compuesto, utilización (1237) * stdin (1048) * subelementos positivas (1057) * Sun Cluster 2.2 o DB2 Connect, requisitos previos (968) * Sun Solaris y HP o soporte de copia de seguridad y restauración (1041) * supervisor de rendimiento (993) * Sybase o incompatibilidad con ICM en Windows (918) * Sybase Open Client (949) T * tablas de resumen duplicadas (964), (1058) * tamaño de almacenamiento dinámico de clasificación (1066) * tamaño de extensión o establecimiento en el Asistente para crear bases de datos (1157) * tipos de datos o promoción en una base de datos Unicode (1347) * transformaciones ADT (1217) U * umbral de almacenamiento dinámico de clasificación (1067) * Unicode o actualizaciones en la documentación (1346) o base de datos y aplicaciones (1344) o en aplicaciones de ODBC (1366) o funciones en (1363) V * valores de entorno nacional o en aplicaciones que utilizan CLI (985) * variable de registro DB2_AWE (1064) * variable de registro DB2CODEPAGE o en aplicaciones que utilizan CLI (988) * variables de registro o DB2_AWE (1063) o DB2DOMAINLIST (1379) o nuevas y modificadas (1080) o para dar soporte a las API de servicios de copia de seguridad (1403) * variables de SQL (1308) * ventanas de memoria o en HP-UX 11 (1373) * Veritas o alta disponibilidad en Solaris (969) * VI o configuración para el uso con DB2 (1049) * vinculación de programas de utilidad de base de datos utilizando el Cliente de tiempo de ejecución (1214) * vistas o no disponibilidad después de la migración (931) * vistas de catálogo o SEQUENCES (1343) W * WEEK_ISO, función escalar (1248) * Windows o incompatibilidad entre Sybase e ICM (919) * Windows 2000 o migración en (928) o navegadores de web recomendados en (922) o soporte del protocolo IPXX/SPX (932) 1 Se inicia un nuevo nivel cada vez que se invoca un desencadenante, una función o un procedimiento almacenado. 2 A menos que la confirmación automática esté inhabilitada, las interfaces que confirman automáticamente cada sentencia devuelven un valor nulo cuando la función se invoca en sentencias separadas 3 Esto es válido para desencadenantes posteriores de inserción para cada fila (FOR EACH ROW) y para cada sentencia (FOR EACH STATEMENT). 4 Una Política de servicio define una serie de opciones de calidad de servicio que se deben aplicar a esta operación de gestión de mensajes. Estas opciones incluyen prioridad y permanencia del mensaje. Consulte el manual MQSeries Application Messaging Interface para obtener más información. 5 No se permite la serie de caracteres con un subtipo BIT DATA. 6 La selección completa puede ir precedida por una expresión de tabla común 7 Una selección completa puede estar precedida por una expresión de tabla común. 8 Antes del cálculo no se realiza ninguna conversión del valor anterior al tipo original.