Créer un job SQL plannifié

IBM i, configuration, commandes, ...
Répondre
damz
Messages : 15
Enregistré le : mer. 27 nov. 2019, 16:16:58

Créer un job SQL plannifié

Message par damz »

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

SebastienB
Messages : 54
Enregistré le : ven. 22 janv. 2021, 10:21:13

Re: Créer un job SQL plannifié

Message par SebastienB »

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.

nbonnet
Messages : 208
Enregistré le : mar. 11 sept. 2018, 08:20:13
Localisation : Lyon

Re: Créer un job SQL plannifié

Message par nbonnet »

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 ?
Nathanaël

Gautier DUMAS
Messages : 4
Enregistré le : lun. 31 août 2020, 17:06:19

Re: Créer un job SQL plannifié

Message par Gautier DUMAS »

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.

damz
Messages : 15
Enregistré le : mer. 27 nov. 2019, 16:16:58

Re: Créer un job SQL plannifié

Message par damz »

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
SebastienB a écrit :
mer. 25 mai 2022, 14:19:31
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.

damz
Messages : 15
Enregistré le : mer. 27 nov. 2019, 16:16:58

Re: Créer un job SQL plannifié

Message par damz »

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
nbonnet a écrit :
mer. 25 mai 2022, 14:26:00
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 ?

damz
Messages : 15
Enregistré le : mer. 27 nov. 2019, 16:16:58

Re: Créer un job SQL plannifié

Message par damz »

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
Gautier DUMAS a écrit :
mer. 25 mai 2022, 16:25:37
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.

Hurri
Messages : 44
Enregistré le : lun. 02 nov. 2020, 16:04:59

Re: Créer un job SQL plannifié

Message par Hurri »

Personnellement je ne me casserais pas la tête.
Encapsulation dans un RPG (ou Cobol ou C...) et utilisation basique de WRKJOBSCDE.

Répondre