Uso de contexto de aplicación en SQL dinámico
Los administradores de servidores de bases de datos pueden registrar y analizar la carga de trabajo de SQL dinámico generada por el software de IBM Cognos.
Como administrador de IBM® Cognos, puede definir una cadena personalizada que incluya un contexto de aplicación que se añada entre marcadores de comentario al SQL generado por la aplicación. Puede utilizar literales, macros y variables de sesión, por ejemplo nombres de usuario, nombres de servidor, rutas de acceso completas del informe, etc., para personalizar el comentario generado por el software de Cognos.
El administrador de la base de datos debe comprobar si su cliente de base de datos quita comentarios de las sentencias antes del envío al servidor. Esta opción probablemente puede configurarse; consulte al proveedor del cliente de base de datos.
Al utilizar las variables de sesión aplicables, puede configurar el formato de la cadena para productos y herramientas específicos que pueden extraer comentarios del SQL dinámico. El software de IBM Cognos incluye comentarios en cualquier SQL dinámico generado para un sistema de gestión de base de datos relacional (RDBMS), siempre que el proveedor soporte esta funcionalidad.
Utilice el archivo CQEConfig.xml.sample incluido junto con el producto para personalizar las especificaciones de la cadena. La macro de este archivo muestra las entradas predeterminadas que el software de IBM Cognos utiliza para generar los comentarios. No obstante, usted también puede añadir entradas adicionales.
En el siguiente ejemplo se muestran los tipos de variables de sesión que puede especificar en la macro en el archivo CQEConfig.xml.sample:
<configuration company="Cognos" version="0.1" rendition="cer2">
<component name="CQE">
<section name="QueryEngine">
<entry name="GenerateCommentInNativeSQL" value="1"/>
<!-- ( default(off)=0, on=1) -->
<entry name="GenerateCommentInCognosSQL" value="1"/>
<!-- ( default(off)=0, on=1) -->
<!-- The content of the comments is controlled with two entries, their
defaults are specified in the value attribute -->
<entry name="NativeCommentMacro" value="# 'NC user=' + $account.defaultName
+ 'report=' + $report + 'start=' + $startTime + 'modelPath=' +
$modelPath + 'reportPath=' + $reportPath + ' queryName=' + $queryName
+ ' REMOTE_ADDR=' + $REMOTE_ADDR + 'HTTP_HOST=' + $HTTP_HOST + 'SERVER_NAME='
+ $SERVER_NAME +' requestID=' + $requestID + 'sessionID=' + $sessionID
#"/>
<entry name="CognosCommentMacro" value="# 'CC user=' + $account.defaultName
+ 'report=' + $report + 'start=' + $startTime + 'modelPath=' +
$modelPath + 'reportPath=' + $reportPath + ' queryName=' + $queryName
+ ' REMOTE_ADDR=' + $REMOTE_ADDR + 'HTTP_HOST=' + $HTTP_HOST + 'SERVER_NAME='
+ $SERVER_NAME +' requestID=' + $requestID + 'sessionID=' + $sessionID
#"/>
</section>
</component>
</configuration>
En tiempo de ejecución, la macro utilizada en el ejemplo anterior añadiría el siguiente comentario al SQL generado automáticamente, o al SQL nativo:
/* CC user=Anonymous report=REPORT1
start=2008-08-28T01:59:35.403Z modelPath=/content/package
[@name='New Package']/model[@name='model']
reportPath=/content/package[@name='New Package']/report[@name='REPORT1']
queryName=Query1 REMOTE_ADDR=127.0.0.1 HTTP_HOST=localhost
SERVER_NAME=localhost
requestID=wq2lshM9jGhqdMj9h92MqlqvdMlhyMlGq9lyG9sq
sessionID=010:0d159165-745a-11dd-ac9f-b741aeca4631:2789499633
*/
select distinct
ALL_TIME.CALENDAR_WEEKDAY as CALENDAR_WEEKDAY
from
EAPPS..EAPPS.ALL_TIME ALL_TIME
No toda la información contenida en el comentario generado es significativa en todas las situaciones. La información de identificador de sesión y solicitud proporciona un enlace con el recurso de auditoría, información de rendimiento de perfQFS, y otros rastreos en IBM Cognos. Sin embargo, el nombre de una consulta en un informe y el propio informe pueden ser significativos, por ejemplo, cuando un usuario está realizando un análisis o consulta aleatorios en contraposición a la ejecución de un informe, análisis o consulta guardados.
De forma predeterminada, un usuario anónimo no puede ver todas las variables de sesión en los comentarios generados.
Adición de contexto de aplicación para el modo de consulta dinámica
Para utilizar comentarios en SQL para el modo de consulta dinámica puede configurar el archivo xqe.config.xml, ubicado en ubicación_c10/configuration.
Se editan los elementos siguientes en el elemento <queryPlanning>.
<generateCommentsInNativeSQL enabled="true"/>
<NativeCommentMacro value="#'user=' + $account.defaultName + ' reportPath='
+ $reportPath +' queryName=' + $queryName + ' REMOTE_ADDR=' + $REMOTE_ADDR
+ ' SERVER_NAME=' + $SERVER_NAME + ' requestID=' + $requestID#"/>