Bonjour,
Je n'arrive pas à savoir d'où vient cette erreur "retry at step 2 exceeds the total number of step 1...": elle survient uniquement quand une uproc de type job SAP est re-soumise après avoir été incidentée et quand elle est composée de plus d'un step dans le CL d'execution (en plus du step 0 + step1)
Le job se soumet pourtant correctement dans SAP et se termine aussi correctement. Le step 2 s'execute donc correctement mais le retour pose problème ou c'est le passage au step suivant n°3. Pourtant, mon nombre de jalon est correct (ici 3 steps/jalons + step 0).
Rien de sensationnel dans les logs de l'agent (et encore moins dans universe.log):
2013-18-11 14:45:59 # agt_trtgui_create_jobsap # WAITING FOR end of job (SAPLM20_P01) (14455900)
2013-18-11 14:46:02 # u_agt_synchro_sys # (GLOBAL QUERY) job (SAPLM20_P01) (14455900) terminated
2013-18-11 14:46:02 # agt_trtgui_create_jobsap # WAITING FOR (SAPLM20_P01) (14455900) ==> returns 0
2013-18-11 14:46:02 # u_agt_trt_requete_v43 # Request type is V43_9
2013-18-11 14:46:02 # agt_jobsap_trt_purge # start PURGE
2013-18-11 14:46:02 # agt_jobsap_trt_purge # number of job to purge (1)
2013-18-11 14:46:02 # agt_jobsap_trt_purge # PURGE job (SAPLM20_P01) (14455900)
2013-18-11 14:46:02 # uxsap_api_disconnect # Connection already closed
Quelqu'un a déjà eu ce message ? Je le comprends comme si j'essayais de relancer un step qui n'existe pas (supérieur au nombre total) mais mon uproc a l'air OK. SI je relance au step précédent, donc le n°1, ça passe ; au step suivant, le n°3, ça passe aussi... ' />
Si j'enlève le step 1 et 3 pour qu'il ne reste que le n°2 (qui devient donc le n°1), la relance est ok aussi...
Je dois dire que je sèche un peu...
Tout indice bienvenu !
+ /universe/UNIV50/exec/uxupd sap report=ZCA_PR_LM_BA_LM_SAP variant=Z_EDC_BAET variable=P_FILNTN parameter=BA_237377_BAET
client (version 4.4) release Dec 10 2012
connect to SAP Job Control Server 44
+ Test_Erreurs
+ /universe/UNIV50/exec/uxstr sap api CHILDREN jobname=SAPLM20_P01 steplist=((BATCH,F,ZCA_PR_LM_BA_LM_SAP,Z_EDC_BAET))
client (version 4.4) release Dec 10 2012
connect to SAP Job Control Server 44
1 steps are detected
retry at step 2 exceeds the total number of step 1
job creation failed. statut 20 reponse N
Message code unknown : (-1)
Ci-après l'uxshw de l'uproc et en fichier joint l'extract:
TYPE | upr
ITEMS | upr : SAPLM20P01
| vupr : 000
| class : LM20
| clfil :
| label : pgm: ZCA_PR_LM_BA_LM_SAP / var: Z_EDC_BAET
| dom : I
| appl : SA
| upt : CL_INT
| definfo :
| defsev :
| retry :
| fperiod : n
| memo : o
| nbper : 1
| command :
| execdir :
| incclass : ( LM21 ,SAPLM )
| launchvar : (
[
varname : USER
vvalue : BATCH
vtype : T
vformat : 12
valmin :
valmax :
]
[
varname : LANGUAGE
vvalue : F
vtype : T
vformat : 1
valmin :
valmax :
]
[
varname : RELEASED
vvalue : Y
vtype : T
vformat : 1
valmin :
valmax :
]
[
varname : SPOOLLIST
vvalue : N
vtype : T
vformat : 1
valmin :
valmax :
]
[
varname : NB_JALON
vvalue : 3
vtype : Q
vformat :
valmin : 1
valmax : 10
]
[
varname : JOBNAME
vvalue : SAPLM20_P01
vtype : T
vformat : 50
valmin :
valmax :
]
[
varname : PROGRAM
vvalue : ZCA_PR_LM_BA_LM_SAP
vtype : T
vformat : 50
valmin :
valmax :
]
[
varname : VARIANT
vvalue : Z_EDC_BAET
vtype : T
vformat : 50
valmin :
valmax :
]
[
varname : VARIABLE
vvalue : P_FILNTN
vtype : T
vformat : 10
valmin :
valmax :
]
[
varname : REP_SVG
vvalue : /inter/save/LM/in
vtype : T
vformat : 100
valmin :
valmax :
]
)
| depcon : ( )
| inccon : ( )
| rescon : ( )
| termins : ( )
| formula : ( )
| sap_xbp2 : ( )
| sap_xbp2_step : ( )
| sap_xbp2_step_pr : ( )
| sap_xbp2_step_ar : ( )
| sap_pchain : ( )
| sap_ipack : ( )
| ftp_get : ( )
| ftp_put : ( )
| ejb : ( )
| ejb_param : ( )
| create_param : ( )
| notify : ( )
| upr_status : ( )
| script :==================================================
#!/bin/ksh
#----------------------------------------------
# Nom de la procedure :
# Date de creation :
# Objet :
# Auteur :
#----------------------------------------------
# Date de Modification :
# Objet :
# Auteur :
#----------------------------------------------
set -x
#Récupération du paramètre "nom du fichier"
FICHIER=$S_P1
# Passage du FNAME a la prochaine Uproc
$UXEXE/uxset parm $FICHIER
#---- Variables d'environnement ----
Nombre_De_Jalon=$NB_JALON#---- Si Parm STEP98 reçu de l'uproc precedente, alors on passe au jalon 98
if [ X$S_P1 = "Xstep98" ]
then
S_NUMJALON=98
fi
Numero_De_Jalon=${S_NUMJALON}let Numero_De_Jalon=Numero_De_Jalon
#---- Fonction Message ----#Message()
{
#---- Message dans la trace systeme
print "$*"#---- Message dans la trace automate
${UXEXE}/uxset msg "$*"
}#---- Fonction de test des espaces ----
Test_Espaces()
{
case ${S_ESPEXE} in
A) Message "Pas d'execution en espaces d'application"
exit 0;;
I) Message "Execution de la procedure client";;
S) Message "Simulation sans execution"
sleep 15
exit 0;;
X) Message "Execution de la procedure client";;
esac
}
#---- Fonction de reprise ----Reprise()
{
if [ ${S_REPRISE} = "O" ]
then
Message « Reprise de l’uproc ${S_PROCEXE} au step${Numero_De_Step} »
# COMMANDE_A_LANCER ET OPTIONS DE REPRISE
fi}
#---- Fonction de test des erreurs ----Test_Erreurs()
{
if [ $? -ne 0 ]
then
Message "Traitement termine en erreur !!!"
exit 1
fi
}
#---- Fonction Jalon 0 ----Jalon0()
{
${UXEXE}/uxset step "0"
# check mandatory items
# ---------------------
#
if [ "x$JOBNAME" = "x" ]
then
echo "jobname parameter is mandatory !"
echo "Abort job !"
exit 1
fiif [ "x$USER" = "x" ]
then
echo "user parameter is mandatory !"
echo "Abort job !"
exit 1
fi
if [ "x$LANGUAGE" = "x" ]
then
echo "language parameter is mandatory !"
echo "Abort job !"
exit 1
fiif [ "x$PROGRAM" = "x" ]
then
echo "program parameter is mandatory !"
echo "Abort job !"
exit 1
fi
# start condition
# ---------------
#
if [ "$RELEASED" = "Y" ]
then
SCHEDULE=""
else
SCHEDULE="schedule"
fi# load balancing
# --------------
#
if [ "x$SERVER" = "x" ]
then
APP_SERVER=""
else
APP_SERVER="SERVER=${SERVER}"
fi
# get spool list
# --------------
#
if [ "$SPOOLLIST" = "Y" ]
then
SPOOL="SPOOLLIST"
fiMessage "Demarrage normal de l'uproc"
}
#---- Fonction Jalon 1 (Etape 1) ----
Jalon1()
{
${UXEXE}/uxset step "1"timestamp=$(date +"%y%m%d_%H%M%S")
case ${S_ESPEXE} in A) Message "Pas d'execution en espaces d'application"
echo "CMD"
exit 0;;
I) Message "Execution de la procedure client"
Test_Erreurs
;; S) Message "Simulation sans execution"
sleep 15
exit 0;;
X) Message "Execution de la procedure client"
echo
if [[ -e $FICHIER ]]
then
FIC_CIBLE=$(basename ${FICHIER})
FIC_CIBLE=${FIC_CIBLE}.${timestamp}
echo "###########################################################"
echo "Sauvegarde du fichier $FICHIER dans ${REP_SVG}/${FIC_CIBLE}"
echo "###########################################################"
echo
cp -p $FICHIER ${REP_SVG}/${FIC_CIBLE}
Test_Erreurs
chgrp sapsys ${REP_SVG}/${FIC_CIBLE}
Test_Erreurs
else
echo "###########################################################"
echo "Fichier $FILE absent"
echo "###########################################################"
exit 8
fi
;;
esac
}#---- Fonction Jalon 2 (Etape 2) ----
Jalon2()
{
set -x
${UXEXE}/uxset step "2"case ${S_ESPEXE} in
A) Message "Pas d'execution en espaces d'application"
exit 0;;
I) Message "Execution de la procedure client"
# create SAP job
# --------------
#
exit 0
;;
S) Message "Simulation sans execution"
sleep 15
exit 0;;
X) Message "Execution de la procedure client"
# create SAP job
# --------------
#
if [[ -f $FICHIER ]]
then
NOM_FIC=$(basename $FICHIER)
$UXEXE/uxupd sap report=$PROGRAM variant=$VARIANT variable=$VARIABLE parameter=$NOM_FIC
Test_Erreurs
$UXEXE/uxstr sap api CHILDREN jobname="${JOBNAME}" ${SCHEDULE} ${APP_SERVER} ${SPOOL} steplist="(($USER,$LANGUAGE,$PROGRAM,$VARIANT))"
Test_Erreurs
else
echo "Pas de fichier: programme non lancé"
exit 8
fi
;;
esac
}
#---- Fonction Jalon 3 (Etape 3) ----Jalon3()
{
${UXEXE}/uxset step "3"
case ${S_ESPEXE} in
A) Message "Pas d'execution en espaces d'application"
exit 0;;
I) Message "Execution de la procedure client"
exit 0
;;
S) Message "Simulation sans execution"
sleep 15
exit 0;;
X) Message "Execution de la procedure client"
echo
if [[ -e $FICHIER ]]
then
echo "############################################"
echo "Suppression de $FICHIER"
echo "############################################"
rm -f $FICHIER
Test_Erreurs
else
echo "############################################"
echo "Fichier $FICHIER inexistant"
echo "############################################"
exit 8
fi
;;
esac
}Jalon98()
{
${UXEXE}/uxset step "98"
${UXEXE}/uxset parm step98
Message "Terminaison correcte forcee !!!"
exit 0
}
Jalon99()
{
${UXEXE}/uxset step "99"
Message "Terminaison correcte forcee !!!"
exit 0
}#---- Main ----
Repriseif [ ${S_NUMJALON} -eq 98 ]
then
Jalon98
fi
if [ ${S_NUMJALON} -eq 99 ]
then
Jalon99
fiwhile [ ${Numero_De_Jalon} -le ${Nombre_De_Jalon} ]
do
Jalon${Numero_De_Jalon}
(( Numero_De_Jalon = Numero_De_Jalon + 1 ))
done
exit 0