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

Statement SQL per determinare il nome dell’AS400 corrente

Per determinare il nome della macchina AS400 alla quale ci stiamo connettendo, è possibile utlizzare il seguente semplice statement SQL:

SELECT DATABASE() FROM SYSIBM.SYSDUMMY1

Attenzione: lo statement funziona solo con sistemi operativi V5R3 e superiori.

Collegamento Windows 7 a IFS netserver AS400

Per collegarsi all'IFS di AS400 da Windows 7 occorre seguire i passi descritti nel seguente documento IBM.

In particolare, lanciare SECPOL.MSC e modificare i 2 valori come in figura, quindi riavviare il PC.




Per collegare il disco di rete, ad esempio come unità S:, ricordarsi di specificare come dominio AS400: usare quindi il comando

net use s: \\nome_as400\mf /user:nome_as400\nome_user /persistent:yes

poi

net use \\as400 /savecred

NOTA AGGIUNTA IL GIORNO 11/7/2013
In un successivo articolo IBM si legge:

After the changes are saved, the user profiles passwords will need to be reset to allow the LANMAN Hash to be generated. Also note that a stop and restart of Windows will be required for some of the policies to take effect.

Quindi potrebbe essere necesario:

  • Resettare la password dell'utente Windows
  • Riavviare il server Windows

Problemi console AS400 (IBM i)

Ho già scritto su questo argomento, ma vorrei ricapitolare con maggiore chiarezza quanto è necessario fare in caso di mancato funzionamento della console oppure di impostazione errata della stessa (ad esempio spesso l’AS400 viene impostato con l’Operation Console di default anche quando la console è twinax).
In queste situazioni può essere necessario ricorrere alla funzione 65 + 21 + 11.
La funzione 65 + 21 + 11 è utilizzabile solo dal pannello.

1. Da pannello portare l’AS/400 in manuale (01 B M)
2. Selezionare la funzione 25 e invio
3. Selezionare la funzione 26 e invio
(Se il sistema risponde con 65 FF ripetere i passi 2 e 3)

Il pannello passa alla modalità avanzata.

La funzione 65 deve essere seguita entro 45 secondi da una funzione 21 e da una 11. Se passano 45 secondi, la funzione 21 forzerà il menù DST sulla console. A seconda dello stato dell’IPL, si potrebbero vedere dei cambiamenti sulla console se la console è ancora presente dopo la funzione 65.
Se le funzioni 65, 21 e 11 vengono richieste in meno di 45 secondi apparirà sul pannello un SRC: A6nn500A.
Ripetendo la funzione 65, 21 e 11 il sistema entra in modalità modifica in cui è possibile effettuare dei cambiamenti o eseguire delle operazioni. Dopo la seconda terna di 65, 21 e 11, sul pannello apparirà un altro SRC: A6nn500B per indicare il modo edit. A questo punto occorre ripetere la terna 65, 21 e 11 per incrementare “nn” all’interno dell’SRC . “nn” rappresenta quale operazione si intende eseguire.
A questo punto un singolo 21 indicherà la selezione della funzione.
L’SRC diventerà A6nn500C per indicare che la funzione è stata selezionata correttamente.
Se ogni volta che si effettua una funzione 65 e 21 si eccedono i 45 secondi o tra due 21 successivi, appare un SRC A6nn500D che indica il raggiungimento del time out e l’uscita dal modo edit. In questo caso per effettuare una modifica, occorre ripartire da capo.
L’uscita immediata dall’edit può essere effettuata con una funzione 66.
Ecco i codici di riferimenti (“nn”):

00 Nessuna console definita
01 Console twinax
02 Operation console diretta
03 Operation console di rete
04 Hardware management console
C3 Reimposta configurazione LAN
A3 Disattivazione e riattivazione della scheda di rete Operations Console

Utilizzando i codici C3 e A3 è possibile azzerare le impostazioni di rete dell’Operations Console

Cancellare la password del device Operations Console

Per cancellare la password dell’Operations Console, usare la procedura seguente.

1. Portare la console in modalità avanzata (vedi sopra)
2. 65 + invio. Il sistema dovrebbe rispondere con 65 00. Potrebbe essere necessario utilizzare la funzione 11 per mostrare i risultati (D1008065).
3. 13 + invio. Il sistema presenta due righe di valori numerici. La prima termina con una cifra che rappresenta il numero esecuzioni della funzione 65. Dovremo incrementare fino a 7 questo valor. La seconda riga 00000001 fino a quando non sono state eseguite le 7 funzioni 65, 00000000 al raggiungimento della settima iterazione.
4. Ripetere i passi 2 e 3 per 7 volte. Si hanno 5 minuti per concludere l’operazione.

