   Q U E R Y V S  -  per: MVS/BATCH


   L'utility QUERYVS permette di avere in stampa le caratteristiche
piu' importanti di un file VSAM.


   Nel file distribuito (QUERYVS.ZIP) c'e':

QUERYVS.OBJ              eseguibile per MVS mainframe, in forma obj
QUERYVS.HIL              sorgente Hilmas di questo programma
LEGGIMI.TXT              questo help file
LINKEDIT.JCL             esempio di job per installare QUERYVS
QUERY.REX                esempio di programma che usa  QUERYVS


Installazione dell'OBJ:

- Creare in MVS un file sequenziale, ad esempio 'MYUSER.PROGRAM.OBJ'
  con RECFM=F e LRECL=80, ad esempio di 2 cilindri.

- Fare il SEND del modulo oggetto voluto in BINARIO su questo file
  (quindi senza i parametri ASCII CRLF)
  Ad esempio:

     SEND QUERYVS.OBJ 'MYUSER.PROGRAM.OBJ'

- Preparare il Job di Linkedit che ha come input questo file; in questo
  package vi e' l'esempio LINKEDIT.JCL: personalizzarlo opportunamente.
                                                                
- Sottomettere il linkedit per creare il programma eseguibile in una
  libreria di programmi possibilmente in linklist o visti dal TSO.

- Trasferire l'esempio in REXX, il programma QUERY.REX (con ASCII CRLF)
  nella libreria delle CLIST MVS, con questo comando:

      SEND QUERY.REX 'SYS1.EXEC.SOURCE(QUERY)' ASCII CRLF

  (cambiare in nomi delle librerie secondo i vostri standard)



Istruzioni per l'uso di  Q U E R Y V S


   Per ottenere le caratteristiche del file VSAM apre il file in input e
quindi ha alcune limitazioni:
   - puo' dare errore se il file e' vuoto o se ha ShareOption 1 ed e'
     nel frattempo usato da un altro programma
   - in MVS, puo' andare in Wait se il file e' in uso esclusivo da parte
     di un'altro utente (con DISP=OLD)
   - non e' in grado di rilevare l'ampiezza in tracce degli Extent

   QUERYVS e' stato pensato per un utilizzo in MVS in ambiente TSO per
avere in maniera interattiva immediata le caratteristiche salienti di 
un file.


      Un esempio di schermata di risposta al comando e' la seguente:

 TIPO_FILE:                    KSDS
 NUMERO_RECORD:                1045
 LUNGHEZZA_RECORD:              100
 LUNGHEZZA_CHIAVE:                8
 OFFSET_CHIAVE:                   0
 CONTROL_INTERVAL_SIZE_DATI:   2048
 CONTROL_INTERVAL_SIZE_IDX:     512
 NUMERO_EXTENT_DATI:              1
 NUMERO_EXTENT_INDICI:            1
 SPAZIO_LIBERO_DATI:          38912
 SPAZIO_LIBERO_INDICI:        21504
 FREE_SPACE_CONTROL_AREA:         0
 NUMERO_CI_SPLIT:                 0
 NUMERO_CA_SPLIT:                 0
 NUMERO_BUFFER_DATI:              2
 NUMERO_BUFFER_INDICI:            1
 NUMERO_LIVELLI_INDICI:           2
 NUMERO_EXCP:                   149


      Il programma va richiamato in una sessione TSO in questo modo:

         QUERYVS ddname [/S]

      'ddname' e' il nome logico di un file VSAM precedentemente allocato
      /S e' un parametro opzionale che indica che l'output del programma,
         invece di essere mandato a video, deve essere messo nello STACK
         per un eventuale utilizzo da parte della CLIST chiamante.


      Ecco una CLIST in REXX che esemplifica l'uso di QUERYVS:

   /* REXX */
  ARG FILE  /* <- SCRIVERE IL NOME FISICO DEL FILE DI FIANCO AL NOME CLIST */
  "FREE FILE(MIOFILE)"  /* <-- FREE opzionale */
   "ALLOC FI(MIOFILE) DA('"FILE"') SHR"
   IF RC /= 0 THEN DO
      SAY "Errore in allocazione di "FILE " - RC = " RC
      EXIT RC
   END
   SAY "File VSAM: "FILE
   QUERYVS MIOFILE
  "FREE FILE(MIOFILE)"



   Per usare QUERYVS attraverso il REXX QUERY.REX fornito come esempio, 
scrivete in una sessione ISPF/TSO, in command line:

       TSO QUERY 'physical.file.name'

o, nella schermata ISPF =3.4 (lista dei file), scrivete 'QUERY' a sinistra
del file-name scelto

Questo REXX, se il file e' un file VSAM, lo alloca e richiama QUERYVS per 
mostrare le sue caratteristiche.



