juillet
2005
Sous Oracle il est possible de mettre en place, coté client, un dispositif de reprise sur incident nommé Transparent Application Failover, acronyme TAF.
Cette technique est liée à la mise en place d’une redondance de base principalement par la mise en place de cluster (RAC) ou d’une base en StandBy.
Lors de mes tests avec le programme …\ODP.NET\samples\TAF\src\TAF.cs proposé dans la distribution d’ODP, je rencontrais l’erreur TNS-12152 sur le poste client lorsque j’essayais de déclenchement un événement en arrêtant la base.
Evénement devant être pris en charge par le code suivant (classe OracleConnection.Failover) :
* This method is FailOver Callback method called when the
* connection to the database is severed. It is called several
* times in the process of re-establishing connection to the
* same or standby database.
**********************************************************************/
public FailoverReturnCode OnFailover(object sender, OracleFailoverEventArgs eventArgs)
{
// check the Failover event that occurred and display appropriate message
switch(eventArgs.FailoverEvent)
{
// when failover begins
case FailoverEvent.Begin:
{
MessageBox.Show(« Callback method called :Failover Begin »);
lblStatus.Text= »Callback method called :Failover Begin. Trying to reconnect, Please wait… »;break;
}
Voici un début de solution pour une machine hébergeant une instance. Dans un contexte de test, le serveur et client étant sur la même machine, cela semble suffisant.
Modifier le fichier TnsName.ora ainsi :
TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = amd2800)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = amd2800)(PORT = 1521))
(failover = yes)
(load_balance = yes)
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = TEST.LTA)
(FAILOVER_MODE =
(TYPE = SELECT)
(METHOD = BASIC)
(RETRIES=100)
(DELAY=1)
)
)
)
Le fichier TnsName.ora doit contenir l’adresse du serveur de secours, ici il s’agit du même serveur.
Donc le message suivant :
TNS-12152 TNS:unable to send break message
indique une tentative d’émission d’un message de reprise vers le second serveur (StandBy) ou noeud dans un environnement RAC. La modification du fichier TnsName.ora est suffisante dans ce cas pour déclencher l’événement sur le client ODP.
Articles récents
Archives
- juin 2011
- août 2010
- avril 2010
- mars 2010
- février 2010
- janvier 2010
- décembre 2009
- septembre 2009
- août 2009
- juillet 2009
- juin 2009
- mai 2009
- avril 2009
- mars 2009
- février 2009
- janvier 2009
- décembre 2008
- novembre 2008
- octobre 2008
- septembre 2008
- juillet 2008
- mai 2008
- avril 2008
- février 2008
- janvier 2008
- décembre 2007
- novembre 2007
- octobre 2007
- septembre 2007
- août 2007
- juin 2007
- mai 2007
- avril 2007
- mars 2007
- février 2007
- janvier 2007
- décembre 2006
- novembre 2006
- octobre 2006
- septembre 2006
- août 2006
- juillet 2006
- juin 2006
- mai 2006
- mars 2006
- février 2006
- janvier 2006
- décembre 2005
- novembre 2005
- octobre 2005
- septembre 2005
- juillet 2005
- juin 2005
- mai 2005