You can click on the link TAF in the above post.
I don't have experience with it but know that you can specify multiple addresses under one TNS-alias. Sometimes an oracle connection manager is used.
If the first address is barred the Oracle-Net layer connects to the second address to the application (but doesn't recover lost work)
The mechanism is quite transparent as you only have one tns-alias for the application to connect to.
You need the full OCI-driver. Another link for java