Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > AS/400
AS/400 Le Forum d'entraide sur IBM AS/400 - iSeries. RPG.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/03/2011, 14h29   #1
Nouveau Membre du Club
 
Femme Françoise SPIECART
Responsable de service informatique
Inscription : décembre 2007
Messages : 39
Détails du profil
Informations personnelles :
Nom : Femme Françoise SPIECART

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Industrie

Informations forums :
Inscription : décembre 2007
Messages : 39
Points : 30
Points : 30
Par défaut Comment reproduire un "never ending program" sur AS400

Bonjour,
je voudrais qu'un programme s'exécute toutes les heures. Y at-il un moyen de le faire ?
Merci
fspiecart est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 14h40   #2
Membre éclairé
 
Homme
Inscription : septembre 2008
Messages : 251
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : septembre 2008
Messages : 251
Points : 309
Points : 309
Ca n'est pas un "never ending program" mais un programme qui se lance toutes les heures. Ce n'est pas tout à fait la même chose.

1) On peut acheter Advanced job Scheduler chez IBM qui permet de lancer un travail plusieurs fois par jour (entre autre ! )

2) On peut créer 8 taches dans le job scheduler qui lancent le même programme mais chacune à son heure.

3) On peut lancer un CLP le matin qui effectue un DLYJOB d'une heure, lance le programme, puis tourne en boucle.

4) Il y a surement une autre possibilité à laquelle je n'ai pas encore pensé.
FORMULARY est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 14h48   #3
Membre Expert
 
Patrick
Inscription : mai 2008
Messages : 821
Détails du profil
Informations personnelles :
Nom : Patrick
Âge : 42
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mai 2008
Messages : 821
Points : 1 041
Points : 1 041
Il suffit simplement que le programme se REsoumette lui même après son execution (juste avant le RETURN). Il calcule la prochaine heure/date et fais un SBMJOB (ne pas "câbler en dur" le délai dans le programme pour plus de souplesse) avec les mots clés SCDDATE & SCDTIME de la commande SBMJOB.
Pour le tout début, son lancement "initial" peut être schédulé ou il peut être considéré comme un travail anticipé (au démarrage d'un sous système)
K2R400 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 08h05   #4
Membre régulier
 
Inscription : octobre 2006
Messages : 111
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 111
Points : 92
Points : 92
Je suivrais presque la même méthode que K2R400, mais personnellement je patienterai dans le programme soumis à l'aide d'un RCVMSG MSGQ(&MSGQ) WAIT(&DLYTIM). Avec la variable DLYTIM récupérée dans une DTAARA par exemple.
L'avantage avec cette méthode c'est que le RCVMSG peut être déclenché instantanément en envoyant un message à la file d'attente concernée. Ce message peut être une demande d'exécution immédiate, ou une demande d'arrêt par exemple.
Avoir un job bloqué en file d'attente de travaux n'est, à mon avis, jamais bon, il peut se lancer à tout moment (pendant un traitement sensible par exemple), et l'arrêter devient plus problématique (il faut retrouver le job dans la file d'attente).
m4k-Hurrican est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 08h38   #5
Membre Expert
 
Patrick
Inscription : mai 2008
Messages : 821
Détails du profil
Informations personnelles :
Nom : Patrick
Âge : 42
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mai 2008
Messages : 821
Points : 1 041
Points : 1 041
Citation:
Envoyé par m4k-Hurrican Voir le message
Avoir un job bloqué en file d'attente de travaux n'est, à mon avis, jamais bon, il peut se lancer à tout moment (pendant un traitement sensible par exemple), et l'arrêter devient plus problématique (il faut retrouver le job dans la file d'attente).

Euuh, je ne vois pas comment.
Un job en attente SCD ne va pas se lancer tout seul.
Pour le libérer, il faut le modifier et en mettre SCDTIME à *CURRENT.
Et on peut imaginer une JOBQ (à entrée multiple) dédiée à cet effet.
K2R400 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 09h03   #6
Membre régulier
 
