Archive for the ‘AS400 - iSeries - System i’ Category.
25th September 2008, 10:32 am
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.

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.

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.

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.
22nd July 2008, 05:31 pm
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:
16th July 2008, 07:44 am
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();
1st July 2008, 05:30 pm
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.
3rd June 2008, 03:49 pm
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))
27th May 2008, 08:12 pm
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’ »
8th May 2008, 05:45 pm
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”’ »
24th April 2008, 05:48 pm
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.
17th April 2008, 03:03 pm
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 
3rd April 2008, 05:32 pm
In un precedente post abbiamo visto come eseguire un programma AS400 tramite JDBC/ODBC. Occupiamoci ora di come eseguire un comando tramite questa interfaccia.
Continue reading ‘Come eseguire un comando AS400 tramite JDBC/ODBC’ »