Forum iSeries, hébergé par xdocs400.com

As400, iSeries, i5, System i, une machine qui évolue pour être de plus en plus puissante.

Vous n'êtes pas identifié(e).

Annonce

ATTENTION : Le système anti-spam est à nouveau opérationnel. Nous avons réactivé les inscriptions.

#1 2018-04-13 21:03:56

Quser
Membre
Inscription : 2018-04-13
Messages : 11

Script sous IBMi v6R1

Bonjour,

Je dois monitorer des messages précis sur un serveur IBMi V6R1. j'ai besoin SVP d'un script CL qui doit parcourir un ensemble de bibliothèque/fichier notamment (/QSYS.LIB/BT.LIB/BRMS.MSGQ), vérifier l’existence de code d'erreur (BRM10A1 par exemple). Si code d'erreur trouvé, envoyer via Syslog ou SNMP Trap le message d'erreur à mon serveur de supervison (PRTG).

Si possible un tableau de correspondance Code d'erreur --> message correspondant devra être au préalablement être déclaré. (Exemple. BRM16A1 --> Backup &1, type &2 completed with errors).

Je suis ouvert à toutes les pistes pour l'écriture du script.

D'avance merci pour votre aide.

Hors ligne

#2 2018-04-16 09:26:24

larry57
Membre
Lieu : Luxembourg
Inscription : 2017-04-21
Messages : 74

Re : Script sous IBMi v6R1

Bonjour,

Je pense que tu devrais regarder de ce côté :
ici

Vu que c'est un API, par programme c'est mieux.

Larry57

Hors ligne

#3 2018-04-19 12:49:03

PLS59
Membre
Lieu : NORD
Inscription : 2010-08-11
Messages : 47

Re : Script sous IBMi v6R1

Bonjour,

Dans ce post tu trouveras un exemple d'usage de STRWCH

Ce qui devrait te permettre d'être "à l'écoute" des messages IDs d'une message queue, notamment celle de BRMS, ensuite c'est via ton imagination que la transcription sera faite.

Pour la remontée, Syslog étant intégré dans Pase cela me parait le plus simple.

Philippe

Hors ligne

#4 2018-05-03 16:04:55

Quser
Membre
Inscription : 2018-04-13
Messages : 11

Re : Script sous IBMi v6R1

Bonjour et merci pour réponses respectives.

J'ai finalement opté faire le script en Java en utilisant la lib JT400. je renvoie deja les messages voulus à ma sonde (PRTG) via syslog.

Now, j'ai des difficultés à planifier l'exécution de ce fichier (.jar) toutes les heures..  J'utilise la commande addjobsde job(ASMonitor) CMD(....) qui fonctionne bien, juste qu’elle est exécutée jute une fois par jour. Je ne trouve pas le paramètre pour planifier toutes les heures de la commande addjobscde.. Que faire SVP

Pouvez vous SVP me guider afin que je planifie cette commande toutes les heures?

Cordialement

Dernière modification par Quser (2018-05-03 16:07:44)

Hors ligne

#5 2018-05-03 16:18:15

macounet
Membre
Lieu : Oise
Inscription : 2007-07-17
Messages : 609

Re : Script sous IBMi v6R1

Tu ne peux pas planifier un job plusieurs fois par jours avec ADDJOBSCDE. Si tu veux qu'il s'exécute toutes les heures il faut en programmer 24 !
Le plus simple serait de faire un CL que tu programmes le matin et que tu fais boucler avec un temps d'attente d'une heure.
Tu peux ajouter un test de l'heure pour le terminer sinon tu risque de lancer une nouvelle instance sans que la précédente soit terminée.

Hors ligne

#6 2018-05-04 09:01:52

Quser
Membre
Inscription : 2018-04-13
Messages : 11

Re : Script sous IBMi v6R1

Bonjour Macounet et merci pour ce retour.

Je m'en doutais.

STP, ce bout de code peux fonctionner ?

/*************Début******************/
PGM
LOOP:

/* liste de commandes à exécuter chaque heure */
QSH CMD('java -cp /corp/java/As400MonitorFull.jar as400monitor.IbmiSubsys "172.16.0.69" "Qsys" "QCTL" 1')
QSH CMD('java -cp As400MonitorFull.jar as400monitor.IbmiMsg "/QSYS.LIB/BT.LIB/BRMS.MSGQ" 1000 "172.16.0.69" "BRM10A1" "BRM1480" "BRM148A" "BRM16A1" "BRM1820"')

DLYJOB DLY(3600)
GOTO LOOP

ENDPGM
/*************FIN*****************/

Cordialement

Hors ligne

#7 2018-05-07 12:23:58

Quser
Membre
Inscription : 2018-04-13
Messages : 11

Re : Script sous IBMi v6R1

Bonjour,

Comment ajouter le nombre de ligne/colonne de l'éditeur. Ma commande va au delà de la ligne, du coup, suis un peu obligé de la faire sur 2 lignes ce qui entraine des erreur lors de la compilation.
Comment faire pour ajouter des colonnes supplémentaires. (Option I ne me donne rien)

Je souhaite que la commande ci dessous tienne sur un ligne.
QSH CMD('JAVA -CP /CORP/JAVA/AS400MONITORFULL.JAR AS400MONITOR.IBMISUBSYS "172.16.0.69" "QSYS" "QBATCH" 1')


