[ruby-oci8-devel] Support FAN in Ruby-OCI8

shiwei zhang shiwei.zhang at oracle.com
Fri Apr 11 04:28:24 EDT 2008

Hi, Kubo, ruby-oci8-devel,

I want to implement FAN (Fast Application Notification) functionality 
for Ruby-OCI8. Do you have any concerns about this?
When we've supported FAN in  Ruby-OCI8, ruby users can still use nearly 
the same APIs to talk to Oracle DB. They are able to choose FAN enabled 
or disabled when using Ruby-OCI8. For single DB instance it's not 
critical to enable FAN, but for multiple DB instances it's much more 
beneficial to enable FAN. In PHP, if a user wants to enable FAN he needs 
to setup "oci8.events = On" in the file php.ini. Yet in Ruby-OCI8 we 
don't have the configuration file like php.ini, so how should we provide 
an interface for ruby user to feed in his choice? Add a parameter in 
OCI8.new()? Add a configuration method for the class OCI8? Do you have 
some suggestions?

FAN Benefits:
FAN is a notification mechanism that Oracle RAC uses to notify other 
processes about cluster configuration and service-level information, 
including status changes such as UP or DOWN events. FAN UP and DOWN 
events can apply to instances, services, and nodes. FAN also publishes 
Load Balancing Advisory events.
Without FAN, OCI8 can hang until a TCP timeout occurs and an error is 
returned, which might be several minutes. Enabling FAN in OCI8 can allow 
your applications to detect errors and re-connect to an available 
database instance without the user being aware of an outage.

Thanks & Best Regards,

More information about the ruby-oci8-devel mailing list