Oracle9i failover callbacks: do they work?
Oracle 9i (9.0.1) on Linux SUSE 7.3
It seems that OCI failover callbacks do not work.
I register a callback function as the manuals say. When I break
the connection with the primary dbms (by shutting it down), I
get a segmentation fault and the failover mechanism does not
work. The mechanism works (I immediately get a connection on the
backup database) if I do not register any failover callback
function.
The problem is that I need my application to be failover-aware,
so I need that the Oracle Client stack notifies the application
that a failover is going on. The callback function is never
called.
In the traces I get the following text:
nsrdr: got NSPTMK packet
nserror: nsres: id=0, op=70, ns=12582, ns2=0; nt[0]=0, nt[1]=0,
nt[2]=0; ora[0]=0, ora[1]=0, ora[2]=0
nserror: nsres: id=0, op=70, ns=12630, ns2=0; nt[0]=0, nt[1]=0,
nt[2]=0; ora[0]=0, ora[1]=0, ora[2]=0
nioqbr: state = normal (0)
nioqsm: send-break: failed to send break...
nioqper: error from send-marker
nioqper: nr err code: 0
nioqper: ns main err code: 12583
nioqper: ns (2) err code: 0
nioqper: nt main err code: 0
nioqper: nt (2) err code: 0
nioqper: nt OS err code: 0
nioqbr: returning 3113
And:
oerr tns 12630
12630, 00000, "Native service operation not supported"
// *Cause: An operation requested by a user is not supported by
the native
// services component.
// *Action: This may be an internal error if the operation
should have been
// supported.
Does all this mean that the failover callback mechanism is not
implemented in Oracle 9.0.1 for Linux SUSE 7.3?
By the way, I tried the whole thing with Oracle 8.1.7 on Linux
RedHat 7.1, and I got the same results.
Is a default installation/configuration insufficient to make the
failover callbacks work?