What the differences
and relationship among TAF/FAN/FCF/ONS?
2 Relationship
ONS --> FAN --> FCF
ONS -> send/receive messages on local and remote nodes.
FAN -> uses ONS to notify other processes about changes in configuration of service level
FCF -> uses FAN information working with conection pools JAVA and others.
http://forums.oracle.com/forums/thread.jspa?messageID=3566976
3 To use TAF/FAN/FCF/ONS, do you need to configure/install in server or client side?
4 Does ONS automatically send messages ?
or is there any settings to be done ?
Does ONS only broadcast msgs ?
1 Definition
1) TAF
a feature of Oracle Net Services for OCI8 clients. TAF is transparent application failover which will move a session to a backup connection if the session fails. With Oracle 10g Release 2, you can define the TAF policy on the service using dbms_service package. It will only work with OCI clients. It will only move the session and if the parameter is set, it will failover the select statement. For insert, update or delete transactions, the application must be TAF aware and roll back the transaction. YES, you should enable FCF on your OCI client when you use TAF, it will make the failover faster.
Note: TAF will not work with JDBC thin.
a feature of Oracle Net Services for OCI8 clients. TAF is transparent application failover which will move a session to a backup connection if the session fails. With Oracle 10g Release 2, you can define the TAF policy on the service using dbms_service package. It will only work with OCI clients. It will only move the session and if the parameter is set, it will failover the select statement. For insert, update or delete transactions, the application must be TAF aware and roll back the transaction. YES, you should enable FCF on your OCI client when you use TAF, it will make the failover faster.
Note: TAF will not work with JDBC thin.
2) FAN
FAN is a feature of Oracle RAC which stands for Fast Application Notification. This allows the database to notify the client of any change (Node up/down, instance up/down, database up/down). For integrated clients, inflight transactions are interrupted and an error message is returned. Inactive connections are terminated.
FCF is the client feature for Oracle Clients that have integrated with FAN to provide fast failover for connections. Oracle JDBC Implicit Connection Cache, Oracle Data Provider for .NET (ODP.NET) and Oracle Call Interface are all integrated clients which provide the Fast Connection Failover feature.
FAN is a feature of Oracle RAC which stands for Fast Application Notification. This allows the database to notify the client of any change (Node up/down, instance up/down, database up/down). For integrated clients, inflight transactions are interrupted and an error message is returned. Inactive connections are terminated.
FCF is the client feature for Oracle Clients that have integrated with FAN to provide fast failover for connections. Oracle JDBC Implicit Connection Cache, Oracle Data Provider for .NET (ODP.NET) and Oracle Call Interface are all integrated clients which provide the Fast Connection Failover feature.
3) FCF
FCF is a feature of Oracle clients that are integrated to receive FAN events and abort inflight transactions, clean up connections when a down event is received as well as create new connections when a up event is received. Tomcat or JBOSS can take advantage of FCF if the Oracle connection pool is used underneath. This can be either UCP (Universal Connection Pool for JAVA) or ICC (JDBC Implicit Connection Cache). UCP is recommended as ICC will be deprecated in a future release.
FCF is a feature of Oracle clients that are integrated to receive FAN events and abort inflight transactions, clean up connections when a down event is received as well as create new connections when a up event is received. Tomcat or JBOSS can take advantage of FCF if the Oracle connection pool is used underneath. This can be either UCP (Universal Connection Pool for JAVA) or ICC (JDBC Implicit Connection Cache). UCP is recommended as ICC will be deprecated in a future release.
4) ONS
ONS is part of the clusterware and is
used to propagate messages both between nodes and to application-tiers
ONS is the foundation for FAN upon which is built FCF.
RAC uses FAN to publish configuration changes and LBA events. Applications can react as those published events in two way :
- by using ONS api (you need to program it)
- by using FCF (automatic by using JDBC implicit connection cache on the application server)
you can also respond to FAN event by using server-side callout but this on the server side (as their name suggests it)
ONS is the foundation for FAN upon which is built FCF.
RAC uses FAN to publish configuration changes and LBA events. Applications can react as those published events in two way :
- by using ONS api (you need to program it)
- by using FCF (automatic by using JDBC implicit connection cache on the application server)
you can also respond to FAN event by using server-side callout but this on the server side (as their name suggests it)
Rodrigo Mufalani
"ONS send/receive
messages about failures automatically. It is a daemon process that runs on each
node notifying status from components of database, nodeapps.
If listener process fails on node1 his
failure is notified by EVMD, then local ONS communicates the failure to remote
ONS in remote nodes, then local ONS on these nodes notifying all aplications
about failure that occurred on node1."
2 Relationship
ONS --> FAN --> FCF
ONS -> send/receive messages on local and remote nodes.
FAN -> uses ONS to notify other processes about changes in configuration of service level
FCF -> uses FAN information working with conection pools JAVA and others.
http://forums.oracle.com/forums/thread.jspa?messageID=3566976
3 To use TAF/FAN/FCF/ONS, do you need to configure/install in server or client side?
4 Does ONS automatically send messages ?
or is there any settings to be done ?
Does ONS only broadcast msgs ?
ONS is part of the clusterware and is
used to propagate messages both between nodes and to application-tiers
ONS is the foundation for FAN upon which is built FCF.
RAC uses FAN to publish configuration changes and LBA events. Applications can react as those published events in two way :
- by using ONS api (you need to program it)
- by using FCF (automatic by using JDBC implicit connection cache on the application server)
you can also respond to FAN event by using server-side callout but this on the server side (as their name suggests it)
ONS is the foundation for FAN upon which is built FCF.
RAC uses FAN to publish configuration changes and LBA events. Applications can react as those published events in two way :
- by using ONS api (you need to program it)
- by using FCF (automatic by using JDBC implicit connection cache on the application server)
you can also respond to FAN event by using server-side callout but this on the server side (as their name suggests it)
Rodrigo Mufalani
"ONS send/receive
messages about failures automatically. It is a daemon process that runs on each
node notifying status from components of database, nodeapps.If listener process fails on node1 his
failure is notified by EVMD, then local ONS communicates the failure to remote
ONS in remote nodes, then local ONS on these nodes notifying all aplications
about failure that occurred on node1."
5 Are TAF and FAN mutually exclusive?
or if TAF and FCF are mutually exclusive?
No. You can use both TAF and FAN at the
same time, or both TAF and FCF, it depends on what you want to achieve with
it.
6 TAF Basic Configuration with FAN: Example
Oracle Database 10g Release 2 supports server-side
TAF with FAN.
To use server-side TAF:
1) create and start your service using SRVCTL
$ srvctl add service -d RACDB -s AP -r
I1,I2
$ srvctl start service -d RACDB -s AP
2) configure TAF in the RDBMS by using the DBMS_SERVICE package.
execute dbms_service.modify_service (
,-
service_name => 'AP' ,-
aq_ha_notifications => true ,-
failover_method =>
dbms_service.failover_method_basic ,-
failover_type =>
dbms_service.failover_type_session ,-
failover_retries => 180,
failover_delay => 5 ,-
clb_goal =>
dbms_service.clb_goal_long);
3) When done, make sure that you define a TNS
entry
for it in your tnsnames.ora file.
AP =
(DESCRIPTION
=(FAILOVER=ON)(LOAD_BALANCE=ON)
(ADDRESS=(PROTOCOL=TCP)(HOST=N1VIP)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=N2VIP)(PORT=1521))
(CONNECT_DATA = (SERVICE_NAME = AP)))
Note that this TNS name does not need to specify
TAF parameters
as with the previous slide.
7 TAF Basic Configuration without FAN: Example
1)
Before using TAF, it is recommended that you create
and start a service that is used during
connections.
By doing so, you benefit from the integration of
TAF and services. When you want to
use BASIC TAF with a service, you should have the
-P BASIC option when creating the service.
After the service is created, you simply start it
on your database.
$ srvctl add service -d RACDB -s AP -r
I1,I2 -P BASIC
$ srvctl start service -d RACDB -s AP
2)
Then, your application needs to connect to the
service by using a connection descriptor similar to the
one shown in the slide. The FAILOVER_MODE parameter
must be included in the CONNECT_DATA
section of your connection descriptor.
AP =
(DESCRIPTION
=(FAILOVER=ON)(LOAD_BALANCE=ON)
(ADDRESS=(PROTOCOL=TCP)(HOST=N1VIP)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=N2VIP)(PORT=1521))
(CONNECT_DATA =
(SERVICE_NAME = AP)
(FAILOVER_MODE =
(TYPE=SESSION)
(METHOD=BASIC)
(RETRIES=180)
(DELAY=5))))
Note: If using TAF, do not set the
GLOBAL_DBNAME parameter in your listener.ora file.
8 Metalink notes
- --Understanding Transparent
Application Failover (TAF) and Fast Connection Failover (FCF) [ID
334471.1]
- --How
To Verify And Test Fast Connection Failover (FCF) Setup From a JDBC Thin
Client Against a 10.2.x RAC Cluster [ID 433827.1]
- --Fast Connection Failover (FCF) Test Client Using 11g JDBC Driver
and 11g RAC Cluster [ID 566573.1]
- --Questions about how ONS and FCF work with JDBC [ID 752595.1]
- --How To Implement (Fast Connection Failover) FCF Using JDBC driver ?
[ID 414199.1]
- --How
to Implement Load Balancing With RAC Configured System Using JDBC [ID
247135.1]
No comments:
Post a Comment