Dans le SDK de Cognos Analytics, il existe un exemple appelé Fournisseur d'authentification personnalisé qui effectue l'authentification Cognos dans un programme Java. * Voir ci-dessous pour l'authentification personnalisée. ** Procédure de configuration de l'authentification personnalisée Cognos ** https://qiita.com/shinyama/items/1f9c7842a3966233a5d7
Dans cet exemple de programme, j'ai récemment rencontré des problèmes avec des connexions sans fin à la base de données source d'authentification, qui consomme beaucoup de mémoire Db2.
Étant donné que ce programme est fourni à titre d'exemple, il est fourni en supposant qu'il est à vos risques et périls de l'utiliser dans l'environnement de production, mais il existe de nombreux projets qui sont réellement utilisés et je suis préoccupé par le même problème. Je pense qu'il y a beaucoup de projets, donc je les posterai.
Dans queryImpl () du programme QueryUtil.java, il est nécessaire d'ajouter la partie "<-add" suivante et de fermer l'instruction et le resultSet. En ce qui concerne la connexion, si vous la fermez explicitement dans le programme, une erreur d'authentification se produira, alors ne la fermez pas explicitement. Cependant, les connexions qui ne sont plus nécessaires seront libérées au moment de WebSphere Liberty GC intégré à Cognos.
try (final PreparedStatement statement = connection.prepareStatement(sql))
{
for (int i = 0; i < parameters.length; ++i)
statement.setObject(i + 1, parameters[i]);
try (final ResultSet resultSet = statement.executeQuery())
{
if (includeMetadata)
data.add(QueryUtil.getMetaDataRow(resultSet));
while (resultSet.next())
data.add(QueryUtil.getDataRow(resultSet));
resultSet.close(); <-ajouter à
}
statement.close(); <-ajouter à
}
catch (final SQLException ex)
{
throw new UnrecoverableException("SQL Exception", "An exception was caught while querying the authentication database.");
}
<PostScript du 29/06/2018> En plus de la modification du programme SDK ci-dessus, j'ai constaté que la modification de la politique GC de WebSphere Liberty intégrée à Cognos libère la session de base de données avant qu'elle ne s'accumule en grand nombre par un GC plus efficace, je l'ai donc ajoutée. Mettre.
Pour Linux, comment changer le GC se trouve dans le fichier suivant. /opt/ibm/cognos/analytics/bin64/bootstrap_wlp_linuxi38664.xml
Modifiez le gencon à ce stade et redémarrez Cognos. <param condName="${java_vendor}" condValue="IBM">-Xgcpolicy:gencon</param>
Dans ce cas, je l'ai changé en «équilibré». https://www.ibm.com/developerworks/jp/websphere/library/was/was8_gc/2.html
Si vous souhaitez utiliser les exemples JDBC restaurables et JDBC avec une authentification personnalisée, n'oubliez pas cet article.
Recommended Posts