We're already far beyond JDBC, so I've moved the
thread to our Oracle forum. Hopefully some Oracle folks will show up with more help.
Please note that the connect string from your last post (the MNPGDBLB) differs from the one in your original question. Granted, that
should not matter, but if you want to pursue the problem,
you should test using the same exact connect string. Also note that the MNPGDBLB connect string corresponds to what our client is using (FAILOVER_MODE parameters are more or less the same), and I'm pretty sure the Connection Time Failover (that's the mode you're striving for) is functioning there.
Couldn't there be a network glitch at the same moment which would prevent the app from connecting? Is there anything in the logs of the second instance that would explain the situation (perhaps it was not that healthy after all, or it could not handle all the connection from the first instance)?
No idea about the load balancing at Oracle side. There is a way in which a connection pool can cooperate with RAC to load balance, but I only know something like that exists. Didn't ever try to do that, some service must be running in the DB to provide the connection pool info needed for the balancing.
I'm afraid I cannot help any further. At this situation I'd probably try to simulate the condition and monitor the application, making sure to always use identical connect string. You can use the full connect string with TNSPING or SqlPlus, as far as I know.