Bonjour,
C'est possible d'exécuter à intervalles réguliers une commande SQL qui fait une mise à jour sur une table (par exemple) avec une commande UPDATE, et si oui comment faire ?
J'imagine qu'une partie de la solution se trouve ici, mais je ne sais pas comment y associer une requête SQL
https://www.ibm.com/docs/en/i/7.4?topic ... kjobjs.htm
Merci pour votre aide
Créer un job SQL plannifié
-
- Messages : 54
- Enregistré le : ven. 22 janv. 2021, 10:21:13
Re: Créer un job SQL plannifié
Bonjour,
La question n'est pas très précise.
1°) Attention WRKJOBJS (IBM Advanced Job Scheduler for I) nécessite la licence 5722-JS1.
2°) Une première réponse est "d'encapsuler" la requête dans un RPG.
3°) Le plus important, est-ce vraiment un intervalle de temps le déclencheur de la mise à jour (ou est-ce un autre travail, ou une information dans une autre table, etc...) ?
4°) Existe-t-il une condition (WHERE) à votre requête ? Si oui, est-ce toujours la même ou est-ce des paramètres ?
Sébastien.
La question n'est pas très précise.
1°) Attention WRKJOBJS (IBM Advanced Job Scheduler for I) nécessite la licence 5722-JS1.
2°) Une première réponse est "d'encapsuler" la requête dans un RPG.
3°) Le plus important, est-ce vraiment un intervalle de temps le déclencheur de la mise à jour (ou est-ce un autre travail, ou une information dans une autre table, etc...) ?
4°) Existe-t-il une condition (WHERE) à votre requête ? Si oui, est-ce toujours la même ou est-ce des paramètres ?
Sébastien.
Re: Créer un job SQL plannifié
Bonjour,
Pour lancer un UPDATE dans ce cas, le plus simple me semble être par un RUNSQLSTM ou directement RUNSQL, en direct ou dans un CL.
La commande WRKJOBJS permet de gérer les travaux dans Advanced Job Scheduler (AJS), cela dépend donc si vous avez ou non ce produit. C'est avec la commande ADDJOBJS (https://www.ibm.com/docs/en/i/7.3?topic ... djobjs.htm). Un exemple avec l'interface graphique : https://blog.faq400.com/en/system-admin ... ler-for-i/
Sinon ce sera plutôt un WRKJOBSCDE (gérer les travaux planifiés). Ce dernier ne permet cependant pas de définir des fréquences de job en dessous de la journée.
Toutefois, vous pouvez très bien avoir un programme qui re-soumets lui même le travail suivant à intervalle régulier, en utilisant SBMJOB SCDTIME(heure calculée).
Sinon vous avez peut être également un ordonnanceur externe ?
Pour lancer un UPDATE dans ce cas, le plus simple me semble être par un RUNSQLSTM ou directement RUNSQL, en direct ou dans un CL.
La commande WRKJOBJS permet de gérer les travaux dans Advanced Job Scheduler (AJS), cela dépend donc si vous avez ou non ce produit. C'est avec la commande ADDJOBJS (https://www.ibm.com/docs/en/i/7.3?topic ... djobjs.htm). Un exemple avec l'interface graphique : https://blog.faq400.com/en/system-admin ... ler-for-i/
Sinon ce sera plutôt un WRKJOBSCDE (gérer les travaux planifiés). Ce dernier ne permet cependant pas de définir des fréquences de job en dessous de la journée.
Toutefois, vous pouvez très bien avoir un programme qui re-soumets lui même le travail suivant à intervalle régulier, en utilisant SBMJOB SCDTIME(heure calculée).
Sinon vous avez peut être également un ordonnanceur externe ?
Nathanaël
-
- Messages : 4
- Enregistré le : lun. 31 août 2020, 17:06:19
Re: Créer un job SQL plannifié
Bonjour,
En complément des réponses déjà apportées, il y a aussi le package Open Source "cronie" qui permet d'avoir un cron (comme sous Linux) en environnement IBM i. Une fois l'environnement Open Source installé sur l'IBM i (V7R2 min), la liste des packages est disponible dans le gestionnaire de modules Open Source d'ACS.
Il permet de pouvoir planifier des exécutions de commandes shell (qui elle même peuvent appeler des commandes ou *PGM) à une fréquence donnée jusqu'à la minute.
En complément des réponses déjà apportées, il y a aussi le package Open Source "cronie" qui permet d'avoir un cron (comme sous Linux) en environnement IBM i. Une fois l'environnement Open Source installé sur l'IBM i (V7R2 min), la liste des packages est disponible dans le gestionnaire de modules Open Source d'ACS.
Il permet de pouvoir planifier des exécutions de commandes shell (qui elle même peuvent appeler des commandes ou *PGM) à une fréquence donnée jusqu'à la minute.
Re: Créer un job SQL plannifié
Oui ce n'est pas très précis parce que je ne sais pas encore par quel bout prendre le problème.
1/ je crois que je ne l'ai pas
2/ je ne sais pas faire ça donc impraticable
3/ non, il s'agit bien de faire un cron
4/ oui la condition WHERE est toujours la même avec CURRENT_DATE dedans
Merci en tout cas
1/ je crois que je ne l'ai pas
2/ je ne sais pas faire ça donc impraticable
3/ non, il s'agit bien de faire un cron
4/ oui la condition WHERE est toujours la même avec CURRENT_DATE dedans
Merci en tout cas
SebastienB a écrit : ↑mer. 25 mai 2022, 14:19:31Bonjour,
La question n'est pas très précise.
1°) Attention WRKJOBJS (IBM Advanced Job Scheduler for I) nécessite la licence 5722-JS1.
2°) Une première réponse est "d'encapsuler" la requête dans un RPG.
3°) Le plus important, est-ce vraiment un intervalle de temps le déclencheur de la mise à jour (ou est-ce un autre travail, ou une information dans une autre table, etc...) ?
4°) Existe-t-il une condition (WHERE) à votre requête ? Si oui, est-ce toujours la même ou est-ce des paramètres ?
Sébastien.
Re: Créer un job SQL plannifié
Alors je n'ai pas AJS je pense
Avec RUNSQLSTM, ça ne règle pas le problème de la planification je crois, si ?
Pour WRKJOBSCDE, il permet de créer un travail planifié ou juste de les gérer ?
Oui, je peux le faire avec Talend ou Spring, mais bon je cherchais une solution plus simple
Merci en tout cas
Avec RUNSQLSTM, ça ne règle pas le problème de la planification je crois, si ?
Pour WRKJOBSCDE, il permet de créer un travail planifié ou juste de les gérer ?
Oui, je peux le faire avec Talend ou Spring, mais bon je cherchais une solution plus simple
Merci en tout cas
nbonnet a écrit : ↑mer. 25 mai 2022, 14:26:00Bonjour,
Pour lancer un UPDATE dans ce cas, le plus simple me semble être par un RUNSQLSTM ou directement RUNSQL, en direct ou dans un CL.
La commande WRKJOBJS permet de gérer les travaux dans Advanced Job Scheduler (AJS), cela dépend donc si vous avez ou non ce produit. C'est avec la commande ADDJOBJS (https://www.ibm.com/docs/en/i/7.3?topic ... djobjs.htm). Un exemple avec l'interface graphique : https://blog.faq400.com/en/system-admin ... ler-for-i/
Sinon ce sera plutôt un WRKJOBSCDE (gérer les travaux planifiés). Ce dernier ne permet cependant pas de définir des fréquences de job en dessous de la journée.
Toutefois, vous pouvez très bien avoir un programme qui re-soumets lui même le travail suivant à intervalle régulier, en utilisant SBMJOB SCDTIME(heure calculée).
Sinon vous avez peut être également un ordonnanceur externe ?
Re: Créer un job SQL plannifié
Ok, merci pour la piste de cronie, mais je dois faire avec les moyens du bord.
Je garde à l'esprit pour une prochaine fois en tout cas
Merci encore
Je garde à l'esprit pour une prochaine fois en tout cas
Merci encore
Gautier DUMAS a écrit : ↑mer. 25 mai 2022, 16:25:37Bonjour,
En complément des réponses déjà apportées, il y a aussi le package Open Source "cronie" qui permet d'avoir un cron (comme sous Linux) en environnement IBM i. Une fois l'environnement Open Source installé sur l'IBM i (V7R2 min), la liste des packages est disponible dans le gestionnaire de modules Open Source d'ACS.
Il permet de pouvoir planifier des exécutions de commandes shell (qui elle même peuvent appeler des commandes ou *PGM) à une fréquence donnée jusqu'à la minute.
Re: Créer un job SQL plannifié
Personnellement je ne me casserais pas la tête.
Encapsulation dans un RPG (ou Cobol ou C...) et utilisation basique de WRKJOBSCDE.
Encapsulation dans un RPG (ou Cobol ou C...) et utilisation basique de WRKJOBSCDE.