Avatar billede nightware Nybegynder
14. marts 2005 - 11:53 Der er 2 kommentarer

MS SQL forbindelse: Connection Pooling problem

Hej

Jeg har problemer med at få Connection Pooling til at fungere.
Jeg bruger OLE DB til at skabe forbindelse til MS SQL fra Delphi.

Bemærk at det virker på windows 2000. Problemet findes kun på på windows XP, men både på SP1 og SP2.

Her følger et kode eksempel der illustrerer problemet:

------------------
Jeg opretter en form med:

    Connection1: TADOConnection;
    Table1: TADOTable;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    Button1: TButton;
    Button2: TButton;

og skriver følgende kode:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Table1.Active:=not Table1.Active;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  i: integer;
begin
  for i:=0 to 9 do
    Button1Click(nil);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Connection1.Connected:=true;
end;

Min connection string ser således ud:

Provider=SQLOLEDB.1;
Password=MyPassword;
Persist Security Info=False;
User ID=MyUID;
Initial Catalog=MyCat;
Data Source=MyDB;
Network Library=DBMSSOCN;
Use Procedure for Prepare=1;
Auto Translate=True;
Packet Size=4096;
Workstation ID=MyPC;
Use Encryption for Data=False;
Tag with column collation when possible=False
------------------

Med denne kode oprettes en forbinldelse via tcp/ip, og den opbevares i connection poolen. Mit problem er at den ikke genbruges.

Når jeg lukker table (men ikke connection) går tcp/ip porten i "TIME_WAIT" mode. Det burde den så vidt jeg ved ikke gøre, for TIME_WAIT mode bruges til at vente på at al igangværende trafik er afsluttet før porten kan genbruges (af fx en anden applikation).

Jeg bruger "Active Ports"  (http://www.tucows.com/preview/213738.html) til at overvåge mine tcp/ip porte. Med dette værktøj er problemet let synligt med min lille demo ovenfor.



Jeg kører Delphi 7 på
Microsoft SQL Server  2000 - 8.00.760 (Intel X86)
    Dec 17 2002 14:22:05
    Copyright (c) 1988-2003 Microsoft Corporation
    Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 2)
MDAC version 2.8
Avatar billede borrisholt Novice
30. marts 2005 - 15:29 #1
har du overvejer DBExpress ?

Jens Borrisholt
Avatar billede nightware Nybegynder
06. april 2005 - 14:41 #2
Problemet findes i et stort system. Jeg ikke har mulighed for at ændre det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester