JOB serveur

RPG (3 et 4, free), CL, SQL, etc...
Répondre
ROMJERIPA
Messages : 19
Enregistré le : mer. 27 janv. 2016, 16:05:35

Message par ROMJERIPA »

Bonjour,

Lorsque j'appelle un web service SOAP, exposé sur l'ibm-i à partir d'un programme RPGLE j'ai un job qui tourne sous le profil QUSER.
Ceci alors que lorsque j'expose le WEB service j'indique bien qu'il doit s'exécuter sous le profil EXPLOIT.

En fait, lorsque je fais un RTVJOBA:
- j'ai un CURUSER à EXPLOIT
- J'ai USER à QUSER

Ceci me pose un gros soucis car le profil EXPLOIT est bien paramètré dans notre système et correspond à un environnement dédié (production), mais le profil QUSER n'est pas paramétré et ne correspond donc pas à un environnement dédié.

Je souhaitais utiliser un serveur web pour la production en indiquant le profil EXPLOIT lors de la création du serveur, et un serveur web pour le développement en indiquant le profil EXPDEV lors de la création de ce second serveur.
Mais les deux sont exécutés sous QUSER.

Comment faire pour que les web services soient exécutés avec le USER à EXPLOIT ou à EXPDEV ? Et non avec le USER à QUSER ?

Merci

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

Current user

Message par cmasse »

Vous êtes sur un travail anticipé QZRCSRVS. Ils sont tous démarrés avec QUSER. Ceci n'est pas négociable. Utilisez la notion de Current User.
Christian Massé (Volubis.fr)

ROMJERIPA
Messages : 19
Enregistré le : mer. 27 janv. 2016, 16:05:35

Web Services SOAP QUSER / QZBSJOBD

Message par ROMJERIPA »

Merci Christian.
C'est effectivement la seule solution que j'ai trouvée.

Je me bats à présent avec la jobd...

ROMJERIPA
Messages : 19
Enregistré le : mer. 27 janv. 2016, 16:05:35

Message par ROMJERIPA »

Peut on changer la jobd en cours d'utilisation par un programme ?

En effet je récupère le user QUSER que je remplace par le curuser EXPLOIT.
Mais en jobd j'ai toujours la QZBSJOBD ce qui me pose bien des problèmes, j'aurai souhaité récupérer la jobd associée au profil EXPLOIT.
Ne sachant le faire je pensais changer de jobd dés le début du programme exposé, mais je ne sais pas si cela est possible...

Merci

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

REINZJOB

Message par cmasse »

Ce code modifie le JOB avec une JOBD (qualifiée) fournie en paramètre.

