Gestione del Sistema IBM i: FAQ & Howto (Parte 4) IT

Questa è la terza parte della raccolta di FAQ & Howto sulla gestione del sistema IBM i : puoi vedere le altre raccolte qui da questi due link :

Gestione del sistema IBM i: FAQ & Howto (Parte 1)

Gestione del sistema IBM i: FAQ & Howto (Parte 2)

Gestione del sistema IBM i: FAQ & Howto (Parte 3)

iAdmin-FAQ-032 Tenere sotto controllo i Trigger

C’è un ottimo post su RPGPGM.COM di Simon Hutchinson che mostra come tenere sotto controllo i triggers in una libreria dati:

RPGPGM.COM : Finding triggers using SYSTRIGGER

iAdmin-FAQ-033 Terminare JOB in Dump … che non si chiudono con ENDJOB

Ogni tanto può succedere che non si riesca a terminare correttamente un JOB in fase di DUMP con il comando ENDJOB (Opzione 4 di WRKACTJOB).

In casi estremi si può ricorrere ad un apposito comando: ENDJOBABN End Job Abnormal ma bisogna valutare tutti i rischi di questo comando: il Job viene forzatamente terminato ma il sistema viene flaggato come “Abnormal End System” e alcune funzionalità potrebbero essere disabilitate fino al prossimo IPL …

Prima di utilizzarlo verificare bene

iAdmin-FAQ-034 Controllare velocemente gli utenti *DISABLED (e il loro ultimo login-valido)

SELECT USER_NAME,USRCLS,STATUS,
           DATE(PRVSIGNON) LastSignon
       FROM QSYS2.USER_INFO
       WHERE STATUS = '*DISABLED' 
       order by DATE(PRVSIGNON) desc;

Maggiori info : https://www.rpgpgm.com/2015/11/getting-information-about-user-profiles.html

iAdmin-FAQ-035 Lista di tutti gli utenti del gruppo QPGMR

SELECT CAST(GROUPNAME AS CHAR(10)) AS GROUP,
         CAST(USERNAME AS CHAR(10)) AS USER
    FROM QSYS2.GROUP_PROFILE_ENTRIES
   WHERE GROUPNAME = 'QPGMR';

Maggiori info: https://www.rpgpgm.com/2015/11/getting-information-about-user-profiles.html

iAdmin-FAQ-036 Lista di tutti gli utenti con autorizzazione *ALLOBJ

SELECT USER_NAME,
       USRCLS,
       SPCAUT
    FROM QSYS2.USER_INFO
    WHERE STATUS = '*ENABLED'
          AND SPCAUT LIKE '%*ALLOBJ%'
          OR USER_NAME IN (SELECT USERNAME
                  FROM QSYS2.GROUP_PROFILE_ENTRIES
                  WHERE GRPPRF IN (SELECT USER_NAME
                              FROM QSYS2.USER_INFO
                              WHERE SPCAUT LIKE '%*ALLOBJ%'));

Maggiori info: https://www.rpgpgm.com/2015/11/getting-information-about-user-profiles.html

iAdmin-FAQ-037 Alternative a WRKOBJ per cercare oggetti nel sistema? QSYS2.OBJECT_STATISTICS

Invece di WRKOBJ la vista QSYS2.OBJECT_STATISTICS permette molta più flessibilità e programmabilità. Vediamo qualche esempio:

Lista dei Journal e dei Journal-receiver in una specifica libreria:

SELECT * FROM TABLE (QSYS2.OBJECT_STATISTICS('MYLIB ','*JRN *JRNRCV') ) AS X 

Lista di oggetti programma e service program in una libreria (lista semplice senza tutti dettagli)

SELECT * FROM TABLE (QSYS2.OBJECT_STATISTICS('MYLIB','PGM SRVPGM','*ALLSIMPLE')) X

Lista di tutti gli oggetti di una libreria con data di creazione > 1 anno e non utilizzati da 1 anno

