Im Cognos Analytics SDK gibt es ein Beispiel mit dem Namen Custom Authentication Provider, das die Cognos-Authentifizierung in einem Java-Programm durchführt. * Siehe unten für die benutzerdefinierte Authentifizierung. ** Einrichtungsverfahren für die benutzerdefinierte Cognos-Authentifizierung ** https://qiita.com/shinyama/items/1f9c7842a3966233a5d7
In diesem Beispielprogramm sind kürzlich einige Probleme mit endlosen Verbindungen zur Authentifizierungsquellendatenbank aufgetreten, die viel Db2-Speicher belegt.
Da dieses Programm als Beispiel bereitgestellt wird, wird davon ausgegangen, dass die Verwendung in der Produktionsumgebung auf eigenes Risiko erfolgt. Es werden jedoch viele Projekte tatsächlich verwendet, und ich habe Probleme mit demselben Problem. Ich denke, es gibt viele Projekte, also werde ich sie veröffentlichen.
In queryImpl () des Programms QueryUtil.java muss der folgende Teil "<-add" hinzugefügt und die Anweisung und das Ergebnisset geschlossen werden. Wenn Sie die Verbindung im Programm explizit schließen, tritt ein Authentifizierungsfehler auf. Schließen Sie sie daher nicht explizit. Nicht mehr benötigte Verbindungen werden jedoch zum Zeitpunkt von Cognos 'integriertem WebSphere Liberty GC freigegeben.
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(); <-hinzufügen
}
statement.close(); <-hinzufügen
}
catch (final SQLException ex)
{
throw new UnrecoverableException("SQL Exception", "An exception was caught while querying the authentication database.");
}
<2018/6/29 postscript> Zusätzlich zu der obigen Änderung des SDK-Programms stellte ich fest, dass durch Ändern der in Cognos integrierten GC-Richtlinie von WebSphere Liberty die DB-Sitzung freigegeben wird, bevor sie durch effizientere GC in großer Anzahl akkumuliert wird. Deshalb habe ich sie hinzugefügt. Stellen.
Informationen zum Ändern des GC für Linux finden Sie in der folgenden Datei. /opt/ibm/cognos/analytics/bin64/bootstrap_wlp_linuxi38664.xml
Ändern Sie an dieser Stelle das Gencon und starten Sie Cognos neu. <param condName="${java_vendor}" condValue="IBM">-Xgcpolicy:gencon</param>
In diesem Fall habe ich es in "Balanced" geändert. https://www.ibm.com/developerworks/jp/websphere/library/was/was8_gc/2.html
Wenn Sie Restorable JDBC Sample und JDBC Sample mit benutzerdefinierter Authentifizierung verwenden möchten, beachten Sie bitte diesen Artikel.
Recommended Posts