Leak with Oracle 8.1.7

dhervieux

Member
We have found a leak when we create a new session with Oracle Client 8.1.7. If we use Oracle Client 8.1.6 we don't have the leak. We use Oracle 8.1.7 server. If we look at the Heap status we don't see the leak however if we track the process in the Task Manager, the memory usage increases each time we create a session and we free it. Sleuth QA is unable to find any leak. Do you have an idea ?

procedure TForm1.Button1Click(Sender: TObject);
const
MAX_ITER = 100;
var
i : Integer;
_session : TOracleSession;
_heapStatus : THeapStatus;
_initialHeapStatus : THeapStatus;
_finalHeapStatus : THeapStatus;
begin
_initialHeapStatus := GetHeapStatus;
for i := MAX_ITER-1 downto 0 do
begin
edtIter.Text := IntToStr(i);
edtIter.Update;
_session := TOracleSession.Create(nil);
_session.LogonUsername := MYUSERNAME';
_session.LogonPassword := MYPASSWORD';
_session.LogonDatabase := 'DEVSVR';
_session.LogOn;
_session.Free;
_heapStatus := GetHeapStatus;
ShowHeapStatus(_heapStatus);
end;
_finalHeapStatus := GetHeapStatus;
edtDiffTotalAddrSpace.Text := IntToStr(_finalHeapStatus.TotalAddrSpace-_initialHeapStatus.TotalAddrSpace);
edtDiffTotalAllocated.Text := IntToStr(_finalHeapStatus.TotalAllocated-_initialHeapStatus.TotalAllocated);
MessageBeep(0);
end;

thank you

David
 
Unfortunately Oracle Net has some (minor) memory leaks when connecting/disconnecting a session. This occurs within the Oracle Net libraries, which is the reason why Sleuth can't find any leaks.

It shouldn't be more than a few 100 bytes for each connection though...

------------------
Marco Kalter
Allround Automations
 
Do yu have a bug ID from Oracle, because we called Oracle and they said that it's in the third party component... so we want to be sure that it's in Oracle Client

thank you
 
There are quite a few Oracle bug reports concerning memory leaks, and many are of course version specific. It might be bug 1454173.

------------------
Marco Kalter
Allround Automations
 
Back
Top