Code : Tout sélectionner

            PGM        PARM(&JOBDQ)
             DCL        VAR(&JOBDQ) TYPE(*CHAR) LEN(20)
             DCL        VAR(&APIRETOUR) TYPE(*CHAR) LEN(5000)
             DCL        VAR(&DEB) TYPE(*DEC) LEN(4 0)
             DCL        VAR(&JDLG) TYPE(*DEC) LEN(5 0)
 
             DCL        VAR(&USRLIBLS) TYPE(*CHAR) LEN(2750)
             DCL        VAR(&USRLIBL2) TYPE(*CHAR) LEN(250)
             DCL        VAR(&CMD) TYPE(*CHAR) LEN(300)
             DCL        VAR(&LG) TYPE(*DEC) LEN(15 5) VALUE(300)
 
             DCL &OUTPTY *CHAR 1
             DCL &OUTQ *CHAR 10
             DCL &OUTQL *CHAR 10
             DCL &DEV *CHAR 10
             DCL &LOG *CHAR 1
             DCL &SEV *DEC (2 0)
             DCL &LOGTXT *CHAR 10
             DCL &INQMSG *CHAR 10
 /* VARIABLES UTILISEES PAR LA GESTION DE MESSAGES */
             DCL        &ERRORSW *LGL                     /* SWITCH  */
             DCL        &MSGID *CHAR LEN(7)               /* ID MSG  */
             DCL        &MSGDTA *CHAR LEN(100)            /* DATA    */
             DCL        &MSGF *CHAR LEN(10)               /* FICHIER */
             DCL        &MSGFLIB *CHAR LEN(10)            /* BIBLI   */
 /* GESTION DES ERREURS                            */
             MONMSG     MSGID(CPF0000) EXEC(GOTO ERREUR)
 
      CALL QWDRJOBD PARM(&APIRETOUR X'000007D0'  'JOBD0100' &JOBDQ +
                         X'00000000')
 /*                     VAR EN RETOUR   2000      FORMAT    JOBD QUALIF */
 /*                        CODE RETOUR */
   /* DÉBUT DE LA LISTE */
      CHGVAR &DEB %BIN(&APIRETOUR 361 4)   /* = DÉPLACEMENT */
      CHGVAR &DEB (&DEB + 1)               /* POS DE DÉBUT */
   /* NBR DE POSTES     */
      CHGVAR &JDLG %BIN(&APIRETOUR 365 4)
   /* CALCUL DE LA LONGEUR */
      CHGVAR &JDLG (&JDLG * 11)
 
             CHGVAR &USRLIBLS %SST(&APIRETOUR &DEB &JDLG)
 
             IF (&USRLIBLS *EQ '*SYSVAL') THEN(DO)
              RTVSYSVAL  SYSVAL(QUSRLIBL) RTNVAR(&USRLIBL2)

              /* AU CAS OU UN NOM DE BIBLIOTHÈQUE FAIT 10C. */
              CHGVAR     VAR(&USRLIBLS) VALUE(                 +
                         %sst(&usrlibl2   1 10) *CAT ' '  *CAT +
                         %sst(&usrlibl2  11 10) *CAT ' '  *CAT +
                         %sst(&usrlibl2  21 10) *CAT ' '  *CAT +
                         %sst(&usrlibl2  31 10) *CAT ' '  *CAT +
                         %sst(&usrlibl2  41 10) *CAT ' '  *CAT +
                         %sst(&usrlibl2  51 10) *CAT ' '  *CAT +
                         %sst(&usrlibl2  61 10) *CAT ' '  *CAT +
                         %sst(&usrlibl2  71 10) *CAT ' '  *CAT +
                         %sst(&usrlibl2  81 10) *CAT ' '  *CAT +
                         %sst(&usrlibl2  91 10) *CAT ' '  *CAT +
                         %sst(&usrlibl2 101 10) *CAT ' '  *CAT +
                         %sst(&usrlibl2 111 10) *CAT ' '  *CAT +
                         %sst(&usrlibl2 121 10) *CAT ' '  *CAT +
                         %sst(&usrlibl2 131 10) *CAT ' '  *CAT +
                         %sst(&usrlibl2 141 10) *CAT ' '  *CAT +
                         %sst(&usrlibl2 151 10) *CAT ' '  *CAT +
                         %sst(&usrlibl2 161 10) *CAT ' '  *CAT +
                         %sst(&usrlibl2 171 10) *CAT ' '  *CAT +
                         %sst(&usrlibl2 181 10) *CAT ' '  *CAT +
                         %sst(&usrlibl2 191 10) *CAT ' '  *CAT +
                         %sst(&usrlibl2 201 10) *CAT ' '  *CAT +
                         %sst(&usrlibl2 211 10) *CAT ' '  *CAT +
                         %sst(&usrlibl2 221 10) *CAT ' '  *CAT +
                         %sst(&usrlibl2 231 10) *CAT ' '  *CAT +
                         %sst(&usrlibl2 241 10) )
             ENDDO
 
             CHGVAR &CMD ('CHGLIBL LIBL(' *TCAT &USRLIBLS *TCAT ')')
             CALL QCMDEXC PARM(&CMD &LG)
 
             CHGVAR &OUTQ %SST(&APIRETOUR 87 10)
             IF (&OUTQ *EQ '*USRPRF') +
               RTVUSRPRF  OUTQ(&OUTQ) OUTQLIB(&OUTQL)
             ELSE +
               CHGVAR &OUTQL %SST(&APIRETOUR 97 10)
 
             IF         COND(&OUTQ *NE '*DEV') THEN(DO)
              IF         COND(&OUTQ *EQ '*WRKSTN') THEN(CHGJOB +
                           OUTQ(*WRKSTN))
               ELSE CHGJOB     OUTQ(&OUTQL/&OUTQ)
             ENDDO
 


