OracleSessionPool and Oracle 10g client

Julio

Member²
Hi there.
First of all, I'll say I am using Delphi 6, DOA 4.0.7.1 and Oracle 9.2.0.8.0
I've been having some problems running my application on Citrix. Randomly, I get the message
Code:
EAccessViolation: Access violation at address 00000000. Read of address 00000000
and the program shutdown.
At this forum I've found that the problem could be caused by an Oracle 9.2.0.8 bug, so I've tried to change the Oracle client to 10g. However, now I get the next message:

Code:
TOracleSessionPool: Invalid handle
Obviously, I'm using an OracleSessionPool configured as follow:

Code:
Homogeneous: true
Max: 25
Min: 1
Pooltype: ptOracle
Statement cache: true
Timeout: 0
I changed the path on the server where the application is.
Could anyone help me with this issue? It's something that is driving me mad.
 
To work around this 9.2.0.8 bug you need to set TOracleQuery/TOracleDataSet.Optimize to False. You can also set the global Oracle.NoQueryOptimize variable to True.
 
Yes, I've been reading about this solution it the topics, meanwhile. But the DOA help says that the TOracleDataSet.Optimize property is overriden when the TOracleSessionPool.Statementcache is set to true. Is this alright or I didn't understand anything?
Thank you, Marco.
 
What I meant above was if I have to modify this TOracleSessionPool property to false as well or just the TOracleDataSet.Optimize.
 
I've turned all the TOracleDataSet.Optimize properties to False, as you said, but the problem continues. I've also tried setting the global Oracle.NoQueryOptimize to True and... nothing. However, I've realized that the "Access violation at address 00000000...." error appears after a while without activity in some TOracleDataSets. Could the problem be related with the timeout property? Currently is set to 0. Do you think I should change it?
In other hand, as I read about an Oracle 9.2.0.8 client bug, I've tried to change it to Oracle 10.2 client but I always get the same error message:
Code:
TOracleSessionPool: Invalid handle
 
Finally the thing works!!
I've had to turn to false the OracleSessionPool.StatementCache property as well as the TOracleDataSet.Optimize property.
 
server version: 9.2.0.8, client version 9.2.0.1
1. In Delphi/DOA: select field1 from table1
2. In Toad/SQL+/PlSqlDev: ALTER TABLE table1 modify (field2 (any change))
3. In Delphi/DOA: refresh => select field1 from table1 => AV 00000000
--------------------------------
server version: 9.2.0.8, client version 9.2.0.8
3. In Delphi/DOA: refresh => select field1 from table1 => NO any AV
 
Back
Top