Aide pour un script
Poda
-
PODA -
PODA -
Voici un script que je fais tourner chaque 5 mns par le runner sur mon poste pour réinitialiser les utilisateurs qui sont parfois déconnectés de ma BD. Mon problème est que lorsque deux occurences se chevauchent, mon script se plante. Comment dire à la deuxième occurence d'attendre la fin de la première avant de se lancer.
echo off
sqlplus der/vil@vildb @c:\maj\maj.sql
Merci
echo off
sqlplus der/vil@vildb @c:\maj\maj.sql
Merci
A voir également:
- Aide pour un script
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Script cmd - Guide
- Execution du script d'installation microsoft vc redistributable - Forum Jeux vidéo
3 réponses
Bonjour,
Le plus simple, à mon avis, serait de créer un champ dans une table qui indique si un script est en cours d'exécution ou non.
Au début de ton script, tu vérifies ce champ ; s'il indique qu'une occurrence est en cours, il s'arrête là (ou il attend, suivant tes besoins). Si aucune occurrence n'est en cours, il modifie cette valeur pour dire qu'il y a un script qui tourne. À la fin de son travail, il remet la valeur pour dire qu'il a fini.
Xavier
PS : un problème quand même, si le script se plante, le paramètre restera marqué comme "script en cours". On peut contourner le problème en indiquant une date de début d'exécution, et en considérant que si le paramètre indique qu'un script tourne depuis plus d'une heure, on considère qu'aucun script ne tourne.
Le plus simple, à mon avis, serait de créer un champ dans une table qui indique si un script est en cours d'exécution ou non.
Au début de ton script, tu vérifies ce champ ; s'il indique qu'une occurrence est en cours, il s'arrête là (ou il attend, suivant tes besoins). Si aucune occurrence n'est en cours, il modifie cette valeur pour dire qu'il y a un script qui tourne. À la fin de son travail, il remet la valeur pour dire qu'il a fini.
Xavier
PS : un problème quand même, si le script se plante, le paramètre restera marqué comme "script en cours". On peut contourner le problème en indiquant une date de début d'exécution, et en considérant que si le paramètre indique qu'un script tourne depuis plus d'une heure, on considère qu'aucun script ne tourne.
Quelqu'un peut-il m'indiquer comment intoduire une boucle dans le scprit ci-dessous afin quil ne se morde pas la queue c'est-à-dire que la seconde ocurence ne s'exécute pas tant que la première n'est pas finie.
echo off
sqlplus der/vil@vildb @c:\maj\maj.sql
Merci
echo off
sqlplus der/vil@vildb @c:\maj\maj.sql
Merci
Merci
C'est un script sql qui me permet de me connecter à ma base de données et d'exécuter ensuite une commande oracle qui se trouve dans maj.sql. La commande oracle permet de réinitialiser les utilisateurs qui sont connectés à ma BD.
Sinon, la méthode de Dubcek devrait marcher aussi (attention à utiliser un nom de fichier peut-être un peu plus explicite, parce que si une autre appli met un fichier lock dans TEMP...)