Kbase P111424: What are the temporary files used by the OpenEdge client?
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  07/02/2011 |
|
Status: Verified
GOAL:
What are the temporary files used by the OpenEdge client?
GOAL:
What files are written to the Progress working directory?
GOAL:
What are the Progress temp files?
GOAL:
Where should the Progress temp files be located?
GOAL:
How are temporary files of a Progress user's session named.
GOAL:
Describing the temporary files within the Progress client.
GOAL:
What are rcd##### files in 10.1C?
GOAL:
What are rcd temp files?
FACT(s) (Environment):
Progress 9.x
OpenEdge 10.x
All Supported Operating Systems
FIX:
Temporary files are the files that Progress creates during a session and deletes at the end of a session. By default, Progress stores temporary files in the user?s working directory, whether the working directory is local or remote.
Put temporary files on the local hard disk or a RAM disk on each application workstation, whenever possible. Local I/O is usually much faster than network I/O. In addition, the file names generated are only guaranteed to be unique for the machine creating them, not for the overall environment. Thus if clients from multiple machines use the same network directory filename conflicts can occur.
To ensure that Progress stores temporary files in a local directory, either start each Progress client in a local directory or with the Temporary Directory (-T) startup parameter set to a local directory.
Progress creates temporary files during each Progress client session. When a session ends, Progress deletes these files unless you specify the Save Temp Files (-t) startup parameter.
Up to and including the OpenEdge 10.1B release, a hardlimit of 2GB applies to all client-temporary files, even if the database has been enabled for largefiles, the operating system supports largefiles, the disks support large file storage, the user limits do not restrict creation of large files.
Since OpenEdge 10.1C, this limit was dropped. If the OS and filesystem support >2GB filesizes, then the DBI*, SRT*, LBI* client-temp files can grow beyond that size as well.
For more information about the Temporary Directory (-T) and Save Temp Files (-t) startup parameters, see the Progress Startup Command and Parameter Reference Documentation.
Any combination of the following files might be seen in the Progress working directory per client connection (or where -T is specified):
- Temp table file (dbi*) - Progress uses this file to store temporary tables when temp table space requirements grow beyond the number of blocks specified by -Bt parameter. If the application uses a lot of temporary tables, this file can grow quite large.
- Local before-image file (lbi*) - Progress uses this file to back out of subtransactions and variable value changes. If the local before-image file becomes too large, the procedures probably use a lot of subtransactions.
- Session sort file (srt*) - Progress uses this file to maintain client-side sorting and result lists for queries. In releases earlier than OpenEdge 10.1C, it is also used to dynamically swap r-code segments in and out of the execution buffer.
- R-code swap file (rcd*) - In OpenEdge 10.1C and later, this is used to dynamically swap r-code segments in and out of the execution buffer instead of the srt* file. If these files are big and growing, you have a lot of rcode swapping and many procedures open.
- Edit buffer contents (pge*)
- trp* - Stores Data Dictionary changes until they are saved
- rpf* - Stores raw data used by the Profiler
On UNIX, unless you use the Save Temp Files (-t) startup parameter, you will not see the temporary files in the directory, because they are created unlinked. However, if your system crashes, the UNIX file system recovery program, fsck, finds the files. This program might then prompt you to delete the files. If this occurs, delete them.
On Windows, these temporary files are always visible during a Progress session.
Writing to these temporary files creates I/O activity that might slow down client performance.
The amount of temporary file I/O activity varies among applications. You might find that running a particular procedure results in Progress abnormally terminating in a way that indicates the hard disk is full. However, when you check the disk immediately afterward, adequate space is available. One possibility is that temporary files created during a Progress session become quite large, taking up .disk space as they expand. Since Progress erases temporary files at the end of a session, they do not appear when you check the disk.
For SQL clients the situation is somewhat different. SQL-92 temp tables are analogous to those created for 4GL clients, but they have a uniform name format of Mxxxx; they are similarly created during a transaction and released when the transaction ends. These temp files are (currently) designed to efficiently handle very large amounts of data. Pre 9.1D05, there is a 500 MB size limit on these tables. Pre OpenEdge 10.1x, they cannot be relocated by use of the -T parameter, but will always appear in the Progress working directory ($WRKDIR, %WRKDIR%). SQL tempfiles after 10.1x where sql temp files work like 4Gl temp files. Please refer to the Solution links below for further information. .