Pascal_Osthus-bugat_1753

AS400 Agent -- ein erhält man funktionstüchtiges UCEX_END Programm?

Discussion created by Pascal_Osthus-bugat_1753 on Oct 30, 2016

Falls UCEX_END benutzt werden soll, um den AS400-Agenten zu stoppen, muss das CLP vor Kompilierung korrigiert und angepasst werden. Mit der Installation eines AS400-Agenten, wird der Member UCEX_END in der folgenden Form geliefert.


================================================================================
 PGM        PARM(&EXECNR)                              
                                                       
 DCL        VAR(&EXECNR) TYPE(*DEC) LEN(6)             
                                                       
 DCL        VAR(&EXECNRA) TYPE(*CHAR) LEN(6)           
 DCL        VAR(&DTAQ) TYPE(*CHAR) LEN(10)             
 DCL        VAR(&DTAQL) TYPE(*CHAR) LEN(10) +          
              VALUE('AE_UC300')                        
 DCL        VAR(&LEN) TYPE(*DEC) LEN(5 0) VALUE(20)    
 DCL        VAR(&VAL) TYPE(*CHAR) LEN(20) VALUE('END') 
                                                       
 CHGVAR     VAR(&EXECNRA) VALUE(&EXECNR)               
 CHGVAR     VAR(&DTAQ) VALUE('DQ' *CAT &EXECNRA)       
                                                       
 CALL       PGM(QSNDDTAQ) PARM(&DTAQ &DTAQL &LEN &VAL) 
 ENDPGM                                                       
================================================================================                                  

Diese CLP kann nicht in dieser Form benutzt werden. Der Parameter $EXECNNR existiert nicht und der Name der Dataqueue ist einfach DQ. Um eine anwendbares CLP zu erhalten, muss der Code-Inhalt wie folgt angepasst werden.

================================================================================
PGM                                                    
                                                              
DCL        VAR(&DTAQ) TYPE(*CHAR) LEN(10)              
DCL        VAR(&DTAQL) TYPE(*CHAR) LEN(10) +           
                    VALUE('UC4V11')                           
DCL        VAR(&LEN) TYPE(*DEC) LEN(5 0) VALUE(20)     
DCL        VAR(&VAL) TYPE(*CHAR) LEN(20) VALUE('END')  
                                                              
CHGVAR     VAR(&DTAQ) VALUE('DQ')                      
                                                              
CALL       PGM(QSNDDTAQ) PARM(&DTAQ &DTAQL &LEN &VAL)  
ENDPGM                                                 
================================================================================

Der einzige kritische Parameter ist der Wert der Variable &DTAQL. Er muss den Namen der Agentenlibrary enthalten. In unserem Fall handelt es sich um die Library UC4V11. UCEX_END kann nun kompiliert werden und anschließend zum Stoppen des Agenten benutzt werden.

      
Der AS400-Agent kann nun mit den beiden folgenden Anweisungen, kontrolliert werden,

CALL PGM (UC4V11/UCEX_END) -- Stoppen des Agenten
CALL PGM (UC4V11/UCEX_RUN) -- Starten des Agenten



Outcomes