Kbase 13174: Detailed explanation temporary files for VMS /TEMP & /SAVE
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  10/05/1998 |
|
Detailed explanation temporary files for VMS /TEMP & /SAVE
INTRODUCTION: Date Last Modified: 01-JUN-94
=============
This notebook entry explains (in more detail than found in
System Administration II Guide) what files are being opened
and accessed when using the /SAVE_TEMP_FILES and
/TEMPORARY_FILES as startup options under the VMS operating
system.
BACKGROUND:
===========
Occasionally, users will ask why when they specify the VMS
logical SYS$SCRATCH as the location (or any other directory
specification) to be used for the qualifier
/TEMPORARY_FILES, that the Progress temporary files are not
created in the directory pointed to by that logical??
QUICK REFERENCE
===============
Use only the /TEMPORARY_FILES qualifier for Progress to make
use of a different device for accessing Progress temporary
files.
Use only the /SAVE_TEMP_FILES qualifier for Progress to make
use of the current working directory from which the Progress
command is issued for the storage of Progress temporary
files.
Use both the /SAVE_TEMP_FILES and /TEMPORARY_FILES
qualifiers to make use of a different directory for the
storage of Progress temporary files. If you specify a
logical with the /TEMPORARY_FILES qualifier then you must
use the lexical function f$trnlnm for the directory pathname
to be correctly parsed.
DETAILED REFERENCE - HOW IT WORKS:
=================================
What happens when you don't specify either /TEMPORARY_FILES
or /SAVE_TEMP_FILES, is Progress makes use of a RMS feature
which allows the use of RMS temporary files which in turn
are not actually created and therefore have no directory
name (they are known as TMD files, Temporary Marked for
Delete). The pointers to these files are placed in the VMS
system file INDEXF.SYS which is located in the root
directory of every device and contains all file pointers for
that device. If after accessing a database, you execute the
VMS DCL command 'SHOW DEVICE/FILES/NOSYSTEM devname', you
will see a listing of the files being accessed on that disk.
Ex.: (this list is abbreviated for display purposes)
$ PROGRESS DBS:NEWDB
(From a different process or terminal)
$SHOW DEV/FILES/NOSYS $15$DIA3:
Files accessed on device $15$DIA3:
Process name PID File name
_FTA73: 29808D1E []SRT290590.;
_FTA73: 29808D1E []LBIA90590.;
_FTA73: 29808D1E []PGE290590.;
_FTA73: 29808D1E [HUBBARD.DBS]NEWDB.DB;1
_FTA73: 29808D1E [HUBBARD.DBS]NEWDB.BI;1
_FTA73: 29808D1E [HUBBARD.DBS]NEWDB.LG;2
If you use the /TEMPORARY_FILES qualifier by itself, you are
really telling Progress to use a different INDEXF.SYS file,
so the only appropriate qualifier in this case is a device
specification, not a directory specification. Even if you
specify a directory, Progress will only make use of the
device, NOT the directory location.
Ex.:
$PROGRESS/TEMPORARY_FILES=$15$DIA4:[log] NEWDB
(from a different process or terminal)
$SHOW DEV/FILES/NOSYS $15$DIA4:
Files accessed on device $15$DIA4:
Process name PID File name
_FTA73: 2980BE50 []SRT303184.;
_FTA73: 2980BE50 []LBI303184.;
_FTA73: 2980BE50 []PGE303184.;
$SHOW DEV/FILES/NOSYS $15$DIA3:
Files accessed on device $15$DIA3:
Process name PID File name
_FTA73: 2980BE50 [HUBBARD.DBS]NEWDB.DB;1
_FTA73: 2980BE50 [HUBBARD.DBS]NEWDB.LG;2
_FTA73: 2980BE50 [HUBBARD.DBS]NEWDB.BI;1
If you use the /SAVE_TEMP_FILES qualifier by itself, you are
telling progress to save the temporary files and to save
them to the current working directory (the directory from
which you issued the progress/SAVE_TEMP_FILES command). If
you execute the VMS DCL command SHOW DEVICE/FILES/NOSYSTEM
for that device, you should see the temporary files located
in the directory from which you issued the progress command.
Example: This example displays the directory from which the
Progress command was called.
$ SHOW DEFAULT
$15$DIA3:[HUBBARD]
$ PROGRESS/SAVE dbs:newdb
(from a different process or terminal)
$SHOW DEV/FILES/NOSYS $15$DIA3:
Files accessed on device $15$DIA3:
Process name PID File name
_FTA73: 29808D1E [HUBBARD]SRT290590.;1
_FTA73: 29808D1E [HUBBARD]LBI290590.;1
_FTA73: 29808D1E [HUBBARD]PGE290590.;1
_FTA73: 29808D1E [HUBBARD.DBS]NEWDB.DB;1
_FTA73: 29808D1E [HUBBARD.DBS]NEWDB.BI;1
_FTA73: 29808D1E [HUBBARD.DBS]NEWDB.LG;1
If you want Progress to locate the temporary files into a
specific directory, then you must use both the
/TEMPORARY_FILES and the /SAVE_TEMP_FILES qualifiers. In
this instance, a directory path is appropriate for the
/TEMPORARY_FILES qualifier and the temporary files will be
placed into the directory specified. PLEASE NOTE: You
cannot directly specify a logical for this directory
location, however you can make use of the VMS Lexical
function F$TRNLNM which in turn correctly parses the
appropriate directory location.
Ex. (this example illustrates the use of the logical
translation lexical to resolve directory location)
$SHOW LOGICAL SYS$SCRATCH
(LNM$PROCESS_TABLE)
"SYS$SCRATCH" = "$15$DIA3:[HUBBARD.DBS]"
$ SHOW DEFAULT
$15$DIA3:[HUBBARD]
$PROGRESS/SAVE_TEMP_FILES/TEMPORARY_FILES=-
'F$TRNLNM("SYS$SCRATCH")' DBS:NEWDB
_FTA73 2980CA23 [HUBBARD.DBS]SRTA06211.;1
_FTA73 2980CA23 [HUBBARD.DBS]LBIA06211.;1
_FTA73 2980CA23 [HUBBARD.DBS]PGE306211.;1
_FTA73 2980CA23 [HUBBARD.DBS]NEWDB.LG;1;
_FTA73 2980CA23 [HUBBARD.DBS]NEWDB.DB;1
_FTA73 2980CA23 [HUBBARD.DBS]NEWDB.BI;1
Progress Software Technical Support Note # 13174