Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1140 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Oracle: ORA-12170: TNS: Connect timeout

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Oracle: ORA-12170: TNS: Connect timeout

n°2074958
vincmer28
Posté le 10-05-2011 à 13:25:28  profilanswer
 

Bonjour,
 
Actuellement en train de mettre en place un système de calcul de statistiques sur une large sélection de bases de données, je sollicite votre aide.
Tout d'abord, je vous explique le contexte: Je possède 3 fichiers.cmd (que j'appellerais 1.cmd, 2.cmd, 3.cmd) et 1 fichier.SQL.
 
==> 1.cmd fait juste un call de 2.cmd
==> 2.cmd fait quand à lui un call de 3.cmd mais pour chacune de mes bases avec leurs identifiants (%1 et %2) ==> call 3.cmd %1 %2 nomdemabase
J'obtiens donc un certain nombre de lignes correspondants à chaque base de données.
 
==>3.cmd lance mon fichier sql: sqlplus %1 %2 blabla.sql %3 qui lui même lance une procédure stockée calculant les statistiques.
 
Jusque la, tous va bien, tous ce système est lancé tous les jours et fonctionnais jusqu'à ce jour, jour ou une des bases a été arrêtée.
Ainsi, au lancement du système, celui-ci s'est bloqué au 2.cmd au moment du call de la base arrêtée. Puisque la base ne fonctionnais pas, 3.cmd n'a pas pu s'y connecter avec SQLPLUS et est resté bloqué sur la demande d'un autre identifiant, ainsi les statistiques sur les bases restantes n'ont pas été calculées.  
 
Je chercherais donc un moyen lorsqu'une erreur de ce type arrive à cause d'une base arrêtée, que le système passe à la base suivante et donc ne reste pas bloqué, et pourquoi pas au passage que ça m'enregistre le nom de la base arrêtée dans une table que j'aurais crée préalablement.
 
Voila, j'espère avoir été clair, et que vous puissiez m'aider  :).
 
Bonne journée!
 

mood
Publicité
Posté le 10-05-2011 à 13:25:28  profilanswer
 

n°2075166
__tomjost
c'est un pseudo !
Posté le 11-05-2011 à 00:21:46  profilanswer
 

:D  
 
C'est windows ?
je connais pas SQLPlus.
 
sqlplus %1 %2 blabla.sql %3
(ca doit etre : sqlplus base1 base2 blabla.sql sproc )
 
 
// tu peut avoir le resultat par ret code de sql
// ou grep/find sur le message d'erreur
verification phase (en cas il n ya pas de timeout par sqlplus)
sqlplus some_verifaction_proc base1
sqlplus some_verifaction_proc base2
 
si base1 available :
sqlplus base1 blabla.sql sproc
else
 log error
 
si base2 available :
sqlplus base2 blabla.sql sproc
else
 log error
 
 
 
 
 
 
 
 
 

n°2075168
couak
Posté le 11-05-2011 à 00:34:31  profilanswer
 

Plusieurs manières de le faire :
- ne pas utiliser SQLPlus, et encapsuler tes commandes PL/SQL dans un langage qui te permettra d'avoir le contrôle, comme Perl ou VBS
- utiliser un ordonnanceur qui te permettra de mieux contrôler l'enchaînement de tes jobs
 
Pour ce qui est de l'ordonnanceur, à mon boulot on en utilise un payant mais qui permet de faire pas mal de contrôles
Sinon tu peux très bien utiliser l'ordonnanceur interne d'Oracle, de mémoire c'est dans le package dbms_jobs


Message édité par couak le 11-05-2011 à 00:34:58

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Oracle: ORA-12170: TNS: Connect timeout

 

Sujets relatifs
[ORACLE 10g] Acceder a Oracle 10g depuis Toad ou Tora sur Windows 7[Oracle] Télécharger d'anciennes versions
ORACLE, Arbre et période de recouvrement de dateUPDATE JOIN Oracle
Dump d'une base oraclepb récupération de données sous oracle
Connexion Oracle 11g en ocierreur ORA 00917 virgule absente
Lancer Oracle JPUBLISHER avec ANT (build.xml) ?Integrer un fichier dans une base oracle
Plus de sujets relatifs à : Oracle: ORA-12170: TNS: Connect timeout


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR