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)
Index
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
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
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
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
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
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
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
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
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:
--- Roberto De Pedrini Faq400.comApprofitto di una recente discussione su IBM TechXchange per segnalarvi un’ottima guida di Anna Niederschulte: dedicata alla configurazione di SFTP…
Voglio segnalarvi questo secondo post di Massimo Duca nella serie SQL Tips. In questa puntata vediamo come usare SQL per…
Oggi voglio segnalarvi un interessante articolo scritto da Marco Riva sul suo blog Markonetools: “Non è bello far paragoni… ma”🔗…
Voglio segnalarvi questo interessante post di Massimo Duca, il primo di una serie di articoli dedicati a SQL su IBM…
Nell’ultimo mio ultimo articolo “Rimuovere i vecchi spool file per tenere sotto controllo il numero di lavori nel sistema” ho pubblicato…
Il valore di sistema QMAXJOB (intervallo valido: 32.000 - 970.000; valore predefinito = 163.520) definisce il numero massimo di lavori…