Configuración de componentes DB
Una vez haya añadido un componente de BD al área de la asignación puede configurar varios ajustes de BD desde el cuadro de diálogo Configuración del componente (imagen siguiente). Puede abrir el cuadro de diálogo Configuración del componente de una de las siguientes maneras:
•Haga doble clic en la barra de título del componente.
•Haga clic con el botón derecho en el componente y luego en Propiedades.
•Seleccione el componente en la asignación. Después haga clic en el menú Componentes y seleccione Propiedades del menú contextual.
A continuación se pueden ver las opciones disponibles.
Base de datos
Este grupo muestra informaciones sobre conexiones de BD. Haga clic en Modificar para seleccionar otra base de datos o para redefinir los objetos de BD en el componente de BD existente. Se conservarán las conexiones a tablas del mismo nombre. También puede modificar las tablas en el componente, haciendo clic con el botón derecho en un componente de BD y seleccionando Agregar/Eliminar/Editar objectos de BD.
Indica la ruta de acceso absoluta o relativa del origen de datos actual.
|
Indica el nombre de la conexión. Este nombre se genera automáticamente a través de MapForce. Normalmente es el mismo nombre que el del origen de datos, pero también puede ser un "alias" si realiza la conexión con los recursos globales de Altova. En caso de que haya varios componentes de BD con la misma conexión de la asignación, el nombre de esta se mostrará así: <connection1>, <connection2>, etc.
|
Indica el tipo de BD (p.ej. SQLite).
|
Indica la cadena de conexión a la BD actual. Es un campo de solo lectura que se genera a partir de la información indicada durante la fase de creación o modificación de la conexión.
|
Configuraciones de acceso
Estas opciones se usan para los destinos de la generación de código y para el motor de ejecución integrado.
Permite cambiar el nombre de usuario que se utiliza para conectarse a una base de datos. Es obligatorio si la base de datos exige un nombre de usuario.
|
Permite cambiar la contraseña que se utiliza para conectarse a una base de datos. Es obligatorio si la base de datos exige una contraseña.
|
Configuraciones específicas de JDBC
Las opciones específicas de JDBC son relevantes cuando la asignación contiene una conexión JDBC y se ejecuta con el código Java generado o con MapForce Server.
Nota: | las conexiones ADO, ADO.NET y ODBC se convierten en JDBC (y, por tanto, se aplican estas opciones de configuración) cuando la asignación se ejecuta en un equipo Linux o macOS. Para más información, consulte Asignaciones de BD en distintos entornos de ejecución. |
Muestra el controlador que está activo para el componente de base de datos. El controlador predefinido se introduce automáticamente al definir el componente de BD. Puede cambiar el controlador introducido aquí para adaptarlo a sus necesidades. Asegúrese de que la sintaxis del campo URL de la base de datos concuerda con el controlador elegido.
|
URL de la base de datos que está seleccionada. Asegúrese de que su sintaxis concuerda con la del controlador JDBC (el controlador que aparece en el campo Controlador JDBC).
|
Configuraciones específicas de ADO/OLEDB
Las opciones específicas de ADO/OLEDB son relevantes cuando la asignación contiene una conexión ADO y se ejecuta con el código C# o C++ generado, o con MapForce Server en Windows. Para más información consulte Asignaciones de BD en distintos entornos de ejecución. Las opciones Origen de datos y Catálogo no se utilizan con el motor de ejecución integrado.
Muestra el nombre del origen de datos ADO.
|
Muestra el nombre del catálogo ADO.
|
Muestra el proveedor que está activo del componente de base de datos.
|
Muestra opciones adicionales de la base de datos.
|
Configuración de la generación
Estas opciones son relevantes para todos los destinos de generación de código, así como para el motor de ejecución integrado. La opción Eliminar los nombres de esquema de los nombres de tabla le permite eliminar los nombres de esquema del código generado y conservar solo los nombres de tabla. Recuerde que esta opción solamente funciona con las instrucciones SQL SELECT generadas con MapForce. No se modificarán las instrucciones SQL definidas por el usuario.
La opción Configuración de la generación existe para garantizar la compatibilidad con versiones anteriores, por lo que debe evitarla si ese no es su caso. Para hacer que los objetos de BD sean relativos al esquema predeterminado recomendamos que use el método que se describe en Usar nombres de objetos relativos al esquema predeterminado.
Tiempo de espera para la ejecución de instrucciones
Cuando se usa una base de datos como componente de destino, pueden superarse los tiempos de espera de ejecución debido a problemas de disponibilidad del servidor o de tráfico, a disparadores de larga ejecución, etc.
Define el plazo de tiempo máximo (en segundos) que debe esperar el motor de ejecución hasta recibir una respuesta de la base de datos antes de anular la ejecución de una instrucción de BD. El tiempo de espera predeterminado es de 60 segundos.
|
Si se marca esta casilla, el motor de ejecución no agotará el tiempo de espera nunca.
|
Nota: | el tiempo de espera para la ejecución de instrucciones no afecta a las bases de datos SQLite. |
Gestión de transacciones de BD
Al ejecutar asignaciones que tengan componentes de BD, es posible que se encuentren varios errores relacionados con la BD (p.ej., claves de índice duplicadas, valores NULL insertados en columnas no-NULL, etc.). Para que sea posible revertir datos de BD si ocurren errores, debe configurar la asignación para que use transacciones de base de datos. Puede habilitar las transacciones a nivel de la base de datos (configuración actual), a nivel de acciones de tabla, y a nivel de procedimientos almacenados. Para más información sobre algunos posibles casos de gestión de transacciones, consulte el apartado Reversión de transacciones: Casos.
Algunas asignaciones pueden contener varios componentes de base de datos que, a su vez, pueden usar todos la misma conexión de base de datos o conexiones completamente distintas. El resultado de esas asignaciones en caso de error de BD depende del motor de ejecución:
•Si la asignación se ejecuta con MapForce, solo se puede procesar un componente de destino mientras se está ejecutando la asignación. Este es el componente para el que está habilitado el botón . Si ocurre un error de BD en ese componente y la casilla Usar transacciones está marcada, entonces se revertirán todos los cambios realizados por ese componente.
•Si la asignación se ejecuta con MapForce Server o con un programa generado por MapForce, se procesan todos los componentes de destino de forma secuencial. En este caso, si ocurre un error de BD la acción de revertir el componente de BD tendrá lugar donde ocurrió el error. La asignación se detendrá o pasará a ejecutar el siguiente componente de destino, según el valor que haya seleccionado en la lista desplegable de la opción Si ocurre un error (véase más abajo).
Habilita el procesamiento de transacciones para un componente de BD de destino. Cuando se detecta un error aparece un cuadro de diálogo donde el usuario puede elegir cómo se procede. Si se marca esta casilla, el procesamiento de transacciones se habilita para todas las tablas del componente de base de datos. Si habilita las transacciones a nivel de la base de datos, se incluirán todos los cambios de la base de datos en una única transacción que se revertirá en caso de error relacionado con la BD.
|
Si marca la casilla Usar transacciones, puede elegir qué desea hacer cuando ocurre un error relacionado con la BD:
•Revertir transacción de nivel superior y detener la operación: Se revierte la transacción que incluye todos los cambios de la BD y se detiene la ejecución de la asignación. •Revertir transacción de nivel superior y continuar: Ocurre lo mismo, pero la asignación sigue ejecutándose después de la reversión de la transacción (p.ej., para procesar un segundo componente de destino).
A nivel de componente de BD, puede elegir si desea que el procesamiento continúe para otros componentes de destino. Por ejemplo: ha ocurrido un error en el componente de BD en una asignación XML-BD-JSON. En este caso, el archivo JSON todavía se puede procesar y revertir si se ha habilitado la opción Revertir transacción de nivel superior y continuar.
|
Seguimiento
Cuando una asignación escribe datos en una BD se puede habilitar el seguimiento de BD y el registro de errores. El seguimiento es útil para monitorizar todos los cambios que la asignación ha hecho en la base de datos durante la ejecución de la asignación. Los cambios que se han realizado en la BD se almacenan en un archivo de seguimiento. Si ocurren errores durante la ejecución, estos también se almacenan. El seguimiento solo es compatible con el lenguaje de transformación integrado.
Puede habilitar el seguimiento a diferentes niveles:
•A nivel de componente de BD: El seguimiento a este nivel puede ser útil para asignaciones que tienen varios componentes BD de destino de los que solo necesita habilitar el seguimiento para algunos de ellos. Al habilitar el seguimiento a nivel de componente de BD se habilita automáticamente también para todas las tablas y los procedimientos almacenados de este componente. Para que sea posible monitorizar las tablas relevantes y los procedimientos almacenados, estos deben estar conectados a nodos de origen.
•A nivel de tabla o de procedimiento almacenado: Puede decidir si desea habilitar el seguimiento para una tabla específica o un procedimiento almacenado. A nivel de tabla, el seguimiento incluye eventos relacionados a las acciones de tablas (p.ej., Insertar todo). En el caso de los procedimientos almacenados el seguimiento conserva las acciones relacionadas con la llamada al procedimiento almacenado en cuestión.
•A nivel de campo de BD: Por defecto todos los campos se monitorizan, pero puede excluir ciertos campos del informe de seguimiento o decidir incluir ciertos campos solo en caso de error.
Es importante recordar que los tres niveles mencionados son jerárquicos. Es decir que para configurar el seguimiento en un nivel inferior, primero debe habilitar el seguimiento en un nivel superior. Por ejemplo, si desea configurar el seguimiento a nivel de tabla, primero debe habilitar el seguimiento a nivel de componente de base de datos. Lo mismo ocurre si restringe el seguimiento. Por ejemplo, si lo limita a solamente errores a nivel de los componentes de BD, no puede usar el seguimiento completo a nivel de tabla y de procedimientos almacenados.
MapForce le permite configurar las siguientes opciones de seguimiento:
Si se activa el seguimiento, las acciones que ejecute la asignación en la BD se almacenan en un archivo. Puede escoger entre registrar todas las acciones, solo los errores o no registrar nada.
|
Indica el archivo en el que se guarda la información del seguimiento una vez se ejecute la asignación. Esta ruta de acceso puede ser absoluta o relativa en función de si marca o no la casilla Guardar todas las rutas de acceso de archivos como relativas al archivo MFD. El archivo de seguimiento está en formato XML. Si prefiere que el archivo de registro esté en un formato distinto a XML, también puede asignar los datos que contiene a otro tipo de componente (p.ej., un archivo de texto, otra base de datos, etc.).
Estructura de un archivo de seguimientoAl habilitar el seguimiento para un componente de la base de datos aparece una estructura de seguimiento en la parte inferior del componente (ver imagen siguiente). Como se ve en la imagen anterior, el nodo superior de la estructura de seguimiento indica el nombre del archivo de seguimiento (Log.xml). El resto de la estructura de seguimiento se modela en función de las tablas de BD o de los procedimientos almacenados que participen en la asignación. En este ejemplo, el elemento superior tiene el mismo nombre que la base de datos. El elemento BookCatalog01 tiene dos elementos secundarios: Authors y trace:summary. El elemento Authors refleja la estructura de la tabla que se añade al componente de BD. El elemento trace:summary incluye un atributo errors, que informa del número de errores encontrados.
El elemento Authors tiene dos elementos secundarios: trace:values y trace:actions. La estructura trace:values muestra todas las columnas de la tabla de BD. Por defecto, todas las columnas están incluidas en el seguimiento, pero puede configurar de qué columnas se debe hacer seguimiento a nivel de archivo de BD (véase más arriba). En el caso de los procedimientos almacenados esta estructura muestra los parámetros del procedimiento almacenado.
El elemento trace:actions incluye informaciones sobre todas las acciones definidas para esta tabla de BD particular. En nuestro ejemplo, se han configurado dos acciones para la tabla Authors: Omitir si e Insertar restantes. Cada acción monitorizada tiene un atributo rows-affected que indica cuántas filas fueron afectadas por cada acción de BD. El elemento trace:error solo se rellena si ocurre un error. Este elemento tiene dos atributos: code y state. El texto del error y los valores del atributo vienen datos por el controlador de la base de datos, por lo que son distintos para diferentes bases de datos.
Archivo de seguimiento en el panel ResultadosPara obtener una vista previa del archivo de seguimiento, haga clic en la pestaña Resultados. Tenga en cuenta que el informe de seguimiento que se muestra en el panel Resultados sólo tiene fines informativos y no refleja los resultados reales de la ejecución. Para generar un informe de seguimiento real, debe ejecutar el script SQL desde el panel Resultados. A continuación se puede ver un ejemplo de un archivo de seguimiento:
<BookCatalog01> <Authors> <trace:values> <Author>Neil Gaiman</Author> <Website>www.neilgaiman.com</Website> </trace:values> <trace:actions> <trace:ignore/> </trace:actions> </Authors> <Authors>...</Authors> <Authors>...</Authors> <trace:summary errors="0"/> </BookCatalog01>
Para más información sobre el seguimiento, consulte el primer caso en el apartado Reversión de transacciones: Casos.
|
Guardar todas las rutas de acceso de archivos como relativas al archivo MFD
Cuando se habilita esta opción, MapForce guarda las rutas de los archivos que aparezcan en el cuadro de diálogo Configuración del componente como relativas a la ubicación del archivo de diseño de MapForce (.mfd). Use rutas relativas si quiere ejecutar la asignación con MapForce Server en un sistema operativo distinto. Consulte también Rutas de acceso relativas y absolutas.
Usar conexión de BD compartida en tiempo de ejecución
Esta opción le permite elegir si quiere que varios componentes de BD que usan la misma fuente y función de datos compartan también la misma conexión de base de datos. Por defecto, esta opción está deshabilitada ya que podría influir en el proceso de la asignación, sobre todo cuando se comparte la misma conexión entre uno o varios componentes de origen y un componente de destino.
Compartir la misma conexión a la base de datos permite resolver varios problemas, por ejemplo los bloqueos de tablas/filas, el aislamiento de transacciones y el número de conexiones al servidor (consulte los detalles a continuación).
•Cuando intenta actualizar una fila de una tabla mientras la está leyendo, puede ocurrir que se encuentre con un error de bloqueo de tabla/fila (dependiendo del proveedor). Puede evitar este problema con una conexión de base de datos compartida.
•Con la conexión compartida activada, se podrán leer filas ya modificadas que estén envueltas en una transacción. En cambio, con conexiones separadas, sólo son visibles los cambios comprometidos.
•La conexión compartida también ayuda a reducir el número de inicios de sesión en la base de datos, lo que le permitirá reducir el tiempo total de procesamiento de las asignaciones que tengan muchos componentes de BD que utilicen la misma fuente de datos. Es útil saberlo ya que el procedimiento de registro o de inicio de sesión en la BD puede llevar mucho tiempo, especialmente cuando las instancias del servidor de la nube están conectadas a una red lenta o cuando el servidor de la BD está ocupado.