Problem with ORA-24909 error on Oracle 10G

Helene

Member³
We have installed DOA 4.0.7.1, and are developing against an Oracle 10G database. The application frequently fails with an ORA-24909 error message. After this message we need to restart the application. In one case we have solved the problem - a TOracleQuery was executed repeatedly without closing the query before repeating. I added a line to close the query, and this solved the problem. However it still appears in other situations. Before the actual oracle error message occurs, delphi reports an access violation " raised too many consecutive exceptions: 'access violation at 0x00000000 : read of adress 0x00000000'"

On MetaLink the only mention of ORA-24909 is the following:
"
Error: ORA-24909 (ORA-24909)
Text: call in progress. Current operation cancelled
---------------------------------------------------------------------------
Cause: The OCI call was invoked when another call on the connection was
in progress.
Action: Check if the OCI call is supported when the call is in progress
under special conditions; for example, if it is being used by a
signal handler. NLS_DO_NOT_TRANSLATE [24910,24910]

"

Do you have any suggestion / recommendation for us? If we always close queries before reopening them, wouldn't that lead to decrease in performance?

With regards,
Helene B. Halvorsen
 
Some additional information: we currently use the setting Optimize=true for queries and datasets, and have not used the Session.Statementcache.

What would be your recommendation ? Is the statementcache the preferred strategy - and will this help us avoid the problem?

With regards,
Helene
 
This seems to be an Oracle 10.2 Server bug. Currently the only workaround is to set TOracleQuery.Optimize to False.
 
Should we set optimize to false for both TOracleQuery and TOracleDataset then?

With regards,
Helene
 
By the way, should we also NOT use the statementcache then? According to the documentation, the optimize property is overruled when setting the StatementCache property.

With regards,
Helene
 
Should we set optimize to false for both TOracleQuery and TOracleDataset then?
Yes.
By the way, should we also NOT use the statementcache then?
That's difficult to say. We have not yet been able to reproduce the issue, but we know that setting Optimize to False works around it.
 
I have heard that upgrading to Oracle Server 10.2.0.2 may fix this. Setting NoQueryOptimize (this is a global variable in the Oracle unit) to True also works around the problem.
 
Back
Top