Access violation on dbexpoda after Oracle balancing

Discussion of open issues, suggestions and bugs regarding usage of dbExpress drivers for Oracle in Delphi and C++Builder
Post Reply
telecos
Posts: 2
Joined: Tue 03 Nov 2009 12:11

Access violation on dbexpoda after Oracle balancing

Post by telecos » Tue 03 Nov 2009 12:24

Hi,

We have an access violation on dbexpoda.dll (version 4.20.0.8 ) in a production environment where we have an Oracle's cluster. This problem occurs after Oracle's cluster performs a balncement, which is, when the database gets an erronous state, it stop it an start another instance using the same IP address. After this procedure, in few cases (about 1 of every 20 cases) we get an access violation performing queries with dbexpoda.dll which causes our application to die. Has anyone face with this problem? Any solution there?

Thanks!

Plash
Devart Team
Posts: 2844
Joined: Wed 10 May 2006 07:09

Post by Plash » Thu 05 Nov 2009 09:31

When cluster starts another database instance, the connection to the database is broken. DbxOda has the code that automatically reconnects if the connection is broken. So sometimes you don't see any error, and your application continues to work. But reconnect cannot work correctly in all cases.

Oracle has a feature named Transparent Application Failover (TAF). When TAF is enabled, Oracle client can reconnect automatically. Reconnect occurs transparently for application, e.g the application sees nothing and works as usual.

TAF is supported by ODAC. But DbxOda does not support TAF.

telecos
Posts: 2
Joined: Tue 03 Nov 2009 12:11

Post by telecos » Thu 05 Nov 2009 10:58

It's planned DbxOda to support TAF in future versions? Is it feasible?

Plash
Devart Team
Posts: 2844
Joined: Wed 10 May 2006 07:09

Post by Plash » Fri 06 Nov 2009 09:52

ODAC TOraSession component has the OnFailover event. User should handle this event to make failover work.

In dbExpress we cannot provide access to such event. So we cannot support TAF in DbxOda.

Post Reply