Skip to Main Content

Oracle Database Discussions

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Oracle Automatic Diagnostic Repository (ADR): disable from Client

4249454Sep 17 2020 — edited Sep 17 2020

We have encountered several problems with ADR when our client applications are using Oracle database.

(Windows)

ADR kicks in when unhandled exceptions within the running application is detected. This results in a mini dump file on the client workstation.

Problem is that the development environment used (OpenText Gupta Team Developer/SqlWindows) is unable to handle this and will retry the calls to Oracle OCI.

This results in endless creation of mini dump files which are each about 700Mb.

Every 7 second new file is created until the complete workstation diskspace is full.

The application will not crash. It hangs while Oracle is writing the mini dump files.

The only way for us to stop this behavior is to disable ADR all together on the client workstation.

This is done by adding these lines to sqlnet.ora:

DIAG_ADR_ENABLED=OFF

DIAG_SIGHANDLER_ENABLED=FALSE

DIAG_DDE_ENABLED=FALSE

When an unhandled exception occurs, ADR will not trap it and the application will just crash.

This is how it should be. The application, which indeed has a defect somewhere should just crash so that developers can pinpoint the faulty code or 3rd party component.

Problem we have is that we need to change thousands of client workstations and add the mentioned lines to sqlnet.ora.

And in most cases we do not have direct access to the file.

So the question is:

Is there a way, programmatically, using OCI or calling exported function from the Oracle client dll's or maybe some system commands from the application to disable ADR on the client?

So a custom way without having to change the local files. The application which is using Oracle databases can on startup call OCI or perform actions programmatically to disable ADR for the current process/session.

Any hint or tips are welcome.

To be clear. We as developers do not have options to change how the development environment works. So we can not solve the bad handling of unhandled exceptions.

The only option is to somehow manage the ADR feature from our application.

Comments
Post Details
Added on Sep 17 2020
1 comment
3,132 views