ultima_93
Messages postés46Date d'inscriptionmercredi 19 mai 2004StatutMembreDernière intervention26 juillet 2007
-
2 févr. 2006 à 15:04
cs_poppyto
Messages postés540Date d'inscriptiondimanche 29 décembre 2002StatutModérateurDernière intervention13 mai 2011
-
6 févr. 2006 à 09:33
Bonjour,
Je dois faire la maintenance d'un service windows en C# qui démarre tous les jours à 8h du matin, ce service accède à une base de données oracle.
Le problème est lors d'une maintenance sur le réseau, la base était fermée le matin et le service à démarré.Et il a bloqué justement car la base était fermée.
Pourtant dans le code il y a un bien un try catch en cas d'erreur.
comme suit :
try
{
laConnection.Open();
ouvrirOk = true;
}
catch (OracleException exOracle) {
ouvrirOk = false;
}
catch (Exception autresExceptions) {
ouvrirOk = false;
}
et il bloque à Connection.Open car dans le journal des logs il n'y a pas de traces après cet endroit.
Ce que je veux faire c'est que le service ne bloque pas à cet endroit si la base est arretée.
Une solution m'aiderait ou des idées merci.
cs_poppyto
Messages postés540Date d'inscriptiondimanche 29 décembre 2002StatutModérateurDernière intervention13 mai 2011 2 févr. 2006 à 17:17
En admettant que ça ne résolve pas ton problème, le seul moyen d'arrêter du code bloqué est de la lancer dans un thread séparé et de tuer le thread le moment désiré.
Vérifie tout de même la valeur de laConnection.ConnectionTimeout et mieux encore, met à jour ton middleware Oracle.
ultima_93
Messages postés46Date d'inscriptionmercredi 19 mai 2004StatutMembreDernière intervention26 juillet 2007 6 févr. 2006 à 09:30
Lol si mais moi je fais des tests pour voir si ça marche de mon côté après chez le client, ils le mettent en recette et donc on verra si y'a pas de plantage là-bas (normalement non cette fois)