ORA-03127

Discussion of open issues, suggestions and bugs regarding usage of dbExpress drivers for Oracle in Delphi and C++Builder
Post Reply
Zdenek Vasku

ORA-03127

Post by Zdenek Vasku » Wed 23 Mar 2005 11:47

Hello,

we are using dbexpress driver without OCI (plain NET conn via TCP/IP). Since 2.50.1 version we have problem in our ISAPI DLL's. After some time dll show ORA-03127 error. In version 2.10 all was ok.

Our app is built in D9 UP2 Win32. In other application (single threaded) all is ok.

Do you have some suggestions on this problem?

Thanks

PS: Oracle 9i

Paul
Posts: 725
Joined: Thu 28 Oct 2004 14:06

Post by Paul » Wed 23 Mar 2005 16:02

What operation generates this error? What field types do you use during this operation?
Send us please small demo project to demonstrate the problem to DbxOda support address
and include script to create server objects.

Zdenek Vasku

Post by Zdenek Vasku » Thu 24 Mar 2005 00:37

I'm working on example - it's not easy to reproduce it on small example.

Now I can add some facts only:

operation is select ... from (select .. from ...)
no parameters
field types are only number and varchar2

I think this problem occurs when first thread execute sql (select ..) and in the same time execute sql another thread. All these threads are in DLL loaded by dllhost.exe. COM is initialized with MULTITHREAD option.

Thanks a lot
Zdenek

Zdenek Vasku

Post by Zdenek Vasku » Wed 01 Jun 2005 15:12

I have a little more informations on this problem.

Error ORA-03127 always occur in ISAPI DLL application running on ISS 5.1 or 6.0.

Thanks
Zdenek

Zdenek Vasku

Post by Zdenek Vasku » Thu 02 Jun 2005 20:48

I think, I have found the problem. This problem is generaly related to dbexpress in VCL. It's not a problem of CoreLab dbexpress driver.

TSQLDataset internally keeps link to TSQLConnection even when SQLConnection property is set to nil. TSQlDataset must be destroyed and than all works ok.

My problem was that I have created pool of connections when my app starts and multiple running threads uses these connections. Thread uses datamodule with TSQLQuery, which is not destroyed after releasing of TSQLConnection back to pool. So TSQLQuery still use TSQLConnection assigned to another thread.

Zdenek

Post Reply