JOB serveur
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
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
-
- Site Admin
- Messages : 813
- Enregistré le : mer. 14 févr. 2007, 18:00:03
- Localisation : Nantes
- Contact :
Current user
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)
Web Services SOAP QUSER / QZBSJOBD
Merci Christian.
C'est effectivement la seule solution que j'ai trouvée.
Je me bats à présent avec la jobd...
C'est effectivement la seule solution que j'ai trouvée.
Je me bats à présent avec la jobd...
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
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
-
- Site Admin
- Messages : 813
- Enregistré le : mer. 14 févr. 2007, 18:00:03
- Localisation : Nantes
- Contact :
REINZJOB
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)
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...
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...
-
- Site Admin
- Messages : 813
- Enregistré le : mer. 14 févr. 2007, 18:00:03
- Localisation : Nantes
- Contact :
JOBD
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 ??
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)