Spesso è necessario trasferire oggetti (file, programmi, etc.) da un sistema ad un altro per allineare software (tra sistemi in HA, ad esempio) oppure per distribuirlo (tra sistemi di sviluppo, collaudo e produzione). Solitamente questa attività si realizza trasferendo file di salvataggio via FTP ma è anche possibile utilizzare il “vecchio” ObjectConnect con il support dell’Enterprise Extender. Vediamo come.
Index
Enterprise Extender, disponibile da i5/OS V5R4, è il sostituto di IBM per il supporto AnyNet. Viene utilizzato per incapsulare il traffico SNA su un collegamento IP per permettere il flusso del traffico APPN tra sistemi su una rete TCP/IP (evitando così l’uso di speciali router e controller SNA).
ObjectConnect è una serie di comandi CL inclusi con il sistema operativo IBM i (5770SS1 opzione 22) per spostare oggetti tra sistemi in modo semplice ed efficiente.
Quando si utilizza un comando ObjectConnect, il sistema sposta l’oggetto direttamente nel sistema di destinazione senza utilizzare file di salvataggio o code di distribuzione. ObjectConnect fornisce prestazioni migliori rispetto ad altri metodi e non richiede spazio su disco aggiuntivo per memorizzare una copia intermedia dell’oggetto che viene spostato.
I comandi ObjectConnect sono strettamente correlati ai comandi di salvataggio e ripristino. I comandi ObjectConnect supportano la maggior parte degli stessi parametri.
Comandi ObjectConnect | Comandi IBM i di salvataggio e ripristino |
Salva/Ripristina file system integrato (SAVRST) | Salva (SAV), Ripristina (RST) |
Salva/Ripristina oggetto (SAVRSTOBJ) | Salva oggetto (SAVOBJ), Ripristina oggetto (RSTOBJ) |
Salva/Ripristina oggetto modificato (SAVRSTCHG) | Salva oggetto modificato (SAVCHGOBJ), Ripristina oggetto (RSTOBJ) |
Salva/Ripristina libreria (SAVRSTLIB) | Salva libreria (SAVLIB), Ripristina libreria (RSTLIB) |
Salva/Ripristina oggetto libreria documenti (SAVRSTDLO) | Salva oggetto libreria documenti (SAVDLO), Ripristina oggetto libreria documenti (RSTDLO) |
Salva/Ripristina configurazione (SAVRSTCFG) | Salva configurazione (SAVCFG), Ripristina configurazione (RSTCFG) |
Fino a IBM i V7R3, ObjectConnect utilizza l’architettura di comunicazione dati SNA per funzionare (anche quando il traffico SNA è incapsulato su un collegamento IP).
Nota. In IBM i V7R4 con PTF SI73777 (“aggiunta del supporto TCP nativo ai comandi CL di ObjectConnect”) ObjectConnect è stato reso compatibile con TCP/IP (nuovo server TCP/IP *OBJC) liberandolo da Enterprise Extender.
Target operating system: da i5/OS V5R4 a IBM i V7R4 (vedere nota precedente).
Per attivare Enterprise Extender tra due sistemi IBM i è necessario solo configurare gli attributi di rete e creare un controller su ogni sistema.
Modifiche ai valori di sistema (CHGSYSVAL)
Enterprise Extender crea (se non è già presente sul sistema) e utilizza un controller QAPENDxxxx su IBM i quando comunica con i sistemi Enterprise Extender remoti. Crea anche dispositivi APPC sotto questo controller quando la comunicazione viene stabilita per la prima volta. Affinché il sistema crei automaticamente il controller ed i dispositivi necessari la prima volta, è necessario modificare i seguenti valori di sistema:
QAUTOCFG : impostare il valore a “1” (configurazione automatica dei dispositivi attiva):
CHGSYSVAL SYSVAL(QAUTOCFG) VALUE('1')
QAUTORMT : Impostare il valore a “1” (consentire la configurazione automatica dei controller remoti):
CHGSYSVAL SYSVAL(QAUTORMT) VALUE('1')
QAUTOVRT : Impostare il valore a “*NOMAX” (nessun limite al numero di dispositivi virtuali da creare):
CHGSYSVAL SYSVAL(QAUTOVRT) VALUE('*NOMAX')
Nota. Questi valori possono essere ripristinati alle impostazioni originali non appena Enterprise Extender sarà attivo e funzionante.
Configurazione degli attributi di rete (CHGNETA)
Visualizzare gli attributi di rete (DSPNETA) di ciascun sistema e raccogli le seguenti informazioni:
Note.
Per modificare i valori:
CHGNETA LCLNETID(netid) LCLCPNAME(sys_name) NODETYPE(*ENDNODE) ALWHPRTWR(*YES) HPRPTHTMR(1 2 4 8)
Note.
Un messaggio CPC0909 (“Attributo di rete &1 modificato in &2 da &3/&4/&5.”) viene inviato per ciascun attributo di rete modificato. La modifica di questi valori non dovrebbe richiedere il riavvio del sistema.
Su SystemA, modificare gli attributi di rete come segue:
CHGNETA LCLNETID(NETIDA) LCLCPNAME(SYSTEMA) NODETYPE(*ENDNODE) ALWHPRTWR(*YES) HPRPTHTMR(1 2 4 8)
Su SystemB, modificare gli attributi di rete come segue:
CHGNETA LCLNETID(NETIDB) LCLCPNAME(SYSTEMB) NODETYPE(*ENDNODE) ALWHPRTWR(*YES) HPRPTHTMR(1 2 4 8)
Configurazione dei controller APPC (Advanced Peer-to-Peer Communication) (CRTCTLAPPC)
Visualizzare gli attributi di rete (DSPNETA) di ciascun sistema e raccogliere le seguenti informazioni:
Visualizzare le interfacce locali per ciascun sistema utilizzando CFGTCP, Opzione 1 o WRKTCPSTS OPTION(*IFC) e selezionare gli indirizzi IP che si desidera utilizzare per questa connessione.
Creare il controller APPC (CRTCTLAPPC):
CRTCTLAPPC CTLD(ctl_name) LINKTYPE(*HPRIP) ONLINE(*YES) APPN(*YES) RMTINTNETA('remote_ipa') LCLINTNETA('local_ipa') LDLCTMR(3 15 10) LDLCLNKSPD(*MAX) LDLCTMSGRP(0 0 *NONSECURE *LAN) MAXFRAME(*LINKTYPE) RMTNETID(remote_netid) RMTCPNAME(remote_control_point) DSAP(04) SSAP(04) CPSSN(*YES) NODETYPE(*ENDNODE) HPR(*YES) TMSGRPNBR(1) TEXT('controller_description')
Note.
Su SystemA, creare un controller APPC verso SystemB:
CRTCTLAPPC CTLD(SYSTEMB) LINKTYPE(*HPRIP) ONLINE(*YES) APPN(*YES) RMTINTNETA('b.b.b.b') LCLINTNETA('a.a.a.a') LDLCTMR(3 15 10) LDLCLNKSPD(*MAX) LDLCTMSGRP(0 0 *NONSECURE *LAN) MAXFRAME(*LINKTYPE) RMTNETID(NETIDB) RMTCPNAME(SYSTEMB) DSAP(04) SSAP(04) CPSSN(*YES) NODETYPE(*ENDNODE) HPR(*YES) TMSGRPNBR(1) TEXT('EE to SystemB')
Su SystemB, creare un controller APPC verso SystemA:
CRTCTLAPPC CTLD(SYSTEMA) LINKTYPE(*HPRIP) ONLINE(*YES) APPN(*YES) RMTINTNETA('a.a.a.a') LCLINTNETA('b.b.b.b') LDLCTMR(3 15 10) LDLCLNKSPD(*MAX) LDLCTMSGRP(0 0 *NONSECURE *LAN) MAXFRAME(*LINKTYPE) RMTNETID(NETIDA) RMTCPNAME(SYSTEMA) DSAP(04) SSAP(04) CPSSN(*YES) NODETYPE(*ENDNODE) HPR(*YES) TMSGRPNBR(1) TEXT('EE to SystemB')
Su SystemA, attivare il controller APPC:
VRYCFG CFGOBJ(SYSTEMB) CFGTYPE(*CTL) STATUS(*ON)
Il controller APPC passa allo stato “Vary On Pending” (“CPC2609: Completato il comando di attivazione per l’unità di controllo &1.”).
Su SystemB, attivare il controller APPC:
VRYCFG CFGOBJ(SYSTEMA) CFGTYPE(*CTL) STATUS(*ON)
Su entrambi i sistemi, i controller APPC passano allo stato “Varied On” (“CPF5908: L’unità di controllo &1 è stata contattata sulla linea &2.”).
Poiché il controller QAPENDxxxx non verrà creato finché non si avvia una connessione Enterprise Extender tra i due sistemi, su SystemA avviare la sessione pass-through verso SystemB (o viceversa):
STRPASTHR RMTLOCNAME(SYSTEMB) LCLLOCNAME(*NETATR) RMTNETID(NETIDB)
Su entrambi i sistemi, vengono creati un controller APPN virtuale chiamato QAPENDxxxx ed un dispositivo APPC, chiamato come il controller (il dispositivo APPC è collegato al controller APPN appena creato):
CPC2623: Creata la descrizione per l’unità di controllo &1.
CPC2609: Completato il comando di attivazione per l’unità di controllo &1.
CPC2622: Creata la descrizione per l’unità &1.
CPC2605: Completato il comando di attivazione per l’unità &1.
Su SystemA, modificare la descrizione del dispositivo APPC come segue:
CHGDEVAPPC DEVD(SYSTEMB) ONLINE(*YES)
Su SystemB, modificare la descrizione del dispositivo APPC come segue:
CHGDEVAPPC DEVD(SYSTEMA) ONLINE(*YES)
Relazioni tra parametri:
Ora che i sistemi sono connessi con Enterprise Extender vediamo come utilizzare ObjectConnect per trasferire oggetti.
L’utilizzo di FTP per trasferire oggetti come file, programmi, ecc. tra sistemi IBM i risulta un po’ macchinoso perché FTP non è in grado di gestire direttamente gli oggetti. Per poterli trasferire bisogna prima salvarli in un file di salvataggio sul sistema locale (o sorgente), quindi trasferire il file di salvataggio sul sistema remoto (o di destinazione) ed, infine, ripristinare il contenuto del file di salvataggio sul sistema remoto. Come detto in precendenza, il processo non è proprio semplicissimo.
Configurando Enterprise Extender sui sistemi IBM i ed utilizzando ObjectConnect l’attività di trasferimento oggetti diventa molto più semplice perché ora è possibile trasferire oggetti con un solo comando da eseguire sul sistema sorgente.
Vediamo alcuni esempi.
Per trasferire (salvare e ripristinare) oggetti da SystemA a SystemB è possibile utilizzare il comando SAVRSTOBJ su SystemA:
SAVRSTOBJ OBJ(objects) LIB(library) RMTLOCNAME(NETIDB.SYSTEMB) RSTLIB(targetlib)
Allo stesso modo, per trasferire una libreria da SystemB a SystemA è possibile utilizzare il comando SAVRSTLIB su System B:
SAVRSTLIB LIB(library) RMTLOCNAME(NETIDA.SYSTEMA) RSTLIB(targetlib)
Restrizioni.
Raccomandazioni.
Come sempre in caso di salvataggio e ripristino è necesasrio fare attenzione alle autorizzazioni degli oggetti e delle librerie coinvolte su entrambi i sistemi e al proprietario degli oggetti.
Suggerimento.
Se non si vogliono avere problemi di autorizzazione nel trasferimento di oggetti potete procedere come segue:
CRTUSRPRF USRPRF(user) SPCAUT(*SAVSYS)
GRTOBJAUT OBJ(QSR/SAVRST…) OBJTYPE(*CMD) USER(user) AUT(*USE)
CRTUSRPRF USRPRF(user) SPCAUT(*SAVSYS)
GRTOBJAUT OBJ(QSYS/RST…) OBJTYPE(*CMD) USER(user) AUT(*USE)
Riferimenti:
Configurazione di EE (Enterprise Extender) tra due sistemi IBM System i
Con un piccolo trucco anche una semplice istruzione SELECT può eseguire qualsiasi comando di sistema ! Vediamo come...
Una mini-guida a puntate per la configurazione, gestione, uso e risoluzione dei problemi di IBM i NetServer
Una mini-guida a puntate per la configurazione, gestione, uso e risoluzione dei problemi di IBM i NetServer
Una mini-guida a puntate per la configurazione, gestione, uso e risoluzione dei problemi di IBM i NetServer
Una mini-guida a puntate per la configurazione, gestione, uso e risoluzione dei problemi di IBM i NetServer
Una mini-guida a puntate per la configurazione, gestione, uso e risoluzione dei problemi di IBM i NetServer