Inscription : octobre 2006
Messages : 111
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 111
Points : 92
Points : 92
Je ne parlais pas du job quand il est dans le planning, mais une fois lancé.
Tu proposes que le programme se soumette lui même et utilise les paramètres SCDDATE & SCDTIME. Il va donc être en quasi permanence dans la file d'attente de travaux, à attendre que l'horaire indiqué arrive.
J'avoue que moi, le job une fois lancé, je ne le soumettrai pas à nouveau. Dans les quelques applis que j'ai développé et qui tournent selon ce modèle, le programme reboucle sur le RCVMSG jusqu'à ce qu'on lui demande de s'arrêter, simplement.
m4k-Hurrican est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 13h03   #7
Membre Expert
 
Inscription : novembre 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 1 298
Points : 1 355
Points : 1 355
Les jobs soumis selon la méthode indiquée par K2R400 peuvent parfois ne jamais être exécutés. J'ai eu le cas.

Il s'agissait de jobs soumis par un client ODBC avec peu de décalage entre le lancement de la soumission et le démarrage de l'exécution en batch, de l'ordre de qq minutes. Entre les PC client et le serveur AS400, les clocks n'étaient pas synchronisées et la clock client était en retard par rapport à la clock serveur si bien que certains jobs restaient indéfinément en file d'attente
Mercure est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 14h14   #8
Membre Expert
 
Patrick
Inscription : mai 2008
Messages : 821
Détails du profil
Informations personnelles :
Nom : Patrick
Âge : 42
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mai 2008
Messages : 821
Points : 1 041
Points : 1 041
Citation:
Envoyé par Mercure Voir le message
Les jobs soumis selon la méthode indiquée par K2R400 peuvent parfois ne jamais être exécutés. J'ai eu le cas.

Il s'agissait de jobs soumis par un client ODBC avec peu de décalage entre le lancement de la soumission et le démarrage de l'exécution en batch, de l'ordre de qq minutes. Entre les PC client et le serveur AS400, les clocks n'étaient pas synchronisées et la clock client était en retard par rapport à la clock serveur si bien que certains jobs restaient indéfinément en file d'attente
Ce n'est pas du tout le cas dans ce post, pas de lancement depuis ODBC et de plus "in the real world", c'est à dire en entreprise, on est tous basés sur un ou plusieurs serveurs SNTP
K2R400 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 14h23   #9
Membre Expert
 
Inscription : novembre 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 1 298
Points : 1 355
Points : 1 355
Je ne dis pas que la méthode que tu proposes est mauvaise, je rapporte simplement ce qui m'est arrivé, c'est tout. Je suis aussi le premier à l'utiliser si besoin est.

Mais, ce qui m'est arrivé, c'est dans le "real world" en entreprise.
Mercure est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 17h47   #10
Membre Expert
 
Patrick
Inscription : mai 2008
Messages : 821
Détails du profil
Informations personnelles :
Nom : Patrick
Âge : 42
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mai 2008
Messages : 821
Points : 1 041
Points : 1 041
Citation:
Envoyé par Mercure Voir le message
Je ne dis pas que la méthode que tu proposes est mauvaise, je rapporte simplement ce qui m'est arrivé, c'est tout. Je suis aussi le premier à l'utiliser si besoin est.

Mais, ce qui m'est arrivé, c'est dans le "real world" en entreprise.
Il n'y a jamais de bonne ou de mauvaises solutions, tout dépend du contexte, chaque projet étant unique.
Le but d'un forum est justement de proposer plusieurs solutions à un même problème, et en fonction du contexte on choisira l'une ou l'autre.

Ce que je proposais est simple, rapide à mettre en oeuvre et basé sur le scéduler interne du système. Ce n'est pas un travail ACTIF qui attend une action, mais un job schédulé qui ne prend aucune ressource, qui ne bloque pas la JOBQ et qui sera lancé automatiquement par le système.
Maintenant si l'utilisateur planifie le travail à la date d'hier c'est autre chose.
Mais ce que je suis certain, c'est que l'OS lancera bien le job à l'heure et à la date prévue et sans retard.
K2R400 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h26.


 
 
 
 
Partenaires

Hébergement Web