Archive for the ‘AS400 - iSeries - System i’ Category.

Exit programs per il controllo delle connessioni ODBC/JDBC

Su AS400 è possibile effettuare il controllo di ogni connessione ODBC/JDBC tramite l'uso di Exit Programs che possono essere mandati in esecuzione:
  1) Al collegamento di ogni client; (Punto di uscita QIBM_QZDA_INIT)
  2) Prima dell’esecuzione di ogni statement SQL. (Punto di uscita QIBM_QZDA_SQL1)
Tali programmi, gestiti con il comando WRKREGINF, ricevono in ingresso i dati della richiesta (profilo utente, statement SQL...) e restituiscono un flag che indica se accettarla.
Vediamo un semplice programma CL per il controllo del collegamento:

             PGM        PARM(&STATUS &REQUEST)
/* Flag di accettazione/rifiuto richiesta */
             DCL        VAR(&STATUS) TYPE(*CHAR) LEN(1)
/* Parametro di ingresso contenente anche il nome utente */
             DCL        VAR(&REQUEST) TYPE(*CHAR) LEN(2000)
             DCL        VAR(&UTENTE) TYPE(*CHAR) LEN(10)
/* Di default rifiuto tutte le connessioni */
             CHGVAR     VAR(&STATUS) VALUE('0')
/* Recupero nome utente */
             CHGVAR     VAR(&UTENTE) VALUE(%SST(&REQUEST 1 10))
/* Abilito solo le connessioni di FRANCO */
             IF         COND(&UTENTE *EQ 'FRANCO') THEN(CHGVAR +
                          VAR(&STATUS) VALUE('1'))
             ENDPGM

Per attivare il programma si utilizzi il comando
ADDEXITPGM EXITPNT(QIBM_QZDA_INIT) FORMAT(ZDAI0100) PGMNBR(1) PGM(LIB/PGM)
che avrà effetto al riavvio di tutti i programmi QZDASOINIT (programmi sever che gestiscono le chiamate ODBC/JDBC).

ANT su AS400

AntMi sono trovato a dover usare ANT su AS400 tramite QShell. Per poter far funzionare questo strumento in modo corretto, dopo aver copiato il contenuto di una installazione standard di ANT in una qualsiasi cartella dell'Integrated File System di AS400 (nel nostro esempio /pippo/ant), è necessario immettere qualche piccola configurazione nel file /ect/profile.
E' possibile modificare o creare ex novo tale file ad esempio tramite il comando EDTF '/etc/profile', impostandolo quindi in un modo simile al seguente:

#Modificare l'impostazione seguente con la versione voluta di JDK
export JAVA_HOME=/QIBM/ProdData/Java400/jdk14      

export ANT_HOME=/pippo/ant
export PATH=:$ANT_HOME/bin:$PATH  

#Non c'entra con ANT, ma diamo un aspetto migliore al promt QSH
PS1='$PWD'\>

QShell su AS400 - Elenco oggetti in una libreria per dimensione

Lo strumento QSH (QShell interpreter) su AS400 ha enormi possibilità.
Per esempio ecco un comando per generare una stampa contenente l'elenco degli oggetti in una libreria ordinati per dimensione:

QSH CMD('ls -al /qsys.lib/NOMELIBRERIA.lib | grep .FILE | sort +4 -r | RFile -wQ QSYSPRT')