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
ORA-03127
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
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
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
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