WikiUp

Introduzione

La strada che porta ad una "buona installazione" passa anche attraverso la "pulizia" del sistema operativo che supporta il sistema applicativo.

In questa sezione tratteremo:
  • Valori di sistema
  • Completamento installazione programmi su licenza
  • Default per comandi
  • Cambio SIGNON
  • Accensioni/Spegnimenti macchina
  • Salvataggi
  • Pulizia e ottimizzazione delle risorse
  • Schedulazione lavori
  • Sottosistemi e code lavori
  • Profili utente e autorizzazioni
  • Device
  • Utilità

N.B.: l'applicazione dei suggerimenti che seguono deve comunque essere decisa in comunione con il responsabile del sistema presso il cliente

Valori di sistema

Suggeriamo:
_1_Nome_n_ _1_Descrizione_n_ _1_Valore_n_ QAUTOVRT Config. autom. unità virtuali _5_*NOMAX_n_ _3_(impostare a 0 solo se non si vuole permettere collegamenti non codificati)_n_ _1_ cambia valore >>_n_

CHGSYSVAL SYSVAL(QAUTOVRT) VALUE(*NOMAX)

QCTLSBSD Sottosistema di controllo _5_QSYS/QCTL_n_


cambia valore >>

CHGSYSVAL SYSVAL(QCTLSBSD) VALUE('QCTL')


QDEVRCYACN Azione errore I/E unità *ENDJOB
(qualora si avesse la configurazione di device a nome prefissato, si può
valutare di impostare il default *DSCJOB per recuperare i lavori sospesi)

cambia valore >>

CHGSYSVAL SYSVAL(QDEVRCYACN) VALUE(*ENDJOB)


QJOBMSGQFL Azione integrale della coda messaggi di lavoro *WRAP

cambia valore >>

CHGSYSVAL SYSVAL(QJOBMSGQFL) VALUE(*WRAP)


QLMTSECOFR Limite accesso unità respons.riser. 0

cambia valore >>

CHGSYSVAL SYSVAL(QLMTSECOFR) VALUE('0')


QMAXSGNACN Azione per tentativi non validi di collegamento 3

cambia valore >>

CHGSYSVAL SYSVAL(QMAXSGNACN) VALUE('3')


QMAXSIGN Num. mass. tentativi collegam. 3

cambia valore >>

CHGSYSVAL SYSVAL(QMAXSIGN) VALUE('3')


QPWDEXPITV Interv. scadenza par. d'ordine 120

cambia valore >>

CHGSYSVAL SYSVAL(QPWDEXPITV) VALUE('120')


QPWDMAXLEN Lung. mass. par. d'ordine ne 10

cambia valore >>

CHGSYSVAL SYSVAL(QPWDMAXLEN) VALUE(10)


QPWDMINLEN Lung. min. par. d'ordine ne 8

cambia valore >>

CHGSYSVAL SYSVAL(QPWDMINLEN) VALUE(8)


