![]() | Products |
| Home » Technical Support » ElevateDB Technical Support » Incident Reports » Incident Reports Addressed for Version 2.03 » View Incident Report |
| Reported By: Krisztian Kepes Reported On: 5/17/2010 For: Version 2.03 Build 13 |
Schedule a job to run on the ElevateDB Server every minute, and then run the following code from a client:
unit stressconnectmain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, edbcomps, contnrs, edbutilcomps;
type
TConnectThread = class(TThread)
private
FConnectSession: TEDBSession;
FConnectDatabase: TEDBDatabase;
FConnectTable: TEDBTable;
FErrorMessage: string;
procedure Initialize;
procedure Reset;
procedure IncNumber;
procedure DecNumber;
procedure LogError;
protected
procedure Execute; override;
end;
TForm1 = class(TForm)
Button1: TButton;
NumConnectionsEdit: TEdit;
Label1: TLabel;
Label2: TLabel;
Memo1: TMemo;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
ThreadList: TObjectList;
TotalThreads: Integer;
public
procedure IncNumber;
procedure DecNumber;
procedure LogError(const ErrorMessage: string);
end;
var
Form1: TForm1;
implementation
procedure TConnectThread.Initialize;
begin
Synchronize(IncNumber);
FConnectSession:=TEDBSession.Create(nil);
with FConnectSession do
begin
SessionType:=stRemote;
SessionName:='StressTest_'+IntToStr(ThreadID);
LoginUser:='Administrator';
LoginPassword:='EDBDefault';
end;
FConnectDatabase:=TEDBDatabase.Create(nil);
with FConnectDatabase do
begin
SessionName:=FConnectSession.SessionName;
DatabaseName:='StressTestDB';
Database:='Test';
end;
FConnectTable:=TEDBTable.Create(nil);
with FConnectTable do
begin
SessionName:=FConnectSession.SessionName;
DatabaseName:='StressTestDB';
TableName:='customer';
end;
end;
procedure TConnectThread.Reset;
begin
FreeAndNil(FConnectTable);
FreeAndNil(FConnectDatabase);
FreeAndNil(FConnectSession);
Synchronize(DecNumber);
end;
procedure TConnectThread.IncNumber;
begin
Form1.IncNumber;
end;
procedure TConnectThread.DecNumber;
begin
Form1.DecNumber;
end;
procedure TConnectThread.LogError;
begin
Form1.LogError(FErrorMessage);
end;
procedure TConnectThread.Execute;
begin
Initialize;
try
Sleep(Random(100));
try
with FConnectTable do
begin
Open;
First;
while (not EOF) do
Next;
end;
except
on E: Exception do
begin
FErrorMessage:=E.Message;
Synchronize(LogError);
end;
end;
Sleep(Random(500));
finally
Reset;
end;
end;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
ThreadList:=TObjectList.Create;
end;
procedure TForm1.FormDestroy(Sender: TObject);
var
I: Integer;
begin
for I:=ThreadList.Count-1 downto 0 do
begin
with TConnectThread(ThreadList[I]) do
begin
FreeOnTerminate:=False;
Terminate;
WaitFor;
end;
ThreadList.Delete(I);
end;
FreeAndNil(ThreadList);
end;
procedure TForm1.IncNumber;
begin
Inc(TotalThreads);
Label2.Caption:=IntToStr(TotalThreads);
Label2.Update;
end;
procedure TForm1.DecNumber;
begin
Dec(TotalThreads);
Label2.Caption:=IntToStr(TotalThreads);
Label2.Update;
if (TotalThreads=0) then
Button1Click(nil);
end;
procedure TForm1.LogError(const ErrorMessage: string);
begin
Memo1.Lines.Add(ErrorMessage);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
TempCount: Integer;
TempThread: TConnectThread;
begin
TempCount:=StrToInt(NumConnectionsEdit.Text);
I:=0;
while (I < TempCount) do
begin
TempThread:=TConnectThread.Create(True);
ThreadList.Add(TempThread);
with TempThread do
begin
Priority:=tpLower;
Resume;
end;
Inc(I);
end;
end;
end.This web page was last updated on Wednesday, April 8, 2026 at 04:38 AM | Privacy Policy © 2026 Elevate Software, Inc. All Rights Reserved Questions or comments ? |