|

             CHGVAR &OUTPTY %SST(&APIRETOUR 108 1)
             CHGVAR &DEV    %SST(&APIRETOUR 109 10)
             IF (&DEV *EQ '*USRPRF') +
               RTVUSRPRF  PRTDEV(&DEV)
             CHGVAR &SEV %BIN(&APIRETOUR 157 4)
             CHGVAR &LOG %SST(&APIRETOUR 161 1)
             CHGVAR &LOGTXT %SST(&APIRETOUR 162 10)
             CHGVAR &INQMSG %SST(&APIRETOUR 182 10)
 
             CHGJOB     OUTPTY(&OUTPTY) PRTDEV(&DEV) LOG(&LOG &SEV +
                          &LOGTXT) INQMSGRPY(&INQMSG)
             RETURN
 
              /*----------------------------------------*/
 ERREUR:      /*        GESTION DES ERREURS             */
              /*----------------------------------------*/
             IF         &ERRORSW SNDPGMMSG MSGID(CPF9999) +
                          MSGF(QCPFMSG) MSGTYPE(*ESCAPE) /* 2EME FOIS*/
                                                         /* ARRET PGM*/
             CHGVAR     &ERRORSW '1' /* MISE EN PLACE DU SWTICH     */
 
 /* RENVOI DES MESSAGES DE TYPE *DIAG SI FIN ANORMALE */
 DIAGMSG:    RCVMSG     MSGTYPE(*DIAG) MSGDTA(&MSGDTA) MSGID(&MSGID) +
                          MSGF(&MSGF) MSGFLIB(&MSGFLIB)
             IF         (&MSGID *EQ '       ') GOTO EXCPMSG
             SNDPGMMSG  MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +
                          MSGDTA(&MSGDTA) MSGTYPE(*DIAG)
             GOTO       DIAGMSG /* BOUCLE SUR MESSAGES *DIAG      */
 
 /* RENVOI DU MESSAGE D'ERREUR                        */
 EXCPMSG:    RCVMSG     MSGTYPE(*EXCP) MSGDTA(&MSGDTA) MSGID(&MSGID) +
                          MSGF(&MSGF) MSGFLIB(&MSGFLIB)
             SNDPGMMSG  MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +
                          MSGDTA(&MSGDTA) MSGTYPE(*ESCAPE)
             ENDPGM


Christian Massé (Volubis.fr)

ROMJERIPA
Messages : 19
Enregistré le : mer. 27 janv. 2016, 16:05:35

Message par ROMJERIPA »

Si j'ai bien compris:
On change les valeurs du job en cours en les remplaçant par les valeurs d'une jobd définie.

N'y a t'il pas un moyen de forcer mon web service à utiliser une jobd déjà définie à la place de QZBSJOBD ?
En effet tous mes soucis viennent de là.
J'ai pourtant déclaré le serveur et le web service de façon à ce qu'ils utilisent le profil EXPLOIT mais ils ne le font pas directement.
Je passe par QUSER et je récupère la jobd QZBSJOBD et non la JOBD associée au profil EXPLOIT...

Exemple:
Notre applicatif défini des emplacements de stockage à partir des noms des JOBD et là lorsque ma chaîne récupère le nom de jobd QZBSJOBD cela ne correspond à aucun environnement chez nous.

Je comptais créer 2 serveurs (Production et DEV) et:
- Sur le serveur de Production: utiliser le profil EXPLOIT pour pointer, via la jobd associée, sur notre environnement de production.
- Sur le serveur de Développement: utiliser le profil EXPDEV pour pointer, via la jobd associée, sur notre environnement de développement.

Mais je suis coincé puisque les 2 serveurs utilisent la jobd QZSBJOBD...

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

JOBD

Message par cmasse »

J'ai bien compris.

je ne sais affectivement que modifier les paramètres qui auraient été donnés par la JOBD, pas la JOBD elle même.

voir le Point service, s'ils peuvent faire remonter le problème au Lab ??
Christian Massé (Volubis.fr)

ROMJERIPA
Messages : 19
Enregistré le : mer. 27 janv. 2016, 16:05:35

Message par ROMJERIPA »

Merci Christian, j'ai ouvert un ticket chez IBM pour voir ce qu'il me répondent mais je crains que la solution soit d'utiliser le CURUSER et non le USER.
Mais ceci induit des modifications de programmes supplémentaires chez nous.

Je vous tiens informé de la réponse d'IBM.

Merci

Répondre