Uso de bloques de comandos

Puede utilizar los comandos de base de datos de los orígenes de datos Oracle (OR), DB2 (D2), Microsoft SQL Server (SS) y Teradata (TD).

Utilice el asistente de conexión para especificar los comandos de base de datos que se ejecutan cuando se abre o se cierra una sesión o conexión de Oracle, o cuando se abre una sesión de DB2, Microsoft SQL Server o Teradata.

Por ejemplo, utilice un comando de base de datos para configurar conexiones proxy (consulte Ejemplo: utilizar bloques de comandos para conexiones proxy) o bases de datos privadas virtuales para una base de datos de Oracle (consulteEjemplo: utilizar bloques de comandos para bases de datos privadas virtuales de Oracle).

Puede utilizar comandos para ejecutar comandos SQL nativo cuando abra una sesión, como por ejemplo para ejecutar un procedimiento almacenado.

Situaciones en las que se utilizan los bloques de comandos

Los bloques de comandos se ejecutan mientras el software de IBM® Cognos abre y cierra conexiones de base de datos o una sesión en una conexión. Puede utilizar las funciones de macro y las variables de sesión de IBM Cognos para parametrizar los comandos.

Como administrador, debe saber cuándo se ejecuta un bloque de comandos para una conexión de base de datos. Se recomienda definir las sentencias de base de datos en un bloque de comandos para abrir sesión. Las conexiones abiertas con bases de datos se ejecutan con menor frecuencia dado que IBM Cognos agrupa y reutiliza las conexiones de base de datos. Utilice bloques de comandos para abrir sesión si el contexto de aplicación de una conexión de base de datos cambia con frecuencia.

Si, al probar, se agota el tiempo de conexión de base de datos, ello no indica necesariamente que se necesite otra conexión abierta con la base de datos. Tenga en cuenta las preguntas siguientes al decidir con qué frecuencia utilizar bloques de comandos para abrir bases de datos:

  • ¿Cuáles son los valores de la agrupación de conexiones de base de datos especificados para los servidores de informes en el archivo CQEConfig.xml?
  • ¿Cuenta la base de datos con unos valores de tiempo de espera de conexión inactiva agresivos?
  • ¿Cuenta el motor de consulta con unos valores de tiempo de espera de conexión inactiva agresivos?
  • ¿El periodo entre solicitudes es mayor que los valores de tiempo de espera?
  • ¿Se ha enrutado alguna solicitud a distintos servidores de informes que deben crear nuevas conexiones?

Ejemplo de interacción entre bloques de comandos

Los comandos de base de datos se incluyen en bloques de comandos que se formatean con XML. En el siguiente diagrama se muestra un ejemplo de la interacción entre cuatro bloques de comandos, teniendo en cuenta que no existe una conexión con la base de datos.

Diagrama que muestra un ejemplo de la interacción entre los cuatro bloques de comandos disponibles, empezando por el momento en que llega una consulta para el usuario 1

Consideraciones

  • No se pueden probar los bloques de comandos con las conexiones mediante el enlace Probar la conexión en la página de la cadena de conexión. Si tiene instalado Software Development Kit, asegúrese de que el código XML se valide en el archivo de esquema denominado ubicación_c10/webapps/p2pd/WEB-INF/classes/DataSource.xsd.
  • La estructura de los comandos es la misma para todos los orígenes de datos. Sin embargo, los comandos de base de datos específicos pueden variar en función de la base de datos que se utilice. En esta sección, en los ejemplos se utilizan comandos de Oracle y DB2.
  • Los comandos de los bloques son específicos del proveedor y deben incluirse en una etiqueta <sqlCommand>.
  • En función de los valores, puede que el motor de consulta abra nuevas conexiones con mayor rapidez que si se produjera en una aplicación cargada normalmente. Esto puede dar la impresión equivocada de que la información se está restableciendo para cada solicitud ejecutada.