For a period of time we’ve been having issues with failover of Oracle RAC for an application sitting on GlassFish.
After considering various solutions, we’re currently monitor one implementation that appears to have promising indications at the moment for being a permanent solution (although perhaps a little early to be certain).
The solution appears to be to use the ‘Connection Validation’ properties under the Advanced Tab. We’re currently enabled to perform a select before the actual query attempted to run (and we’ve nominated the DUAL table for the select to be carried out on). If this fails, then that connection is dropped from the pool, and the next available connection is sourced. If all available connections fail, then fresh connections are made within the pool.
There appears to be an omission for RAC failover support in the Oracle-Thin library, hence the requirement for using this setting.