Porte IBM Client Access per AS400

Uso questo post come promemoria per l'elenco delle porte usate da IBM Client Access, conosciuto anche come IBM i Access.
Ricapitolando, le porte indispensabili per l'emulazione video sono

  • Server Mapper - 449
  • License Management - 8470
  • Signon Verification - 8476
  • Telnet - 23

Per ODBC/JDBC

  • Server Mapper - 449
  • Signon Verification - 8476
  • Database - 8471

Ecco l'elenco completo delle porte

Funzione Nome server Non-SSL SSL
Mappa porte servizi as-svrmap 449 449
Gestore licenze as-central 8470 9470
Database as-database 8471 9471
Code dati as-dtaq 8472 9472
Accesso ai File as-file 8473 9473
Stampa di rete as-netprt 8474 9474
Comando remoto as-rmtcmd 8475 9475
Verifica collegamento as-signon 8476 9476
Telnet (emulazione 5250) telnet 23 992
Amministrazione HTTP as-admi 2001 2010
Management Central as-mgtc 5555 and 5544 5566
DRDA DRDA 446 ---
DDM DDM 447 448
NetServer netbios 137 ---
NetServer CIFS 445 ---
NetServer netbios 139 ---
Service Tools Server as-sts 3000 ---
RUNRMTCMD REXEC 512 ---

Esportare le definizione delle stampanti su un altro AS400

Per copiare la definizione delle stampanti (o in generale di device) da un AS400 ad un altro è possibile seguire il procedimento seguente.

Sull'AS400 di partenza digitare

SAVCFG TAP01

dove TAP01 è l'identificativo dell'unità nastro da utilizzare (è possibile far ricorso anche ad un save file)

Sull'AS400 di destinazione, dopo aver inserito il nastro su cui la configurazione di partenza è stata memorizzata, digitare

RSTCFG OBJ(NOME_STAMPANTE)  DEV(TAP01)  OBJTYPE(*DEVD)  SRM(*NONE)

Si noti che NOME_STAMPANTE può essere generico: ad esempio PRT* indica tutte le stampanti il cui nome inizia per PRT.

ATTENZIONE: È MOLTO IMPORTANTE INDICARE IL PARAMETRO SRM(*NONE), altrimenti la configurazione ripristinata potrebbe essere inutilizzabile.

In alcuni casi i device potrebbero non essere ripristinati perché il nome dell’unità di controllo è differente tra i due sistemi. In questo caso occorre quindi ripristinare anche l’unità di controllo con il comando:

RSTCFG OBJ(NOME_UNITA_CONTROLLO)  DEV(TAP01)  OBJTYPE(*CTLD)  SRM(*NONE)

Spegnere la luce di attenzione arancione dal Service Action Log di AS400

- Collegarsi con l'utente QSECOFR di sistema operativo.

- Digitare dalla riga comandi STRSST

- Inserire l'utente e password di manutenzione DST richiesti

Type choice, press Enter.  

Service tools user ID. . . . . QSECOFR
Service tools password . . . xxxxxxx (case sensitive)

- Selezionare Start a service tool / Avvio di un programma di manutenzione
(opz.1)

- Selezionare Hardware Service manager / Programma di manutenzione hardware
(opz.7)

- Selezionare Work with service action log / Gestione delle registrazioni
delle azioni di assistenza (opz.6)

- Dare la data di inizio ricerca errori più vecchia possibile (installazione del sistema ) fino alla data attuale, quindi invio.....

- Verificare gli errori che appaiono sul sito INFOCENTER

- Spegnere la luce di attenzione facendo l'acknowledge dei problemi
F6=Acknowledge All Errors / Ricezione di tutti gli errori

- Rimuovere tutti gli errori presenti , uno alla volta, utilizzando l'opzione 8 di Close (Chiusura) e poi 9 di Delete (Cancellazione).
Se non ci sono errori nella pagina ma è presente la funzione F6 fare comunque l'acknowledge per spegnere la luce.
Verrà richiesto un F10 di conferma

- Una volta eseguito l'Acknowledge(Ricezione) appare sul fondo della videata la scritta: All errors have been acknowledged / Tutti gli errori sono stati ricevuti (a questo punto la luce si dovrebbe essere spenta)

Too many illegal datagrams from the remote computer AS400

