2009-08-14 7 views
3

Ich habe eine ASP.NET-Anwendung, die unter Windows 2003 ausgeführt wird und mit einer DB2-Datenbank kommunizieren muss, die sich auf dem Mainframe befindet. Wir haben DB2 Client Driver v9.5 auf unserem Server installiert, damit die Anwendung die Verbindung herstellen und mit der Datenbank arbeiten kann. Die Verbindungszeichenfolge für die Verbindung mit der Datenbank enthält den Benutzernamen und das Kennwort. Es handelt sich nicht um eine vertrauenswürdige Verbindung.DB2 Client v9.5 unter Win 2003 Lange Verbindungszeit erforderlich

Um klar zu sein, wir die DB2 .NET-Provider verwenden und nicht die OLE DB, ODBC etc.

Was ist wir bemerken, dass, wenn die ASP.NET-Anwendung versucht, dass die erste Verbindung zu machen DB2 dauert sehr lange, ungefähr 20 Sekunden. Nach einem Gespräch mit einem unserer residenten DBAs wurde festgestellt, dass der DB2-Treiber versucht, das Benutzerkonto, das für die Verbindung mit der Datenbank verwendet wird, gegen Active Directory zu authentifizieren.

Ihre Lösung bestand darin, auf dem Win2003-Server ein lokales Benutzerkonto mit demselben Namen wie das Benutzerkonto zu erstellen, das für die Verbindung verwendet wird. Das lokale Benutzerkonto muss kein Mitglied von acl-Gruppen sein und kann deaktiviert werden.

Ich habe diese Lösung versucht, und zu meinem Erstaunen hat es tatsächlich funktioniert. Die Verbindung wurde innerhalb von Millisekunden hergestellt. Was mich beschäftigt, ist, dass dieses "Feature" wie ein Fehler im DB2-Treiber erscheint, und alle neuen Versionen dieses Treibers könnten tatsächlich verhindern, dass dies wieder funktioniert.

Weiß jemand, ob es eine tatsächliche Einstellung im DB2-Treiber gibt, die wir festlegen könnten, damit er nicht versucht, sich bei Active Directory zu authentifizieren? Ich würde mich mit dieser Einstellung wohler fühlen, als mich auf einen Fehler in ihrem Authentifizierungsalgorithmus zu verlassen.

Dank

BTW, die gleiche Frage auf Server Fehler jedoch gefragt wurde, hat niemand in der Lage gewesen, es zu beantworten.

https://serverfault.com/questions/53971/db2-client-v9-5-on-win-2003-taking-long-time-to-establish-connection

Antwort

1

Unser DBA hat gerade die richtige Lösung gefunden, und es funktioniert, ohne diesen lokalen Benutzer hinzuzufügen.

Im Grunde geht es darum, wenn Sie die Verbindung auf dem DB2-Anwendungsserver katalogisieren, müssen Sie etwas wie "Authentication Server" angeben. Dies verhindert, dass der DB2-Treiber gegen das Active Directory authentifiziert wird.

Ich weiß, die Antwort ist vage, aber das ist das Beste, was ich aus ihm herausholen konnte.

1

DB2 hat kein Konzept einer „Datenbank-only“ Benutzer-ID und wird immer das Betriebssystem-Authentifizierung durchzuführen verwenden. Wenn Ihre Betriebssystemauthentifizierung über Active Directory erfolgt, wird sich auch DB2 authentifizieren.

Ich denke, Ihr DBA hat Ihnen die richtige Lösung gegeben, indem Sie die Einstellungen/Konten im Betriebssystem ändern, um die Authentifizierung zu vereinfachen.

Ich glaube nicht, dass dies ein Fehler im Treiber ist.

Verwandte Themen