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!