A volte nei log di sistema dei server Windows che convivono in una subnet con un AS400 può comparire il seguente errore:

"The browser driver has received too many illegal datagrams from the remote computer YOUR_AS400_NAME to name xxxx on transport NetBT_Tcpip_{DF3149C4-A44D-493F-BD8C-BE3B. The data is the datagram. No more events will be generated until the reset frequency has expired."

Il problema può essere risolto eliminando la spunta da "Invia annunci di ricerca" dalla configurazione del NetServer in iSeries Navigator.
Illegal datagram from AS400 - Configurazione iSeries Navigator

Tomcat on AS400 (aka i-series, Systemi, IBM i, bla, bla…)

I know that AS400 gives its own native support to Tomcat and other application servers, but it does it in the IBM style: intricate and rigid. What if, for example, I need to use a version of Tomcat that it is not shipped with my operating system?
Here is one possible answer:

1) Download a copy of Apache Tomcat and unzip it in a directory of the Integrated File System of AS400.

2) In another directory of the Integrated File System Create a text file named tomcat with a simple script like this:

#! /bin/sh

#The path of the JDK you want to use
export JAVA_HOME=/QOpenSys/QIBM/ProdData/JavaVM/jdk60/32bit
#The JVM option you want to use
export JAVA_OPTS='-Djava.awt.headless=true'

#Put here the pat of the tomcat directory
export CATALINA_HOME=/path/to/tomcat/directory

export PATH=$CATALINA_HOME/bin:$PATH
if [ "$1" == "stop" ] ; then
    echo "Stopping..."
    shutdown.sh
else
    echo "Starting..."
    startup.sh
fi

3) In a 5250 session (or in a batch job) execute this command

QSH CMD('/path/to/my/script/tomcat')

Your Tomcat should be alive and kicking :-)

4) In order to shut down Tomcat, use this command

QSH CMD('/path/to/my/script/tomcat stop')

Enjoy with Tomcat and AS400!!!

Come spostare una LAN Console

La mente degli ingegneri IBM ha partorito un ennesimo mostro per la gestione della console dei sistemi AS400 (o iSeries o IBM i o come diavolo si chiamano questa mattina). Il deforme frutto del peccato si chiama Operation Console LAN (o LAN console). Il virgulto genera speciale raccapriccio per la sua particolarit di legare in modo indissolubile l'AS400 al PC sul quale la console stata installata per la prima volta, come se la vita dei due dispositivi fosse intrecciata da un patto di sangue. Per spezzare questa catena elettronica ed installare la console su un nuovo PC, occorre effettuare dei riti esoterici sul pannello del server quattrocentesco. Alcuni narrano che nella prossima versione saranno necessari dei sacrifici umani! Vediamo comunque i passi da seguire attualmente.

Fase A: reset della Lan Console

In primo luogo occorre resettare la scheda ethernet quattrocentesca dedicata allo scopo. Seguendo le istruzioni IBM, si pu procedere cos:

  1. Impostare sul pannello la modalit manuale: 01 B M
  2. Selezionare la funzione 25 e premere invio
  3. Selezionare la funzione 26 e premere invio
  4. Selezionare la funzione 65 e premere invio
  5. Selezionare la funzione 21 e premere invio
  6. Selezionare la funzione 11 e premere invio La funzione 11 ha lo scopo di mostrare sul pannello di controllo un codice che descrive la situazione corrente della procedura. Nel nostro caso dovrebbe apparire A603500A. Questi codici hanno la forma A6xx500y, dove le cifre xx hanno il seguente significato:
    00 = Nessuna console definita
    01 = Console biassiale
    02 = Operations Console (Diretta)
    03 = Operations Console (LAN )
    04 = HMC (Hardware Management Console)
           oppure Thin Console
    C3 = Annulla la configurazione LAN
    A3 = Disattivazione seguita dall'attivazione
           dell'adattatore LAN di Operations Console
    DD = Dump di tutti i flight recorder relativi alla
           console in una serie di vlog
    D1 = Disabilita la porta Ethernet incorporata
    D2 = Disabilita l'adattatore LAN 5706/5707 aggiuntivo
    E1 = Abilita la porta Ethernet incorporata
    E2 = Abilita l'adattatore LAN 5706/5707 aggiuntivo
    Bn = Abilita l'adattatore LAN nell'alloggiamento
           (C1, C2, C3, C4, C5)
    Fn = Abilita l'adattatore asincrono nell'alloggiamento
            (C1, C2, C3, C4, C5)

    La cifra y invece da interpretarsi cos:

     A6xx 500A = Viene visualizzato il valore corrente della console.
     A6xx 500B =  stata eseguita una seconda coppia di funzioni 65+21,
                      pertanto si  in modalit modifica.
     A6xx 500C =  stata eseguita una seconda funzione 21
                      per eseguire un'azione.
     A6xx 500D =  trascorso troppo tempo dopo avere impostato
                       la modalit modifica per eseguire un'azione.

    Nel nostro caso, quindi, il codice dice che siamo in modalit visualizzazione (A) e che la console l'Operations console LAN (03)

  7. Selezionare la funzione 65 e premere invio
  8. Selezionare la funzione 21 e premere invio. A questo punto abbiamo richiesto di incrementare il contatore xx, quindi la funzione 11 dovrebbe mostrare il codice A604500B
  9. Selezionare la funzione 65 e premere invio
  10. Selezionare la funzione 21 e premere invio
  11. Selezionare la funzione 11 e premere invio. Il display dovrebbe mosrare il codice A6A3500B che indica che stiamo per chiedere il reset dell'adattatore LAN console.
  12. Selezionare la funzione 21 e premere invio. Ci dovrebbe eseguire l'azione, ed il codice sul pannellino dovrebbe divenire A6A3500C come conferma.
  13. Proseguiamo con una serie di 65 21 11 sino a giungere al valore A6E1500B, per essere sicuri che la porta ethernet della console sia abilitata.
  14. Confermiamo con il codice 21 e verifichiamo con il codice 11 che sul pannello appaiaA6E1500B.

