How do I handle signals when using the Oracle client libraries?

The Easysoft Oracle ODBC driver does not catch or change the default disposition of any signals. The Oracle client libraries do change the default disposition of some signals, SIGINT, for example. The client libraries appear to do this at connect time.

You can change a signal's disposition after connecting to Oracle and then handle the signal. However, by doing this you are overriding the client libraries' own signal handler and the results may be unpredictable.

An alternative method is to change the signal's disposition after the Oracle Call Interface (OCI) connect call, having first saved the previous disposition. You can then restore the original disposition when making Oracle client library calls. However, this approach may be impractical if you're making a lot of Oracle client library calls.

To turn off the Oracle signal handler, add this parameter to the sqlnet.ora file:

BEQUEATH_DETACH=YES

When BEQUEATH_DETACH is set to YES, Oracle passes all child processes over to the UNIX init process (pid = 1). The init process is then responsible for terminating defunct child processes.

Further information