APPX Software Library

Chapter 2-1: Data Dictionary Overview

Temporary versus Permanent Files

For every disk-based or memory-based file you define in the APPX dictionary, you must designate whether the file is temporary or permanent. This distinction affects how and/or when a file is created, opened, and scratched (see Table 2-1-5).

  • Temporary files provide working space that is unique to a task and automatically managed by APPX during processing. At its maximum, the existence of a temporary file is limited to a single APPX session. If, based upon a file’s specifications, it is not shared between processes, the existence of a file may be considerably less than the length of a session. Temporary files are database-independent; there is only one copy of a file for all databases that access it. Temporary files are never shared between users.
  • Permanent files, on the other hand, are always shareable between processes, and are managed by APPX’s database management. APPX never automatically scratches permanent files. If a file is disk-based, each database has its own copy of it; permanent, disk-based files are database-dependent. They are always shared between processes, regardless of file specifications.

Permanent files are created by APPX’s database management. See the System Management Manual for more information.

Table 2-1-5. A Comparison between Temporary and Permanent Files
AttributePermanent FileTemporary File
Shared Between databasesNo, except with statementsYes
Shared between processesAlwaysDependent upon file specs
Shared between usersYesNo
Outlasts a single sessionYesNo
Requires Database Management specificationsYesYes, if disk-based. No, if memory-based

Temporary files are created when a process that references the file begins. By using a CREATE statement, you exercise explicit control over the time when a temporary file is created. For example, you can define a CREATE statement in a Start of Process event point to force APPX to create the file at the beginning of the process.

APPX never automatically opens temporary or permanent files at the beginning of a process. To enhance perceived performance (and quite often actual performance), APPX distributes file openings throughout a process. A file is physically opened when APPX first needs to access the file. By using an OPEN statement, you exercise explicit control over the time when a file is opened. For example, you can define an OPEN statement in a Start of Process event point to force APPX to open a file at the beginning of the process.

Any process can be invoked as DETACHED or related, or as a SUBPROCESS. When working with temporary files, it is important to know how the file type and the process invocation are related and interact. See Chapter 1-5 for information about Interprocess Communication in APPX.

If APPX does not know for sure that a file exists, it attempts to open the file during the execution of a process. File Does Not Exist error messages can therefore occur at any time during process execution, unless all files are explicitly opened at the beginning of the process. The obvious trade-off is decreased performance.