Utilisation de l’outil jdbcinfo (Cognos Analytics)

L’outil jdbcinfo permet de tester si votre gestionnaire JDBC fonctionne correctement en dehors de Cognos Analytics. Vous installez un nouveau gestionnaire JDBC et vous souhaitez le tester avant de redémarrer Cognos Analytics par exemple.

Les exemples ci-dessous ont été exécutés à partir d’un environnement Cognos Analytics v12.1.1. On notera que depuis v12.1.0, c’est une version IBM Semeru version 17 que l’on retrouve dans Cognos Analytics.

Retrouver la liste des gestionnaires JDBC supportés avec IBM Cognos Analytics v12.1.x :

https://www.ibm.com/support/pages/dqm-testing-vendor-supported-client-driver-versions-each-cognos-analytics-121x-release

On va lancer java.exe depuis le dossier C:\Program Files\ibm\cognos\analytics\ibm-jre\jre\bin.

Pour vérifier que votre environnement java fonctionne depuis le dossier

C:\Program Files\ibm\cognos\analytics\ibm-jre\jre\bin, exécuter la commande :

java -version

Le résultat suivant apparaît :

java version "17.0.16" 2025-07-15
IBM Semeru Runtime Certified Edition 17.0.16.0 (build 17.0.16+8)
Eclipse OpenJ9 VM 17.0.16.0 (build openj9-0.53.0, JRE 17 Windows 11 amd64-64-Bit Compressed References 20250715_1011 (JIT enabled, AOT enabled)
OpenJ9   - 017819f167
OMR      - 266a8c6f5
JCL      - 39979e050c6 based on jdk-17.0.16+8)

On va définir une variable COGNOS_HOME à C:\Program Files\ibm\cognos\analytics avec la commande :

set COGNOS_HOME="C:\Program Files\ibm\cognos\analytics"

De la même façon, on va définir les variables d’environnement USERID et PASSWORD. Il s’agit du nom de l’utilisateur et de son mot de passe.

La ligne de commande doit ressembler à :

java -cp '*;.\jdbcinfo.jar' com.ibm.cognos.jdbcinfo.App [args] [action [parameters]]

avec les valeurs suivants pour [args] :

-u user ID
-p password
-d driver class
-U JDBC connection url

On va lancer java avec -cp (ou -classpath, c’est la même chose) pour indiquer ce que l’on veut charger :

  • Le gestionnaire JDBC pour Microsoft SQL Server : %COGNOS_HOME%\drivers\mssql-jdbc-12.10.1.jre11.jar;
  • Le .jar de jdbcinfo (programme Java) : %COGNOS_HOME%\webapps\p2pd\WEB-INF\lib\jdbcinfo.jar;
  • Un .jar supplémentaire pour quelques actions particulières : %COGNOS_HOME%\webapps\p2pd\WEB-INF\lib\JDBCAdaptorSDK.jar

On ajoute le programme à proprement parler : com.ibm.cognos.jdbcinfo.App

L’argument driver class (-d) contient la valeur com.microsoft.sqlserver.jdbc.SQLServerDriver.

Si l’on ajoute l’action ServerVersion, on obtient la ligne de commande suivante :

java -cp %COGNOS_HOME%\drivers\mssql-jdbc-12.10.1.jre11.jar;%COGNOS_HOME%\webapps\p2pd\WEB-INF\lib\jdbcinfo.jar;%COGNOS_HOME%\webapps\p2pd\WEB-INF\lib\JDBCAdaptorSDK.jar com.ibm.cognos.jdbcinfo.App -U "jdbc:sqlserver://LOCALHOST:51919;DATABASE=DW_FRA;trustServerCertificate=true;" -d com.microsoft.sqlserver.jdbc.SQLServerDriver -u %USERID% -p %PASSWORD% ServerVersion

La commande retourne la version du serveur de base de données :

database product name: Microsoft SQL Server
database major version: 16
database minor version: 0
database product version: 16.00.1160

La commande DriverVersion retourne la version du driver de base de données :

java -cp %COGNOS_HOME%\drivers\mssql-jdbc-12.10.1.jre11.jar;%COGNOS_HOME%\webapps\p2pd\WEB-INF\lib\jdbcinfo.jar;%COGNOS_HOME%\webapps\p2pd\WEB-INF\lib\JDBCAdaptorSDK.jar com.ibm.cognos.jdbcinfo.App -U "jdbc:sqlserver://LOCALHOST:51919;DATABASE=DW_FRA;trustServerCertificate=true;" -d com.microsoft.sqlserver.jdbc.SQLServerDriver -u %USERID% -p %PASSWORD% DriverVersion

On obtient le résultat suivant concernant le driver SQL Server :

driver major version: 12
driver minor version: 10
driver is JDBC compliant: true
driver version: 12.10.1.0
JDBC major version: 4
JDBC minor version: 3

La commande suivante exécute le code SQL :

java -cp %COGNOS_HOME%\drivers\mssql-jdbc-12.10.1.jre11.jar;%COGNOS_HOME%\webapps\p2pd\WEB-INF\lib\jdbcinfo.jar;%COGNOS_HOME%\webapps\p2pd\WEB-INF\lib\JDBCAdaptorSDK.jar com.ibm.cognos.jdbcinfo.App -U "jdbc:sqlserver://LOCALHOST:51919;DATABASE=DW_FRA;trustServerCertificate=true;" -d com.microsoft.sqlserver.jdbc.SQLServerDriver -u %USERID% -p %PASSWORD% Sql 1 "SELECT TOP (5) [City],[Revenue]  FROM [RevenueByCity]"

La commande SaveOptions c:\temp\jdbcinfo.txt permet d’enregistrer les options de connexion dans un fichier jdbcinfo.txt. Attention, ce fichier contient des informations directement lisibles telles que :

  • user (-u)
  • password (-p)
  • driverClass (-d)
  • URL (-U)

On obtient donc la commande suivante :

java -cp %COGNOS_HOME%\drivers\mssql-jdbc-12.10.1.jre11.jar;%COGNOS_HOME%\webapps\p2pd\WEB-INF\lib\jdbcinfo.jar;%COGNOS_HOME%\webapps\p2pd\WEB-INF\lib\JDBCAdaptorSDK.jar com.ibm.cognos.jdbcinfo.App -U "jdbc:sqlserver://LOCALHOST:51919;DATABASE=DW_FRA;trustServerCertificate=true;" -d com.microsoft.sqlserver.jdbc.SQLServerDriver -u %USERID% -p %PASSWORD% SaveOptions c:\temp\jdbcinfo.txt

Remarque : Conserver le fichier jdbcinfo.txt dans un endroit sécurisé car il contient des données non chiffrées.

Cette commande possède un équivalent chargement des options précédemment enregistrées qui est LoadOptions :

java -cp %COGNOS_HOME%\drivers\mssql-jdbc-12.10.1.jre11.jar;%COGNOS_HOME%\webapps\p2pd\WEB-INF\lib\jdbcinfo.jar;%COGNOS_HOME%\webapps\p2pd\WEB-INF\lib\JDBCAdaptorSDK.jar com.ibm.cognos.jdbcinfo.App LoadOptions c:\temp\jdbcinfo.txt

Voici la liste de toutes les autres actions possibles :

AttributesExécute DatabaseMetadata.getAttributes sur une connexion indiquée
CatalogsExécute DatabaseMetadata.getCatalogs sur une connexion indiquée
ConnectionCatalogPas d’informations supplémentaires
ConnectionPropertiesExécute DatabaseMetadata.getPropertyInfo sur une connexion indiquée
ConnectionSchemaPas d’informations supplémentaires
DatabaseMetadataInterfaceTeste l’objet obtenu par Connection.getMetaData pour verifier la conformité avec la spécification JDBC de l’interface DatabaseMetadata.
DriverVersionRetourne la version du driver JDBC utilisé
ExportedKeysExécute DatabaseMetadata.getExportedKeys sur une connexion indiquée
ExtraInformationAffiche des informations supplémentaires (JDBCAdaptorSDK est nécessaire)
FactoryNamesAffiche le nom d’usine de l’adaptateur JDBC. (JDBCAdaptorSDK est nécessaire)
FunctionColumnsExécute DatabaseMetadata.getFunctionColumns sur une connexion indiquée
FunctionsExécute DatabaseMetadata.getFunctions sur une connexion indiquée
GenerateCertificatePas d’informations supplémentaires
ImportedKeysExécute DatabaseMetadata.getImportedKeys sur une connexion indiquée
IndexInfoExécute DatabaseMetadata.getIndexInfo sur une connexion indiquée
KerberosConnectionPermet d’établir une connexion sécurisée Kerberos
LoadOptionsPermet de charger un fichier <file name>
PrimaryKeysPas d’informations supplémentaires
ProcedureColumnsExécute DatabaseMetadata.getProcedureColumns sur une connexion indiquée
ProceduresExécute DatabaseMetadata.getProcedures sur une connexion indiquée
SaveOptionsPermet d’enregistrer un fichier <file name>
SchemasExécute la version JDBC v3 de DatabaseMetadata.getSchemas sur une connexion indiquée
SchemasV4Exécute la version JDBC v4 de DatabaseMetadata.getSchemas sur une connexion indiquée
SecureGatewayPas d’informations supplémentaires
ServerVersionRetourne la version du logiciel de base de données
Sqlpermet d’exécuter une commande SQL
SubTypeRetourne le sous-type (s’il y en a un) qu’IBM Cognos assigne à la connexion indiquée
SynonymsPas d’informations supplémentaires
TableTypesExécute DatabaseMetadata.getTableType sur une connexion indiquée
TablesExécute DatabaseMetadata.getTable sur une connexion indiquée
TypeInfoExécute DatabaseMetadata.getTypeInfo sur une connexion indiquée
UDTExécute DatabaseMetadata.getUDT sur une connexion indiquée
VerbosePermet de retourner un plus grand nombre de message, notamment les informations de connexion en clair

Consultez la documentation pour une explication plus complète à l’adresse :

https://www.ibm.com/docs/en/cognos-analytics/12.1.x?topic=problems-using-jdbcinfo-tool

guest
0 Commentaires
Le plus ancien
Le plus récent
Commentaires en ligne
Afficher tous les commentaires