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

Problemi spegnimento AS400 per passaggio ad ora legale

Il passaggio all'ora legale può bloccare il lavoro QSYSSCD, responsabile dello spegnimento automatico dell'AS400. Tale lavoro potrebbe bloccarsi con il messaggio CPF1076 Il valore specificato non è ammesso per il valore di sistema QIPLDATTIM. Ciò può avvenire nelle macchine per le quali la riaccensione è programmata tra le 2 e le 3 di notte. Tale orario, infatti, non esiste nella giornata di passaggio dall'ora solare all'ora legale! Il programa QSYSSCD al suo avvio verifica che l'orario di accensione previsto è impostato su un valore inesistente e si blocca.
Per risolvere il problema:
1) non programmare il riavvio della macchina tra le 2 e le 3 del giorno di passaggio all'ora legale;
2) digitare STRCLNUP per riavviare il programma QSYSSCD e quindi garantire il normale funzionamento del sistema.

Resettare il Service Processor di un AS400

Nei giorni scorsi uno degli AS400 (V5R3) che contribuisco a gestire non ha effettuato il consueto riavvio mattutino. Sul pannellino era presente il codice SRC B150F22A. Il tentativo di un IPL manuale falliva con il medesimo codice di errore. Ecco come, con l'aiuto del supporto IBM, ho cercato di rianimarlo.

Il codice SRC indicava un errore nel Service Processor, la scheda che controlla la macchina prima ancora dell'avvio del sistema operativo OS400 (i5OS o IBM i che dir si voglia).

Come prima misura, ho tentato di riavviare la macchia dopo aver tolto la spina, così come riportato in questo articolo IBM. Ovviamente la cosa non ha avuto successo.

Il secondo tentativo è stato quello di resettare il Service Processor premendo con la punta di una graffetta il micro interruttore posto nel forellino a destra del tasto di accensione. Anche in questo caso non ho avuto fortuna.

Pannello AS400

La terza prova è stata quella di effettuare un reset totale del Service Processor interrompendo l'alimentazione della batteria tampone.

Per effettuarla ho aperto la macchina ed estratto la scheda del Service Processor, premendo le due levette viola che la bloccano.

AS400 aperto

Ho quindi introdotto un foglio di carta sotto la graffetta che fissa la batteria tampone, al fine di interrompere per qualche decina di secondi l'alimentazione ai circuiti.

AS400 aperto

A questo punto la macchina si è riavviata con successo! :-)

Una nota. La macchina effettua il primo IPL dopo il reset in modo manuale. Occorre quindi disporre della console. Inoltre state attenti alle impostazioni di data/ora fusorario ed ora legale. Nel mio caso, infatti, non ho impostato correttamente tali parametri ed al mattino successivo la macchina non si è riavviata in quanto il suo orologio era indietro di un paio d'ore. :-(

Linux ed AS400: link utili

Ho trovato un utile blog su Ubuntu, nel quale è possibile leggere diversi articoli interessanti relativi alla connessione ad AS400 da sistemi Linux. Ecco alcuni link:

Inserire record solo se non presenti tramite un solo prepared statement

In un bellissimo articolo su IT Jungle ho trovato un interessante trucco. Il problema è quello di inserire i dati in una tabella, solo nel caso non esista già una chiave uguale, utilizzando un solo prepared statement. Ecco la soluzione ;-)

 
INSERT INTO myTable
(KEY, code, name)
SELECT Cast(? AS Int),
       Cast(? AS VarChar(30)),
       Cast(? AS Char(10))
  FROM SYSIBM.SysDummy1
 WHERE NOT EXISTS
    (SELECT 1
       FROM myTable
      WHERE KEY=?)

con il relativo codice Java che ne fa uso:

 
Connection conn=DriverManager.getConnection("jdbc:as400://myas400;naming=sql","user","pwd");
String sql="Insert Into myLib.myTable (key, code, name) " +
  "Select Cast(? As Int)," +
  "       Cast(? As VarChar(30))," +
  "       Cast(? As Char(10))" +
  "  From SysIBM.SysDummy1 " +
  " Where Not Exists " +
  " (Select * " +
  "    From myLib.myTable " +
  "   Where key=?)";