QPWDRQDDIF Contr. pr. d'ordine dupl. 5 (10)
(impostazioni sicurezza condizionate dal "documento programmatico sulla
sicurezza")

cambia valore >>

CHGSYSVAL SYSVAL(QPWDRQDDIF) VALUE('5')


QSECURITY Liv.riserv. sistema 30
(salvo specifica richiesta)

cambia valore >>

CHGSYSVAL SYSVAL(QSECURITY) VALUE('30')


QSTRUPPGM Progr. di avvio SMESYS/B£QQQS
(Il prototipo del programma è distribuito da SME.up e si trova nel
file sorgente SMEQSM. Invitiamo a spostarlo nel file SRC_SYS della
libreria SMESYS e impostare le eventuali proprie modifiche)



gestione valore >>

WRKSYSVAL SYSVAL(QSTRUPPGM)


QSYSLIBL Parte sist. elenco librerie aggiungere SMESYS
(come da installazione durante LODRUN)

gestione valore >>

WRKSYSVAL SYSVAL(QSYSLIBL)



Comandi collegati:

Gestione valori di sistema >>

WRKSYSVAL



Stampa valori di sistema >>

WRKSYSVAL OUTPUT(*PRINT)



Completamento installazione programmi su licenza

I nuovi sistemi normalmente pervengono già preinstallati con tutti i programmi su licenza necessari al funzionamento completo di Sme.up, però in casi particolari può essere necessario completare l'installazione di sistema operativo con:
  • 57xxSS1 opzione 13: OS/400 - Include apertura del sistema
  • 57xxSS1 opzione 22: OS/400 - ObjectConnect
Il primo è necessario qualora si necessiti compilare programmi che utilizzano le API di sistema operativo, mentre il secondo è necessario qualora si intenda utilizzare il supporto del sistema operativo per trasferire librerie ed oggetti da un AS400 ad un altro (ad esempio per il passaggio da un vecchio sistema ad uno nuovo), utilizzando i comandi SAVRSTLIB e SAVRSTOBJ.

Default comandi

L'ambiente di sviluppo di Sme.up, sia a livello di sviluppo standard che presso i clienti, sfrutta diverse personalizzazioni di comandi di sistema, che vengono effettuate mediante il cambiamento dei default (CHGCMDDFT).

Impostando opportunamente le variabili di ambiente:
_h_ Valore attuale: V7R3M0
_h_ Valore attuale: V7R3M0
_h_ Valore attuale: XXX

che attualmente impostano:
  • Release di compilazione oggetti 'V7R3M0'
  • Release di salvataggio supporto 'V7R3M0'
  • Label default inizializzazione nastro 'XXX'

_h_Att.ne se si effettuano modifiche alle variabili è necessario effettuare un refresh tramite F05

si potranno impostare i default dei comandi di sistema come proposti:
» Creazione file sorgente con lunghezza a 112 bytes (CRTSRCPF) _8_ eseguo impostazione >>_n_ CHGCMDDFT CMD(CRTSRCPF) NEWDFT('RCDLEN(112)')

» Nel debug si possono aggiornare i files di produzione (STRDBG, STRISDB) _8_ eseguo impostazione >>_n_ CHGCMDDFT CMD(STRDBG) NEWDFT('UPDPROD(*YES)') CHGCMDDFT CMD(STRISDB) NEWDFT('UPDPROD(*YES) INVPGM(*NO)')

» Creazione file video con riemissione formato (CRTDSPF) _8_ eseguo impostazione >>_n_ CHGCMDDFT CMD(CRTDSPF) NEWDFT('RSTDSP(*YES)')

» Creazione file di database con ampiezza (CRTPF) _8_ eseguo impostazione >>_n_ CHGCMDDFT CMD(CRTPF) NEWDFT('SIZE(100000 10000 100)')

» Inizializzazione nastro (INZTAP) _8_ eseguo impostazione >>_n_ CHGCMDDFT CMD(INZTAP) NEWDFT('NEWVOL(XXX) CHECK(*YES) DENSITY(*CTGTYPE) CLEAR(*NO)')

» Salvataggio libreria (SAVLIB) _8_ eseguo impostazione >>_n_ CHGCMDDFT CMD(SAVLIB) NEWDFT('TGTRLS(V7R3M0) SAVACT(*LIB)')

» Salvataggio oggetto (SAVOBJ) _8_ eseguo impostazione >>_n_ CHGCMDDFT CMD(SAVOBJ) NEWDFT('TGTRLS(V7R3M0) SAVACT(*LIB)')

» Salvataggio cartella (SAVDLO) _8_ eseguo impostazione >>_n_ CHGCMDDFT CMD(SAVDLO) NEWDFT('TGTRLS(V7R3M0) SAVACT(*YES) DTACPR(*YES)')

» Opzioni di compilazione di programmi RPG (CRTRPGPGM) _8_ eseguo impostazione >>_n_ CHGCMDDFT CMD(CRTRPGPGM) NEWDFT('TGTRLS(V7R3M0) USRPRF(*OWNER)')

» Opzioni di compilazione di programmi SQL (CRTSQLRPG) _8_ eseguo impostazione >>_n_ CHGCMDDFT CMD(CRTSQLRPG) NEWDFT('COMMIT(*NONE) OPTION(*SOURCE) TGTRLS(V7R3M0)')

» Opzioni di compilazione di programmi RPGLE (CRTBNDRPG) _8_ eseguo impostazione >>_n_ CHGCMDDFT CMD(CRTBNDRPG) NEWDFT('DFTACTGRP(*NO) ACTGRP(*CALLER) DBGVIEW(*SOURCE) USRPRF(*OWNER) TGTRLS(V7R3M0)')

» Opzioni di compilazione di programmi SQLRPGLE (CRTSQLRPGI) _8_ eseguo impostazione >>_n_ CHGCMDDFT CMD(CRTSQLRPGI) NEWDFT('COMMIT(*NONE) DBGVIEW(*SOURCE) USRPRF(*OWNER) TGTRLS(V7R3M0)')

» Opzioni di compilazione di programmi CLP (CRTCLPGM) _8_ eseguo impostazione >>_n_ CHGCMDDFT CMD(CRTCLPGM) NEWDFT('USRPRF(*OWNER) TGTRLS(V7R3M0)')

» Opzioni di compilazione di programmi CLLE (CRTBNDCL) _8_ eseguo impostazione >>_n_ CHGCMDDFT CMD(CRTBNDCL) NEWDFT('DFTACTGRP(*NO) ACTGRP(*CALLER) USRPRF(*OWNER) TGTRLS(V7R3M0) DBGVIEW(*SOURCE)')

» Opzioni di compilazione moduli (CRTRPGMOD) _8_ eseguo impostazione >>_n_ CHGCMDDFT CMD(CRTRPGMOD) NEWDFT('TGTRLS(V7R3M0)')

» Opzioni di fine lavoro (ENDJOB) _8_ eseguo impostazione >>_n_ CHGCMDDFT CMD(ENDJOB) NEWDFT('OPTION(*IMMED) LOGLMT(0)')

» Opzioni creazione profilo utente (CRTUSRPRF) _8_ eseguo impostazione >>_n_ CHGCMDDFT CMD(CRTUSRPRF) NEWDFT('AUT(*USE)')

» Metodo recupero azioni schedulate (ADDJOBSCDE) _8_ eseguo impostazione >>_n_ CHGCMDDFT CMD(ADDJOBSCDE) NEWDFT('RCYACN(*NOSBM)')

» Copia variabili di ambiente in sottomissione lavori (SBMJOB) _8_ eseguo impostazione >>_n_ CHGCMDDFT CMD(SBMJOB) NEWDFT('CPYENVVAR(*YES)')



Cambio SIGNON

L'operazione è semplice e rende gli utenti + contenti! Basta creare un file video apposito.

Si parte daQDSIGNONsorgente contenuto inQGPL/QDDSSRC(QDSIGNON)presente di default su tutti i sistemi AS400.
Si può modificare a piacere, con l'unica accortezza di non riordinare mai i campi I/O (mediante i consueti tasti F4+F6 dallo SDA), che comporterebbe la variazione del buffer di comunicazione tra sistema e file video e non funzionerebbe più.

Una volta compilato nella libreria SMESYS, bisogna abbinarlo al sottosistema QINTER per renderlo attivo, seguendo la seguente procedura operativa:
1) Assicurarsi che tutti gli utenti attivi in QINTER abbiano concluso i propri lavori e siano scollegati dal sistema
2) Collegarsi con l'utenteQSECOFRo alternativo, e digitare il comando_7_TFRJOB JOBQ(QCTL) per trasferire il proprio lavoro nel sottosistema di controllo.
eseguo ATTENZIONE!_7_il lavoro corrente verrà riavviato.. >>

TFRJOB ?*JOBQ(QCTL)


3) Chiudere sottosistema QINTER con il comando ENDSBS SBS(QINTER) OPTION(*IMMED)
eseguo >>

ENDSBS ?*SBS(QINTER) ?*OPTION(*IMMED)


4) Abbinare il formato video di collegamento al sottosistema QINTER, mediante il comando CHGSBSD SBSD(QINTER) SGNDSPF(SMESYS/QDSIGNONxx)
eseguo >>

CHGSBSD ?*SBSD(QINTER) ??SGNDSPF(SMESYS/QDSIGNONxx)


5) Avviare sottosistema QINTER mediante il comando STRSBS SBSD(QINTER)
eseguo >>

STRSBS ?*SBS(QINTER)



Accensioni/Spegnimenti macchina

Lo spegnimento e l'accensione possono dipendere da diversi fattori:
  • GO power
  • PWRDWNSYS RESTART(*YES)
  • Sincronizzare CHGCLNUP con *SCDPWROFF

Salvataggi

Quando

  • Predisporre supporti specifici per LUN-MAR-MER-GIO (VEN)
  • Predisporre inoltre salvataggi di sistema almeno una volta all'anno o prima delle ferie principali

Cosa

  • Librerie
    • tutte le notti SMEDATxxx, SME_xxx, SMESYS
    • ad ogni rilascio o installazione di aggiornamento SMEDEV, SMEUP_OBJ, SMESTD, SMESRC, SMEMOD, SMECON
  • Cartelle eventuali
  • Root eventuali