Ricapitolando, la prima sequenza 65 21 mostra lo stato della console, la seconda e le successive incrementano le cifre xx, il codice 21 conferma la modifica, mentre con 11 si visualizza sul display l'SRC che indica lo stato corrente dell'operazione.

Fase B: rottura del legame tra PC e AS400

Come dicevamo, tra l'AS400 ed il PC che ne costutuisce la LAN console si instaura un patto di sangue elettronico, sancito da uno scambio di password tra i due. Per romperlo necessario utilizzare nuovamente il pannello di controllo, come descritto in questo documento IBM.

  1. Impostare sul pannello la modalit manuale: 01 B M
  2. Selezionare la funzione 25 e premere invio
  3. Selezionare la funzione 26 e premere invio
  4. Selezionare la funzione 65 e premere invio
  5. L'operazione 65 deve essere eseguita sette volte. Per verificare il contatore, utilizzare la funzione 13

Concludo con un link ad un documento che pu aiutare ad orientarsi nel mare periglioso della LAN console.

Diventare QSECOFR

Nei sistemi Unix esiste il comando su che permette, avendone la password, di impersonare il "superutente" root.
Anche su AS400 ci possibile, anzi, se si possiede l'autorizzazione *USE sul profilo utente desiderato, si pu far girare il proprio lavoro sotto mentite spoglie.

Ecco un semplice CL che a tale scopo usa le API di sistema QSYGETPH e QWTSETP.

             PGM        PARM(&UTENTE)

             DCL        VAR(&UTENTE) TYPE(*CHAR) LEN(10)
             DCL        VAR(&USCITA) TYPE(*CHAR) LEN(50)
             DCL        VAR(&TESTOERROR) TYPE(*CHAR) LEN(100)
             DCL        VAR(&HUSER) TYPE(*CHAR) LEN(12)

             MONMSG     MSGID(CPF0000) EXEC(GOTO CMDLBL(ERRORE))
/*------------------------------------------------------------------*/
/* RECUPERO L'HANDLE DEL PROFILO UTENTE                             */
             CALL       PGM(QSYS/QSYGETPH) PARM(&UTENTE *NOPWDCHK +
                          &HUSER)
/* PASSO AL NUOVO PROFILO UTENTE                                   */
             CALL       PGM(QSYS/QWTSETP) PARM(&HUSER)
/* INVIO UN MESSAGGIO DI COMPLETAMENTO OPERAZIONE                  */
             SNDPGMMSG  MSG('Profilo utente cambiato')
/*------------------------------------------------------------------*/
/* FINE                                                             */
/*                                                                  */
             GOTO       CMDLBL(FINE)

/* GESTIONE ERRORI                                                  */
  ERRORE:     RCVMSG     MSGTYPE(*EXCP) MSG(&TESTOERROR)
              SNDPGMMSG  MSG(&TESTOERROR)
/*                                                                  */
FINE:
     ENDPGM