SELECT OBJNAME,OBJTYPE,
         CAST(OBJCREATED AS DATE) AS CREATED_DATE,
         CAST(LAST_USED_TIMESTAMP AS DATE) AS LAST_USED,
         DAYS_USED_COUNT
    FROM TABLE(QSYS2.OBJECT_STATISTICS('MYLIB','ALL')) A
   WHERE LAST_USED_TIMESTAMP < current date - 1 year
      OR (OBJCREATED < current date - 1 year AND DAYS_USED_COUNT = 0);

Maggiori informazioni su:

https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_74/rzajq/rzajqudfobjectstat.htm

https://www.rpgpgm.com/2016/01/using-sql-for-objects-statistics.html

iAdmin-FAQ-038 IBM i on Power Performance FAQ

Nel blog di FAQ400, in un post di FAQ non poteva mancare un riferimento alla Bibbia delle performance IBM i, appena aggiornato agli inizi di Maggio 2020:

IBM i on Power – Performance FAQ – May 1, 2020

iAdmin-FAQ-039 Utenti *ALLOBJ e accesso non SSL

Sappiamo che lasciare gli utenti normali con le autorizzazioni *ALLOBJ può essere pericoloso da un punto di vista sicurezza…. se poi accedono direttamente senza la sicurezza SSL ancora peggio: in questo Github GIST di Scott Forstie troviamo proprio una semplice istruzione SQL per elencare tutte queste condizioni:

ALLOBJ users coming in over non SSL network interfaces .sql

iAdmin-FAQ-040 Analizzare le istruzione SQL DML per Insert/Update/Delete leggendo la Plan Cache

E’ possibile analizzare le istruzioni SQL che fanno Update/Delete e Insert di record nelle nostre tabelle per verificare tempi, numeri di volte e procedure che le eseguono. Si possono individuare istruzioni lente e ripetute per intervenire sugli indici o sulla scrittura dell’istruzione stessa.

C’è un ottimo Github Gist di Scott Forstie che presenta un intero script SQL per estrazione, creazione di una tabella riepilogativa, analisi dei dati raccoli:

Extract SQL DML insight from the Plan Cache.sql

Related Posts
Gestione del sistema IBM i: FAQ & Howto (Parte 3) IT

Questa è la terza parte della raccolta di FAQ & Howto sulla gestione del sistema IBM i : puoi vedere Read more

Gestione del sistema IBM i: FAQ e Howto (Parte 2 – IT)

Una seconda raccolta di FAQ e Tips sulla gestione del sistema IBM i: - Controllo dei JOB QSZASOINIT - Conversione Read more

Gestione del sistema IBM i: FAQ e Howto (Parte 1 – IT)

FAQ, trucchi e howto sulla System Administration di IBM i: check oggetti in blocco, RGZPFM furbo, whatsmyip per IBM i,DNS Read more

--- Roberto De Pedrini Faq400.com

Recent Posts

VsCode Extension: Bob Cozzi’s RPG IV to RPG Free Conversion

L’estensione “RPG IV to Free Format Conversion” sviluppata da Bob Cozzi (Cozzi Research) è pensata per semplificare la conversione di…

10 mesi ago

IBM i & SQL Tips #010 – Localizzare programmi nella Call Stack con STACK_INFO

Ciao a tutti, oggi voglio segnalarvi un altro interessante contributo di Massimo Duca, parte della sua ormai nota serie IBM…

10 mesi ago

Display file DDS Edit per VsCode, nuova preview.

Incuriosito da alcuni messaggi di Cristian Larsen su Linkedin (New Release - Display File DDS Edit v.0.10.1) ho voluto scaricare…

10 mesi ago

Project Bob: il nuovo strumento AI di IBM per sviluppo COBOL su IBM Z e RPG su IBM i

Ciao a tutti,oggi voglio segnalarvi un annuncio che potrebbe segnare una svolta per lo sviluppo applicativo su ambienti IBM: Project…

10 mesi ago

IBM i & SQL Tips #6: chiamare API REST e analizzare le risposte JSON con SQL

Voglio segnalarvi un nuovo articolo molto interessante di Massimo Duca nella serie IBM i & SQL Tips. In questo sesto…

11 mesi ago

Come funziona il passaggio di parametri a un programma IBM i (RPG / Cobol)

Ciao a tutti, voglio segnalarvi un post molto utile di Marco Riva sul suo sito Markonetools, in cui spiega in…

11 mesi ago