Come

Utilizzo del S.o. per librerie e cartelle (già previsto da b£5)
Utilizzo del comando SAV per Root oppure QEZPWROFFP (vedi B£5)

N.B.: Con i salvataggi organizzati con tab. B£5 è possibile sincronizzare lo spegnimento della macchina dopo aver effettuato i salvataggi.
Nel caso in cui il lavoro che supporta il salvataggio (B£PWR..) sia in stato MSGW non rispondere al messaggio, bensì "abbattere" il lavoro con *IMMED, in modo da non SPEGNERE la macchina.

Sospesi

Meccanismo dell'*UNLOAD

Schedulazione lavori

Gestione lavori schedulati

WRKJOBSCDE B£UT05A E' fortemente consigliato di schedulare ogni notte questo programma di utility, che ha lo scopo di controllare la dimensione di alcuni file di smeup, al fine di applicarvi un eventuale ridimensionamento nel caso la percentuale di occupazione raggiunga il 90%. L'operazione di ridimensionamento non comporta aumento della memoria occupata fintanto che non vengono scritti nuovi nuovi record. Tale lavoro schedulato deve avere una JOBD con lista librerie Sme.UP. Nella call a questo programma va indicata la libreria da controllare: CALL PGM(B£UT05A) PARM('SMEDATXXX') Se esistono differenti ambienti, il pgm dovrebbe essere schedulato per ognuno di questi.



Pulizia e ottimizzazione risorse

Suggeriamo:
CLEANUP

IMPOSTARE
Consentita ripulitura automatica . . . . . . . . Y Orario inizio giornaliero della ripulitura . . . *SCDPWROFF Numero di giorni per la conservazione di: Messaggi utente . . . . . . . . . . . . . . . . 1 Messaggi di sistema e di terminale . . . . . . 1 Registrazioni lavori e altre emissioni di sistema . . . . . . . . . . . . . . . . . . . 2 Giornali di sistema e registrazioni di sistema 1


NOTE
La ripulitura automatica, nel caso siano attive le personalizzazioni di sistema (tab.B£5), parte PRIMA delle attività di chiusura impostate in tale tabella.
L'orario di inizio giornaliero deve essere impostato ad un certo orario qualora la macchina non si spenga.

ALTRE
Verificare le stampe utente e di sistema con un WRKOUTQ *ALL, elimina tutto il vecchiume (ad esempio QEZDEBUG e QEZJOBLOG possono generalmente essere svuotate);
Verificare se ci sono dei files QHST* di troppo *FILE nella QSYS
Con RCLSPLSTG *NONE si può recuperare lo spazio delle stampe cancellate

