Resend messages (JRSNMSG)

Where allowed to run: All environments (*ALL)
Threadsafe: No
Parameters
Examples
Error messages

Comando JRSNMSG

Resend messages

Rimanda i messaggi del programma chiamante al chiamante del programma di riferimento.

Prerequisito della maggior parte delle altre utility da neroni.it anche se non dichiarato.

I messaggi ricevuti da un CPP (Command Processing Program) sono visibili nella joblog di dettaglio del lavoro esecutore ma non risultano in evidenza, ad esempio, sul video comandi chiamante del comando eseguito dal CPP. Il presente comando, compilato all'interno di un CPP in Control Language, si incarica di mettere tali messaggi in bella vista ritrasmettendoli dalla coda messaggi di programma del CPP ospitante alla coda messaggi del programma di riferimento, presente nella lista di chiamata del CPP ospitante stesso.

Genesi del tool

Tutti i programmatori costruttori di comandi mettono in fondo ai loro CPP in Control Language qualcosa per restituire i messaggi di errore al chiamante quando si presenta un errore imprevisto.

Non volendo ripetere in ogni CPP sempre le stesse istruzioni, questo tool, richiamato nel CPP solo se si presenta un errore imprevisto, provvede in proprio a rimandare al chiamante i messaggi ricevuti dal CPP.

All'inizio dei tempi basto' restituire i messaggi del padre al nonno. Recentemente, invece, la costruzione di tool piu' complessi e a piu' livelli ha reso necessario parametrizzare il nome del programma destinatario della rispedizione: non piu' solo il nonno (chiamante del chiamante) ma anche il chiamante di un programma di riferimento a piacere tra quelli in lista di chiamata.

Top

Parameters

Keyword Description Choices Notes
RMV Remove resent messages *NO, *YES Optional, Positional 1
STR Start message *NO, *YES Optional, Positional 2
REFPGM Reference program for messages Name, *CALLER Optional, Positional 3
Top

Remove resent messages (RMV)

Richiede la rimozione dei messaggi rispediti dal programma chiamante al chiamante del programma di riferimento.

Valori permessi:

*NO
Non rimuove dalla coda del padre i messaggi rispediti.
*YES
Rimuove dalla coda del padre i messaggi rispediti.
Top

Start message (STR)

Richiede l'invio di un messaggio di inizio rispedizione.

Per chiarire dove iniziano i messaggi rispediti, e' stato introdotto un messaggio <--- Resending start ---> che viene inviato come intestazione alla stessa coda messaggi di programma alla quale saranno rispediti i messaggi del padre.

Valori permessi:

*YES
Invia il messaggio di inizio rispedizione.
*NO
NON invia il messaggio di inizio rispedizione.
Top

Reference program for messages (REFPGM)

Programma di riferimento dei messaggi.

Nei tool complessi a piu' livelli, il presente parametro permette di condividere un programma di riferimento al cui chiamante verranno spediti tutti i messaggi di tutti i tool chiamati.

Normalmente il programma di riferimento e' il command processing program del tool di cappello che chiama tutti gli altri.

Valori permessi:

Nome del programma in lista di chiamata.
Il nome di un programma presente nella lista di chiamata del programma corrente.

I messaggi emessi dal programma corrente saranno indirizzati al chiamante del programma di riferimento, preferibilmete un video comandi.

Utile quando il comando corrente e' chiamato da un altro comando.

Valori speciali:

*CALLER
Il valore viene sostituito con il nome del programma chiamante del presente tool.

Utile quando il comando corrente e' usato per rimandare messaggi al chiamante in un tool a un solo livello.

Utile inoltre in tutti i vecchi utilizzi del presente tool.

Top

Esempi per JRSNMSG

Esempio 1: Rimanda i messaggi eliminando gli originali.

Con i soli parametri necessari:
   JRSNMSG RMV(*YES)
Anche con i parametri di default:
   JRSNMSG RMV(*YES) STR(*YES) REFPGM(*CALLER)

Questo comando, richiamato da un Command Processing Program quando viene intercettato in modo generico un errore imprevisto, tipicamente con un MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERRORE)), restituisce al chiamante del CPP tutti i messaggi accumulati nella coda del CPP stesso per evitare di costringere l'utente a cercarli nel log di tettaglio. I messaggi originali vengono rimossi dalla coda del CPP.

Esempio 2: Rimanda i messaggi senza eliminare gli originali.

Con i parametri necessari:
   JRSNMSG
Anche con i parametri di default:
   JRSNMSG RMV(*NO) STR(*YES) REFPGM(*CALLER)

Vale quanto detto nell'esempio 1 ma i messaggi originali non vengono rimossi dalla coda del CPP.

Top

Messaggi di errore

Vista la funzione marginale del comando, non e' stata considerato necessario interrompere l'esecuzione del chiamante in caso di malfunzionamento.

Nessun messaggio di rilascio viene quindi restituito al chiamante.

Top