PreparedStatement ps=conn.prepareStatement(sql);
ps.setInt(1, 3);                // Column 1
ps.setString(2, "Test It");   // Column 2
ps.setFloat(3,"Fun");         // Column 3
ps.setInt(4, 3);               // Where Clause
ps.execute();                  // Run the statement
ps.close();
conn.close();

Quanta RAM è installata su un AS400 - System i

Per verificare la quantità di memoria RAM installata su AS400, andare al menù HARDWARE con il comando
GO HARDWARE
quindi utilizzare la chiave

4. Gestione delle risorse del processore

Il che equivale al comando

WRKHDWRSC *PRC

La RAM è rappresentata dalle ultime righe, simili a

MS01 30D2 Operativo Scheda memoria princi
MS02 30D2 Operativo Scheda memoria princi
MS03 30D2 Operativo Scheda memoria princi
MS04 30D2 Operativo Scheda memoria princi

L'opzione 7 a fianco di ogni riga mostra la dimensione del modulo di memoria installato.

Novità V6R1: indici SQL derivati

Una dei piccoli ma significativi miglioramenti del rilascio V6R1 di OS400 (IBM i), è la possibilità di creare indici non solo su campi di database, ma anche sul risultato di operazioni. Tali indici possono essere sfruttati sia dal motore di ottimizzazione (in particolare dal nuovo SQE, ma in parte anche da CQE) per migliorere le prestazioni delle query.
Vediamo acluni esempi.

 
CREATE INDEX TOT_TEMPI ON Lavorazioni (TLavoro + TAttrezzaggio)
 
CREATE INDEX NomeCogn ON Dipendenti (CONCAT(CONCAT(Nome,’ ‘), Cognome))
 

Il vantaggio maggiore si può però ottenere nel rendere le ricerche case-insensitive:

 
SELECT * FROM Articoli
  WHERE UPPER(Descrizione) = ‘TAVOLO’
 
CREATE INDEX DescrUpp ON Articoli(UPPER(Descrizione))
 

Disattivazione del mirroring su AS400

I modelli più piccoli di AS400 consegnati negli ultimi hanni dispongono di due dischi configurati in RAID 0 (grazie a Consulente EDP per la correzione) RAID 1 (mirroring). Ciò, se da un lato aumenta l'affidabilità del sistema, dall'altro ne diminuisce ovviamente la capienza ed ha anche un influenza negativa sulle prestazioni. Come è noto, infatti, AS400 cerca quando è possibile di parallelizzare l'accesso fisico ai dati, distribuendo le tabelle di database su tutti i dischi di cui dispone, ottimizzando gli spostamenti dei braccini delle unità.
In certe situazioni risulta pertanto consigliabile rinunciare alla protezione del mirroring per ottenere una maggiore velocità del database.
Per disattivare la protezione del mirroring procedere così.
Continue reading ‘Disattivazione del mirroring su AS400’ »

Evento IBM “Power for developers”

Ieri ho partecipato all'evento Power for developers presso la sede IBM di Milano, una breve presentazione delle novità del mondo AS400 - iSeries - System i rivolte agli sviluppatori. Il mio giudizio sia sull'evento che sui contenuti non può essere entusiasta.
Continue reading ‘Evento IBM “Power for developers”’ »

Un diverso application server su AS400

Forse non tutti sanno che, a partire dal V5R4, è disponibile su AS400 - iSeries un application server diveso da Tomcat e dal tristemente noto Websphere (per gli amici WebPallaAlPiede).
Si chiama "IBM Integrated Web Application Server for i5/OS", ed è l'application server sfruttato da IBM web query.
In attesa di provarlo, vi rinvio alla documentazione ufficiale IBM.

Migrazione a V6R1

E' in preparazione da parte di IBM un Redbook relativo alla migrazione alla nuova versione di OS/400 V6R1 (detto anche IBM i). Buona lettura ;-)