Profili utente e autorizzazioni

Suggeriamo 3 tipologie di utenti che avranno CLASSE
  • *USR, Utenti finali del sistema informativo
  • *PGMR, Manutentori del sistema informativo
  • *SECOFR, Responsabile del sistema informativo

Profili di sistema

Le impostazioni dei profili di sistema determinano le autorizzazioni di tutti gli utenti, rappresentando i profili di gruppo.
» Verifica impostazioni profilo di gruppo UTENTI FINALI (QUSER)
eseguo >>

?CHGUSRPRF USRPRF(QUSER) USRCLS(*USER) LMTCPB(*YES) SPCAUT(*USRCLS)


» Verifica impostazioni profilo di gruppo SISTEMISTA APPLICATIVO (QPGMR)
eseguo >>

?CHGUSRPRF USRPRF(QPGMR) USRCLS(*PGMR) LMTCPB(*NO) SPCAUT(*JOBCTL *SAVSYS *SPLCTL)



Profili personali

» Creazione profilo UTENTE FINALE (*USER/QUSER)
eseguo >>

?CRTUSRPRF USRPRF(*N) USRCLS(*USER) SPCAUT(*USRCLS) JOBD(SMEJOBD) GRPPRF(QUSER) OWNER(*GRPPRF) AUT(*USE) INLPGM(*LIBL/B£QQ50) LMTCPB(*YES)


» Creazione profilo UTENTE SISTEMISTA APPLICATVO (*PGMR/QPGMR)
eseguo >>

?CRTUSRPRF USRPRF(*N) USRCLS(*PGMR) SPCAUT(*USRCLS) JOBD(SMEJOBD) GRPPRF(QPGMR) OWNER(*GRPPRF) AUT(*USE) INLPGM(*LIBL/B£QQ50)


» Creazione profilo UTENTE RESPONSABILE RISERVATEZZA / SISTEMISTA (*SECOFR/QPGMR)
eseguo >>

?CRTUSRPRF USRPRF(*N) USRCLS(*SECOFR) SPCAUT(*USRCLS) JOBD(SMEJOBD) GRPPRF(QPGMR) OWNER(*GRPPRF) AUT(*EXCLUDE) INLPGM(*LIBL/B£QQ50)



Comandi correlati
Gestione profili

WRKUSRPRF USRPRF(*ALL)


Stampa profili

PRTUSRPRF SELECT(*USRCLS)



Criteri di codifica del Profilo

Salvo esigenze specifiche o esistenza di norme interne all'azienda, un criterio per assegnare profili che diminuisca l'ambiguità, potrebbe essere CCCNNN, dove:
  • CCC >> prime 3 lettere del cognome
  • NNN >> prime 3 lettere del nome

Profilo *SECOFR

  • Sarebbe opportuno avere un profilo di classe *SECOFR (oltre a QSECOFR). Questo perchè, se dimentichiamo la pwd di QSECOFR, è possibile reimpostarla con l'altro (sempre che si ricordi la pwd di quest'ultimo!!)
  • Se non si ricorda e/o non è possibile ripristinare la pwd di QSECOFR è necessario ricorrere da un IPL manuale con l'opzione M del display oppure impostando il valore di sistema QIPLTYPE a 1, entrare nell'SST con utente QSECOFR e password QSECOFR (se non hai cambiato anche quella) e reimpostare la password di QSECOFR al suo default (QSECOFR).
  • Non dimenticare di impostare l'autorizzaione sull'oggetto QSECOFR
_h_* e sopratutto l'eventuale utente creato per Backup
Assegna autorizazzione

GRTOBJAUT OBJ(QSECOFR) OBJTYPE(*USRPRF) USER(*PUBLIC) AUT(*EXCLUDE)


Assegna autorizazzione utente di backup

?GRTOBJAUT OBJ(UTENTE) OBJTYPE(*USRPRF) USER(*PUBLIC) AUT(*EXCLUDE)



