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!

Fast Connection Failover - Fast Application Notification not working

Jason JonesAug 27 2012 — edited Aug 27 2012
Here's my setup:

I have a 3 DB architecture with stand-alone databases servers NO RAC and not using Data Guard. Let's not debate what I'm not using. I'm using Oracle 11gR2 (11.2.0.3) on a RHEL 5.

On database 1,2,3 or DB1,2,3 I have a service called dbread on all 3. --> created srvctl add service -d orcl1 -s dbread)
This service runs continuously

I have configured Oracle Notification Services (ONS) to be enabled, statused and started.

ons.config file --> $GI_HOME/opmn/conf/

localport=6150
remoteport=6200
nodes=db1:6150,db2:6200,db3:6200 (these names are in /etc/hosts)

$GI_HOME/bin/onsctl ping --> shows that ONS is enabled

srvctl status ons --> show that ONS is started

$GI_HOME/bin/crsctl has config --> shows that ONS is enabled with Oracle Restart and available.

at this point I will mention that when I have as a parameter loglevel=<#> I always get an error message in the ons.output file in $GI_HOME/opmn/logs

My scenario:

From DB3 I successfully log into DB1 using sqlplus and the service dbread
sqlplus <username>@connect string = (PORT=1521)(SERVICE=dbread)

After making a connection from DB3 into DB1, I log into DB1 and kill the service (srvctl stop service -d orcl1 -s dbread).

My Problem:
My connection from DB3 into DB1 still exists and I can continue to query even though the service (dbread) is stopped.

1) Shouldn't the connection be terminated or should I see an oracle error when I continue to perfrom a query on DB1l?

Also, when I am performing a jdbc connection and the service is stopped after a connection is made FCF doesn't failover to another database using the same service, it continues to use the exisiting connection and service that was terminated by srvctl.

2) What am I missing here?
3) Why does my connection stay connected and live even though the method to which it was established is stopped? ie the read service has been stopped?
4) Why doesn't FCF or FAN kick in here and route the connection to another database that has the dbread service up and running?

I know I must be overlooking something very basic but I've tried removing ONS and reenabling it. Also removing and adding back services. My service is seen by my listener and I can make a connection so my TNSNAMES and LISTENER files are correct.

Any ideas?
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Sep 24 2012
Added on Aug 27 2012
1 comment
446 views