Le paramètre BCHTIMLMT va éviter qu'un programme soumis en mode restreint bloque la machine au delà d'un certain temps.
Au delà du temps imparti, le job sera arrêté, et le sous-système de contrôle redémarré.
Si tu fais un DSPCMD sur les commandes ENDSYS et ENDSBS, tu verras qu'elles n'ont pas les mêmes environnement d'exécution. Pourquoi ? Il faudrait poser la question à IBM. reste que ENDSYS ne peut pas être exécuté en BATCH, donc pas au travers du planning d'exécution (WRKJOBSCDE). Les commandes sont en gros équivalentes.
Si tu fais un ENDSBS OPTION(*CNTRLD), alors les jobs tournant recevront un message d'arrêt du sous-système. S'ils sont programmés pour intercepter ce message (avec SHTDN dans un RPG par exemple), ils peuvent s'arrêter proprement. Sinon ils seront arrêtés de manière forcée lorsque la limite indiquée dans le paramètre DELAY() sera atteinte.
Pour le JobLog, rien d'extraordinaire. Fais un CHGJOB en début de programme, pour programmer une sortie de tout ce qui se déroule, avec enregistrement des commandes CL : CHGJOB LOG(4 00 *SECLVL) LOGCLPGM(*YES) pour avoir un maximum de détails. Ce ne sera pas forcément très lisible, mais au moins tu auras des infos.
Partager