Profilo QPGMR

  • Non dimenticare di impostare l'autorizzazione sui seguenti oggetti:
RSTOBJ

GRTOBJAUT OBJ(RSTOBJ) OBJTYPE(*CMD) USER(QPGMR) AUT(*USE)


RSTLIB

GRTOBJAUT OBJ(RSTLIB) OBJTYPE(*CMD) USER(QPGMR) AUT(*USE)


RST

GRTOBJAUT OBJ(RST) OBJTYPE(*CMD) USER(QPGMR) AUT(*USE)



Altre

  • Disabilitare (tranne QSECOFR) tutti i profili Q*
  • Tutti gli oggetti dovrebbero essere di proprietà QPGMR

Device

Utilità

WRKJOB in alternativa al DSPJOB

  • Attivazione del WRKJOB in alternativa al DSPJOB per la richiesta sistema(in gergo la sequenza di tasti shift+Attn o shift+Esc con la linea comandi completa), modificare il testo del messaggio CPX2313 sostituendo DSPJOB con WRKJOB

eseguo >>

WRKMSGD MSGID(CPX2313) MSGF(QCPFMSG)



Query/400 con , e . invertiti

  • Inversione notazione internazionale per esecuzione Query/400: modificare il testo del messaggioCPX2D06in modo da ottenere un testo di messaggio come quello indicato nella sottoindicata riga:
42$11 - 2$ 1112
  • se il separatore migliaia visualizzato è,anziché., e, il separatore decimale visualizzato è.anziché,, quindi si è in una situazione di inversione dei segni separatori migliaia/decimale, si può procedere modificando la stringa iniziale del messaggio:
in42$11
    • la cifra a sinistra del $ governa il separatore decimale (2=, 1=.)
    • la cifra a destra del $ governa il separatore migliaia (2=, 1=.)

eseguo >>

WRKMSGD MSGID(CPX2D06) MSGF(QCPFMSG)



Debug in schermo esteso

  • Impostazione DEBUG origine ILE con schermo esteso (Widescreen), mediante l'impostazione di una variabile di ambiente a livello di sistema.

eseguo >>

ADDENVVAR ENVVAR(ILE_DEBUGGER_1) VALUE(ALLOW_WIDE_SCREEN) LEVEL(*SYS) REPLACE(*YES)



Trasferimento spool tra AS400

  • Trasferimento dei file di SPOOL tra due AS400, è possibile utilizzare il comando SNDTCPSPLF per copiare dallo spool di un AS400_O in una coda di stampa di un altro AS400_D. Il comando vuole come prerequisiti il protocollo TCP attivato, una coda di stampa sull'AS400 di destinazione.

eseguo >>

? SNDTCPSPLF RMTSYS(nome) PRTQ(coda) FILE(file) JOB(job) DESTTYP(*AS400) TRANSFORM(*NO)


SNDTCPSPLF RMTSYS(<nome>) PRTQ(<coda>) FILE(<file>) JOB(<job>) DESTTYP(*AS400) TRANSFORM(*NO) nome: indirizzo IP o nome host AS400 (dipende da impostazione risuluzione host) coda: nome della coda di stampa destnazione file: nome del file da trasferire job : nome del job da trasferire


Caratteri non stampabili

  • In casistiche in cui il programma di scrittura segnala di non essere in grado di riprodurre "caratteri non stampabili", si può ovviare modificando il printer file in modo da indurre che i caratteri non stampabili vengano sostituiti da " " (blank). I printer files di Smeup sono già impostati con tale opzione, ma qualora si necessitasse la modifica di un printer file che presenta tale problema, procedere con il seguente comando:

eseguo >>

? CHGPRTF FILE(PRT198) RPLUNPRT(*YES ' ')



Appunti

  • Disabilitare tutti i profili Q* (tranne QSECOFR)
  • Creazione ambiente di test (RSTLIB post salvataggi)
  • Salvataggi con *UNLOAD

Add new attachment

Only authorized users are allowed to upload new attachments.
«