Currently our application uses Oracle RAC for DB failover management and pool the connection at application end. In case of DB failover at one node, application receives the FAN events. Application determine the DB failover based on failover error code (FCF error code) and take certain action.
Now we are planning to move HA structure. Sorry, I don't have much knowledge about Veritas Cluster. But we are planning to use Veritas Cluster for failover management. To take this option we are currently executing some impact analysis from application point of view. Can you please share your view for following queries-
Please note that currently we using oracle 11gR1 enterprise editions and planning to upgrade the oracle version to 11gR2 or 12c enterprise editions.
Solved! Go to Solution.
Thanks for your reply.
In last couple days I read some documents about Veritas on internet. And I assume, intergration between veritas cluster and our application done as follows-
1. Configure the DB server as resouce of Veritas cluster. We will configure a virtual IP. It is a part of VCS configuration.
2. Application will communicate trough the vertual IP to get DB resouces.
3. In case of DB failover Application will recive some ORA error code to determine the failover event.
During failover, incase of Oracle RAC, Database generates some RAC events (FAN events) and that evet is set to JVM on which JDBC is running. JVM sent it to Oracle cache manager. The oracle cache manager throws SQL exception to notify the application and connection pool is get refreshed. Our Application donot refresh the connection pool.
As you mentioned Veritas Cluster will generates failover events.
In case of DB failover at primary node, does the Veritas Cluster generates any failover events (i.e. similar to FCF error code)? <<<sure.
Now in case of Veritas what will happen, Veritas will generates the failover events and connection pool get refreshed automatically (i.e. our application will do nothing) or its application responsibility to refresh the connection pool?
VCS generates different events and provides a trigger mechanism for this events. Users can create their own scripts which can be invoked based on the events, The event that is generated for a fault of an application is resfault event. You can have a trigger/script that is invoked based on this event which will refresh the connection pool.
Kindly go through the following URL to get more info https://www.veritas.com/community/articles/cheat-sheet-vcs-event-triggers OR go through the topic VCS event triggers in the following URL https://sort.symantec.com/public/documents/sfha/6.2/linux/productguides/html/vcs_admin/ch14.htm.
This event triggers gives the users the flexibility to run custom scripts based on the events. You will need to have a resfault trigger enabled for your Oracle resource in VCS if you want to enable the refresh connection pool functionality through VCS. However, VCS will not do any such thing on its own automatically unless a trigger is configured to do so.
If the application is owning the responsibility of refreshing the connection pool, than it should continue do so irrespective of VCS being there or no.