Colonnes  . . :    1  80                             Edition                                                           QGPL/QCLSRC
SEU==>                                                                                                                   ASMONITOR
FMT ** ...+... 1 ...+... 2 ...+... 3 ...+... 4 .. .+... 5 ...+... 6 ...+... 7 ...+... 8                                           
        **************  D{but des donn{es  **************************************************************************************   
0001.00 PGM                                                                                                                             180504                                 
0002.00 DEBUT:                                                                                                                         180504                                 
0003.00                                                                                                                                    180504                                 
0004.00 QSH CMD('JAVA -CP /CORP/JAVA/AS400MONITORFULL.JAR AS400MONITOR.IBMISUBSYS "172.1     180507                                 
0005.00 6.0.69" "QSYS" "QBATCH" 1')                                                                                             180504                                 
0006.00 QSH CMD('JAVA -CP /CORP/JAVA/AS400MONITORFULL.JAR AS400MONITOR.IBMISUBSYS "172.1     180504                                 
0007.00 6.0.69" "QSYS" "QCTL" 1')                                                                                                 180504

Hors ligne

#8 2018-05-07 13:07:42

larry57
Membre
Lieu : Luxembourg
Inscription : 2017-04-21
Messages : 74

Re : Script sous IBMi v6R1

Bonjour,

il faut mettre un + en fin de ligne pour dire au compilateur que la suite est sur la ligne suivante.

Larry57

Hors ligne

#9 2018-05-07 13:21:27

Quser
Membre
Inscription : 2018-04-13
Messages : 11

Re : Script sous IBMi v6R1

Bonjour et merci pour ce retour.

QSH CMD('JAVA -CP /CORP/JAVA/AS400MONITORFULL.JAR AS400MONITOR.IBMISUBSYS "172.+
16.0.69" "QSYS" "QBATCH" 1').

A priori, je n'ai plus d'erreur dans le compilateur.

Cordialement

Hors ligne

#10 2018-05-09 09:32:58

Quser
Membre
Inscription : 2018-04-13
Messages : 11

Re : Script sous IBMi v6R1

Bonjour,

Je reviens vers vous après la création du CL..

J'appelle le CL crée avec addjobscde juste en faisant un "call pgm(qgpl/asmonitor)"
cela ne fonctionne.. probablement parce que le CL n'est pas bon.. Que faire? Est ce que ce programme est susceptible de fonctionne? comme le tester directement ?
Le but pour moi est que la commande "QSH CMD('java -cp /corp/Monitor.jar as400monitor.IbmiSubsys "10.10.0.12" "Qsys" "QCTL" 1')" s’exécute toutes les heures.

/*************Début******************/
PGM
LOOP:

/* liste de commandes à exécuter chaque heure */
QSH CMD('java -cp /corp/Monitor.jar as400monitor.IbmiSubsys "10.10.0.12" "Qsys" "QCTL" 1')

DLYJOB DLY(3600)
GOTO LOOP

ENDPGM
/*************FIN*****************/

D'avance merci pour votre coup de pouce

Cordialement
Marcelin

Hors ligne

#11 2018-05-09 10:26:43

larry57
Membre
Lieu : Luxembourg
Inscription : 2017-04-21
Messages : 74

Re : Script sous IBMi v6R1

Bonjour marcelin,

Ton CL ne fait rien, tu ne récupères rien....
Le mieux est de faire un programme qui va t'envoyer un mail si tu as un message d'erreur....

Tu sais programmer en RPG ?

Larry57

Hors ligne

#12 2018-05-09 10:32:07

Quser
Membre
Inscription : 2018-04-13
Messages : 11

Re : Script sous IBMi v6R1

Bonjour et Merci pour ce retour.

Je ne ne sais pas programmer en RPG. Je croyais que ca pouvait se faire en CL

Cordialement

Hors ligne

#13 2018-05-09 10:34:56

Quser
Membre
Inscription : 2018-04-13
Messages : 11

Re : Script sous IBMi v6R1

Je note aussi que la commande saisis directement sur le système me renvoie bien le résultat escompté.

QSH CMD('java -cp /corp/Monitor.jar as400monitor.IbmiSubsys "10.10.0.12" "Qsys" "QCTL" 1')

Cordialement

Hors ligne

#14 2018-05-11 10:57:36

macounet
Membre
Lieu : Oise
Inscription : 2007-07-17
Messages : 609

Re : Script sous IBMi v6R1

Bonjour,

Est-ce que tu as un message dans la joblog après l'exécution du CL ?

Hors ligne

#15 2018-05-11 12:32:32

maj
Membre
Inscription : 2011-11-24
Messages : 811

Re : Script sous IBMi v6R1

Bonjour,

Ton script QSH te renvoie les informations à l'écran. Si tu veux l'utiliser dans un CL, il faut renvoyer le résultat dans un fichier et l'analyser par la suite.

Vu que tu n'es pas "expert" en IBM i, le plus simple en CL :

CRTPF FILE(QGPL/BRMS) RCDLEN(500)   
DSPMSG MSGQ(BT/BRMS) OUTPUT(*PRINT)   
CPYSPLF FILE(QPDSPMSG) TOFILE(QGPL/BRMS) SPLNBR(*LAST)   

Puis exploiter le fichier QGPL/BRMS pour rechercher les codes erreur.

select * from brms             
where brms like '%BRM10A1%'         

Jean

Hors ligne

#16 2018-05-16 13:18:58

Quser
Membre
Inscription : 2018-04-13
Messages : 11

Re : Script sous IBMi v6R1

Bonjour,

Le script fonctionne à présent à une exception près. il y a avait des erreurs lors de la compilation.

Le Problème actuel est le suivant:
Je dois taper à chaque fois sur la touche "Entrée" pour passer d'une commande à une.. c'est à dire, quand il check le subsystem QCTL, je dois tapez après sur la touche "Entrée pour qui passe au check suivant (QBATCH) et ainsi de suite. A la fin, il attend bien 10 min et recommence le processus.

Comment faire pour qu'on ait plus à taper "Entrée" à chaque fois, qu'il exécute tout le CL jusqu'au DLYJOB sans avoir à tapez sur "Entrée" à chaque fois?

PGM
LOOP:

QSH CMD('java -cp /corp/Monitor.jar as400monitor.IbmiSubsys "10.10.0.12" "Qsys" "QCTL" 1')
QSH CMD('java -cp /corp/Monitor.jar as400monitor.IbmiSubsys "10.10.0.12" "Qsys" "QBATCH" 1')
QSH CMD('java -cp /corp/Monitor.jar as400monitor.IbmiSubsys "10.10.0.12" "Qsys" "QSPL" 1')
QSH CMD('java -cp /corp/Monitor.jar as400monitor.IbmiSubsys "10.10.0.12" "Qsys" "QINTER" 1')

DLYJOB DLY(600)
GOTO LOOP
ENDPGM

D'avance merci pour votre retour.

Cordialement

Dernière modification par Quser (2018-05-16 13:21:25)

Hors ligne

#17 2018-05-16 13:40:23

fred_crrm
Membre
Lieu : Belfort
Inscription : 2007-03-02
Messages : 550
Site Web

Re : Script sous IBMi v6R1

Bonjour,

Je pense qu'il faut ajouter >LOG.txt à la commande pour ne pas avoir d'interruption écran.

QSH CMD('java -cp /corp/Monitor.jar as400monitor.IbmiSubsys "10.10.0.12" "Qsys" "QCTL" 1' >LOG.txt)

FRED

Hors ligne

#18 2018-05-16 15:12:38

Quser
Membre
Inscription : 2018-04-13
Messages : 11

Re : Script sous IBMi v6R1

Bonjour et merci pour ce retour.

j'ai ajouté la redirection >LOG.txt comme demandé. Mais ca ne fonctionne pas. Dois-je au préalable créer ce fichier ?
Le but est de demander au script d'exécuter la prochaine commande sans intervention externe. Voila la commande saisi

Ai-je fais de confusion au niveau des cote? lorsque j'exécute, il me retourne command not found java -cp /corp/java/AsMonitor.jar as400monitor.IbmiMsg "/QSYS.LIB/BT.LIB/BRMS.MSGQ" 5000 "172.16.0.69" "BRM10A1" "BRM1480" "BRM148A" "BRM16A1" "BRM1820"
                         
0013.00              STRQSH     CMD('''java -cp /corp/java/AsMonitor.jar +
0014.00                              as400monitor.IbmiMsg + 
0015.00                              "/QSYS.LIB/BT.LIB/BRMS.MSGQ" 5000 +
0016.00                              "172.16.0.69" "BRM10A1" "BRM1480" +                                   
0017.00                              "BRM148A" "BRM16A1" "BRM1820"'' >LOG.txt')
                                               

Merci encore.

Cordialement

Dernière modification par Quser (2018-05-16 15:32:03)

Hors ligne

#19 2018-05-16 16:42:09

remit
Membre
Inscription : 2007-02-25
Messages : 225

Re : Script sous IBMi v6R1

Peut-être faire en début de programme :

ADDENVVAR  ENVVAR(QIBM_QSH_CMD_OUTPUT) VALUE('NONE')

qui permet de ne pas afficher le prompt Shell lors de l'exécution de la commande QSH.

cf. par exemple http://forum.xdocs400.com/viewtopic.php … 449#p20449

Hors ligne

#20 2018-05-16 17:31:53

Quser
Membre
Inscription : 2018-04-13
Messages : 11

Re : Script sous IBMi v6R1

Bonsoir et merci pour votre retour.

J'ai rajouté la variable d'environnement comme préconisé. Mais aucun changement; je dois toujours tapez "Entrée pour passer d'un check à l'autre.
Très bizarre qu'il n'ai pas de retour chariot (\n) sous CL. Je souhaite juste qu'il passe à la ligne suivante afin d'exécuter la prochaine commande, pas me demande à chaque de taper "Entrée"

PGM
           DCL        VAR(&MIN) TYPE(*INT) VALUE(900) 
           ADDENVVAR  ENVVAR(QIBM_QSH_CMD_OUTPUT) VALUE('NONE')

   DEBUT:                                                         
            QSH CMD('java -cp /corp/java/AsMonitor.jar as400monitor.IbmiSubsys "10.0.0.1" "Qsys" "QCMN" 1')
            QSH CMD('java -cp /corp/java/AsMonitor.jar as400monitor.IbmiSubsys "10.0.0.1" "Qsys" "QCTL" 1')
            QSH CMD('java -cp /corp/java/AsMonitor.jar as400monitor.IbmiSubsys "10.0.0.1" "Qsys" "QBATCH" 1')     
                                                                 
            DLYJOB     DLY(&MIN)                                 
   GOTO DEBUT                                                     
ENDPGM                         

Cordialement

Dernière modification par Quser (2018-05-16 17:39:16)

Hors ligne

Pied de page des forums