Einzelnen Beitrag anzeigen

Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#1

TADOConnection optimale Einstellungen für Mehrfachverwendung

  Alt 25. Nov 2015, 22:35
Datenbank: MS SQL • Version: 2008 • Zugriff über: ADO
Moin zusammen,

ich habe eine Anwendung geschrieben, die Computerdaten ermittelt und diese in eine Datenbank (Cluster) speichert. Dies geschieht während des Login des Benutzers.

Derzeit sind es ca. 6700 Benutzer in unserer Domäne. Der Login ist zwischen 06:30 und 08:30. Es kommt wahrscheinlich vermehrt vor, dass zu bestimmten Zeit viele Benutzer mit Hilfe der Anwendung ihre Daten in die DB schreiben.

Die Anwendung verwendet einen SQL Benutzer, um die Daten in der DB zu speichern. Nun kommt es vermehrt dazu, dass im Server Log Einträge zu finden sind, dass der Login des SQL Benutzers nicht möglich ist, da das Passwort nicht richtig ist. Das kann nicht sein. Alle haben das gleich, da sie nur die eine Anwendung benutzen.

Max. Verbindungen des SQL Servers sind 32767 gesetzt.

Nun ist meine Überlegung, dass ich meine TADOConnection besser konfigurieren muss.

Was wären die besten Einstellungen in Bezug auf die oben geschilderte Situation.
Code:
TADOConnection - aktuelle Werte:
- CommandTimeout : 30
- ConnectOptions : coConnectUnspecified
- CursorLocation : clUseCLient
- IsolationLevel : ilCursorStability
- KeepConnection : True
- LoginPrompt    : False
- Mode           : cmReadWrite
- Provider       : SQLOLEDB.1
Was kann ich optimieren?

Hier mein Code, um die Verbindung aufzubauen.
Delphi-Quellcode:
function Tfrm_main.ConnectToSQLServer : Boolean;
begin
 Result := True;

 SQLConnection.Connected := False;
 if IsHostAlive(dbserver) = False then
 begin
   CreateLogFile('SQL Server ' + dbserver + ' is unreachable.',LogPath,0);
   Result := False;
   Exit;
 end;

 try
   // SQL Authentifizierung
   if dbinstance = 'then
     SQLConnection.ConnectionString := 'Provider=SQLOLEDB.1;Data Source='+dbserver+';Initial Catalog='+db+';User ID='+sqluser+';Password='+sqlpassword+';Persist Security Info=false'
   else
     SQLConnection.ConnectionString := 'Provider=SQLOLEDB.1;Data Source='+dbserver+'\'+dbinstance+';Initial Catalog='+db+';User ID='+sqluser+';Password='+sqlpassword+';Persist Security Info=false';
   SQLConnection.Connected := True;
 except
   CreateLogFile('Database Connection has been terminated with an unexpected error.',LogPath,0);
   Result := False;
   SQLConnection.Connected := False;
   Exit;
 end;

 if SQLConnection.Connected = False then
 begin
   CreateLogFile('Database Connection failed. Please contact your local Administrator',LogPath,0);
   Result := False;
   Exit;
 end;
end;
  Mit Zitat antworten Zitat