Duplicate data base (JDUPDB)

Where allowed to run: All environments (*ALL)
Threadsafe: No
Parameters
Examples
Error messages

Cmd JDUPDB Duplicate data base > Duplica data base

www.neroni.it/NERONI2/JDUPDB.NERONI2.HTML

Duplica un file fisico e tutti i logici soprastanti da una libreria datrice ad una ricevente.

I logici basati su piu' file fisici non vengono presi in considerazione.

Se richiesto il cambio di prefisso nei nomi, il cambio di ciascun nome avviene solo se il nome contiene il vecchio prefisso. Altrimenti il nome resta inalterato.

Il tool funziona anche su un fisico senza logici.

Pur essendo nato per creare database inizialmente vuoti e di servizio per procedure di qualche complessita', per cautela nei confronti di un uso diverso, il tool muove dalla libreria ricevente alla libreria di servizio JDUPDBSAV i file eventualmente preesistenti rinominandoli con un progressivo ma scrivendo nel testo data e ora di spostamento e libreria/oggetto originale.

Nota: Il tool sporca il sistema con una libreria di transito JTMPnnnnnn, dove nnnnnn e' uguale al numero del job esecutore, che perde di validita' alla chiusura del job che l'ha creata. Le librerie di questo tipo possono essere rimosse automaticamente da un job schedulato periodicamente JTMPDLT LIB(*ALL)

Top

Parameters

Keyword Description Choices Notes
BASPF Basic physical file Name Required, Positional 1
TOLIB To library Name Required, Positional 2
FROMLIB From library Name, *LIBL Optional, Positional 3
PFXBFR Prefix before renaming Name, *NONE Optional, Positional 4
PFXAFT Prefix after renaming Name, *NONE Optional, Positional 5
DETAIL Messages detail *MAX, *MIN Optional, Positional 6
REFPGM Reference program for messages Name, *CPP Optional, Positional 7
Top

Basic physical file (BASPF) > File fisico di base

Nome del file fisico portatore di un grappolo di file logici da duplicare (fisico e logici) da una libreria datrice ad una libreria ricevente cambiando eventualmente il prefisso dei nomi.

Il valore e' obbligatorio.

Valori permessi:

nome-file-fisico
Nome di un file fisico portatore di file logici.
Top

To Library (TOLIB) > Libreria ricevente

Nome della libreria ricevente della duplicazione.

Puo' essere uguale alla libreria datrice solo se e' richiesto anche il cambio di prefisso.

Il valore e' obbligatorio.

Valori permessi:

nome-libreria
La libreria nella quale duplicare fisico e logici.
Top

From library (FROMLIB) > Libreria datrice

Il nome di una libreria esistente e contenente il file fisico datore.

Valori permessi:

nome-libreria
Nome della libreria datrice della duplicazione.

Valori speciali:

*LIBL
Lista librerie corrente.

Il file fisico datore verra' cercato nella lista librerie corrente.

Top

Prefix before renaming (PFXBFR) > Prefisso prima della ridenominazione

Durante la duplicazione del database, tutti i file duplicati che hanno la prima parte del nome originale uguale a questo prefisso vecchio vengono rinominati col prefisso nuovo.

Per ottenere il cambio di prefisso occorre specificare sia il prefisso vecchio che quello nuovo.

Valori permessi:

nome-fino-a-9-caratteri
Nome da usare come prefisso vecchio.

Il prefisso vecchio deve coincidere con la parte iniziale del nome del file fisico di base.

Valori speciali:

*NONE
Nessun prefisso quindi nessuna sostituzione.

I file duplicati conservano il nome originale.

Top

Prefix after renaming (PFXAFT) > Prefisso dopo la ridenominazione

Durante la duplicazione del database, tutti i file duplicati che hanno la prima parte del nome originale uguale al prefisso vecchio vengono rinominati con questo prefisso nuovo.

Per ottenere il cambio di prefisso occorre specificare sia il prefisso vecchio che quello nuovo.

Valori permessi:

nome-fino-a-9-caratteri
Nome da usare come prefisso nuovo.

Valori speciali:

*NONE
Nessun prefisso quindi nessuna sostituzione.

I file duplicati conservano il nome originale.

Permesso e richiesto solo se anche il vecchio prefisso vale *NONE.

Top

Messages detail (DETAIL) > Dettaglio messaggi

Per minimizzare i messaggi informativi e di completamento troppo numerosi quando il comando viene chiamato, ad esempio, dentro un programma CL in un contesto gia' affollato, permette di scegliere l'emissione messaggi massima o minima.

L'opzione non influisce sull'emissione di messaggi diagnostici e di stato.

Valori permessi:

*MAX
Emette tutti i messaggi informativi e di completamento previsti.
*MIN
Dei messaggi informativi e di completamento emette solo quello finale.
Top

Reference program for messages (REFPGM) > Programma riferimento messaggi

Nei tool complessi a piu' livelli, il presente parametro compare in tutti i comandi di interfaccia dal primo all'ultimo dei chiamati in cascata e permette di condividere il programma di riferimento al cui chiamante verranno spediti i messaggi emessi da tutti i tool coinvolti.

Il programma di riferimento e' il command processing program del tool di cappello che in cascata chiama tutti gli altri. Il cappello, dopo aver riempito con il proprio nome il parametro "programma di riferimento", lo passa anche ai tool chiamati che lo utilizzano per spedire i propri messaggi.

Valori permessi:

nome-di-un-programma-in-lista-di-chiamata
Il nome di un programma presente nella lista di chiamata del lavoro corrente.

I messaggi emessi dal programma corrente saranno indirizzati al chiamante del programma di riferimento, preferibilmete un video comandi.

Utile quando il comando corrente e' chiamato da un altro comando con il quale condivide il presente parametro.

Valori speciali:

*CPP
Il valore *CPP viene sostituito con il nome del programma corrente.

I comandi da questo chiamati (e che prevedono lo stesso parametro) faranno riferimento al programma corrente e i messaggi emessi da tali programmi saranno indirizzati al chiamante del programma corrente.

Utile quando il comando corrente e' il primo chiamante da un video comandi e a sua volta chiama altri tool condividendo il presente parametro.

Top

Esempi d'uso del comando JDUPDB Duplicate data base

Esempio 1: Duplica il file fisico JCLNPFOD e il suo logico 1 nella libreria DUPLICATI conservando i nomi

Si riportano comando e log ottenuto in esecuzione.

> JDUPDB BASPF(JCLNPFOD) TOLIB(DUPLICATI)
  Nome libreria temporanea JTMP165248
  JDUPDB BASPF(JCLNPFOD) TOLIB(DUPLICATI) FROMLIB(NERONI2)
    PFXBFR(*NONE) PFXAFT(*NONE) DETAIL(*MAX) REFPGM(JDUPDBC)
  Duplicato logico NERONI2/JCLNPFOD1 in JTMP165248/JCLNPFOD1
  Fisico NERONI2/JCLNPFOD duplicato in JTMP165248/JCLNPFOD .
    Duplicati 1 logici su 1. Nome invariato per 0 file
  Mossi 2 oggetti da libreria JTMP165248 a libreria
    DUPLICATI
  Duplicato fisico NERONI2/JCLNPFOD in DUPLICATI/JCLNPFOD
    con 1 logici su 1

Si osservino i messaggi informativi a documentazione dell'esito.

Se si richiede solo il messaggio di completamento finale, il log si presenta come segue. I messaggi diagnostici non sono influenzati dalla scelta DETAIL(*MIN)

> JDUPDB BASPF(JCLNPFOD) TOLIB(DUPLICATI) DETAIL(*MIN)
  Duplicato fisico NERONI2/JCLNPFOD in DUPLICATI/JCLNPFOD
    con 1 logici su 1

La modalita' e' utile se si chiama il comado da un programma CL e si vuole diminuire l'impatto della messaggistica.

Esempio 2: Duplica il file fisico JCLNPFOD e il suo logico 1 nella libreria DUPLICATI cambiandone i nomi in ZZ

Si riportano comando e log ottenuto in esecuzione.

> JDUPDB BASPF(JCLNPFOD) TOLIB(DUPLICATI) PFXBFR(JCLNPFOD)
    PFXAFT(ZZ)
   Nome libreria temporanea JTMP165451
   JDUPDB BASPF(JCLNPFOD) TOLIB(DUPLICATI) FROMLIB(NERONI2)
     PFXBFR(JCLNPFOD) PFXAFT(ZZ) DETAIL(*MAX)
     REFPGM(JDUPDBC)
   Duplicato logico NERONI2/JCLNPFOD1 in JTMP165451/ZZ1
   Fisico NERONI2/JCLNPFOD duplicato in JTMP165451/ZZ .
     Duplicati 1 logici su 1. Nome invariato per 0 file
   Mossi 2 oggetti da libreria JTMP165451 a libreria
     DUPLICATI
  Duplicato fisico NERONI2/JCLNPFOD in DUPLICATI/ZZ
    con 1 logici su 1

Si osservino i messaggi informativi a documentazione dell'esito.

Esempio 3: Tenta la duplicazione per sostituire un database preesistente ma non corrispondente a quello originale

Si riportano comando e log ottenuto in esecuzione.

> CRTPF FILE(DUPLICATI/XXXX) RCDLEN(10)
  File XXXX creato nella libreria DUPLICATI.
  Membro XXXX aggiunto al file XXXX in DUPLICATI.
> JDUPDB BASPF(JCLNPFOD) TOLIB(DUPLICATI) PFXBFR(JCLNPFOD)
    PFXAFT(XXXX)
  Il preesistente fisico duplicato ha livello o attributo
    diverso dall'originale
  Nel comando JDUPDB e' stato trovato un errore.

Si osservino i messaggi informativi a documentazione dell'esito.

Si osservi il secondo livello del messaggio diagnostico.

              Ulteriori informazioni sui messaggi
ID messaggio . . . :   JDB0107      Gravita'. . :   00
Tipo di messaggio  :   Diagnostica
Data invio . . . . :   10/12/18     Ora invio . :   15:26:45
Messaggio . . . :   Il preesistente fisico duplicato ha
  livello o attributo diverso dall'originale
Il fisico duplicato "DUPLICATI/XXXX" preesiste ed ha
livello "2F8FAE0AE0A43" e attributo "*PF", diversi da
livello "4A30639A2ED95" e attributo "*PF" del file fisico
  di base "NERONI2/JCLNPFOD".

Top

Messaggi di rilascio nel comando

JDB1001
In JDUPDB TOLIB non puo' essere QTEMP
JDB1002
Se uno dei prefissi e' *NONE, deve essere *NONE anche l'altro
JDB1003
Se i prefissi sono diversi da *NONE, non possono essere uguali

Messaggi informativi

JDBA001
JDUPDB BASPF(&1) TOLIB(&2) FROMLIB(&3) PFXBFR(&4) PFXAFT(&5) DETAIL(&6) REFPGM(&7)
JDB0114
Il file fisico &1/&2 non ha logici dipendenti
JDB0116
Il file logico &1/&2 esiste gia'

Messaggi di completamento

JDB0118
NON duplicato logico &1/&2 in &3/&4
JDB0117
Duplicato logico &1/&2 in &3/&4 &5
JDB0119
Richiesta ridenominazione impossibile su &1 file
JDB0191
Fisico &1/&2 duplicato in &3/&4 &8. Duplicati &6 logici su &5. Nome invariato per &7 file
JDB0192
Duplicato fisico &1/&2 in &3/&4 con &6 logici su &5

Messaggi di stato

JDB0111
Il file di base e' &1/&2
JDB0115
Duplicazione in corso di &1/&2 nella libreria &3

Messaggi diagnostici seguiti da rilascio

JDB0106
Il fisico di base &1 non inizia con il prefisso-prima &2
JDB0101
La libreria datrice &1 non esiste
JDB0102
La libreria ricevente &1 non esiste
JDB0103
Il file fisico di base &1/&2 non esiste
JDB0112
Il file richiesto &1/&2 non e' di tipo PF ma "&3"
JDB0107
Il preesistente fisico duplicato ha livello o attributo diverso dall'originale
JDB0104
Libreria datrice e ricevente devono essere diverse da libreria di lavoro
JDB0105
Se libreria datrice e ricevente sono uguali e' obbligatorio cambio prefisso
Top