APPX Software Library

Appendix E: APPX Environment Variables

Debugging - General Variables

APPX_DB_TRAPS

Enables the use of ‘Ctrl-C’ as a dynamic trap when you are running processes outside of Application Design. Set this variable if you wish to allow a non-designer to use ‘Ctrl-C’, or if you wish to allow a designer to use ‘Ctrl-C’ when running processes outside of Application Design. This variable also enables TRAP statements when outside of Application Design.

Valid values: 1

Default value: not set

APPX_DBG_VFY

Specifies the log file name into which APPX writes the results of Executable Module rebuilding checks. If an EM appears to be rebuilding too frequently (for example, every time the process is invoked), set this variable to record the reasons the EM is being rebuilt. That may indicate a solution to the problem.

Valid values: path to write-enabled log file

Default value: not set

APPX_FD_CACHE_CODE

Determines how much is written to the file specified by APPX_FD_CACHE_LOG. A value of 1 will record file opens. A value of 3 will provide a history of all record locks that APPX acquires and frees.

Valid values: 1, 3

Default value: not set

APPX_FD_CACHE_LOG

Specifies the log file name into which all file opens and their success or failure status will be written. If APPX is behaving unpredictably and the reason is not obvious, this log may be helpful. You may have a permissions problem, or perhaps a missing structure file, or a corrupted data file. This log file can often indicate an area to investigate. Warning: this log file can become fairly large. The most efficient way to read it is to bring it up in an editor, go to the bottom, and read up, looking for failures. If you see the phrase “giving up (number)”, it means that APPX could not open that file. The reason for the failure is indicated by the number in parentheses. You must also set the APPX_FD_CACHE_CODE variable, to set the debug level for this log.

This variable may actually log when files are closed (not when they are opened), and some I/O statistics associated with each file.

Valid values: path to a write-enabled log file

Default value: not set

APPX_FMT_IO_LOG

Causes the IO log to be formatted for readability.

Valid values: 1

Default value: not set

APPX_IO_LOG

Specifies the log file name into which APPX will write all file I/O, keystrokes and Process ID’s. This variable is used only for APPXIO files.

Valid values: path to a write-enabled log file

Default value: not set

APPX_UNIXIO_PROCS

Causes APPX to also log process names as they are executed. This variable is used in conjunction with APPX_UNIXIO_STATS; if APPX_UNIXIO_STATS is not set this variable does nothing. This variable is available only on Unix systems.

Valid values: 1

Default value: not set

APPX_UNIXIO_STATS

Specifies the log file name into which APPX will write every APPXIO file open, close and I/O. APPX opens and immediately closes some files during startup. If you set this variable, and try to run APPX, and the log file is empty, there must be some generic error occurring. If you get some entries in the log, then the problem is with one or more, but not all, files. This may help you catch permission errors. Note that the statistics for a file are written when the file is closed, so if a file is closed and reopened, it will appear more than once in the log. This variable is available only on Unix systems.

For each I/O type (OPEN, READ, READNEXT, START, WRITE, REWRITE), the format of the report it produces is:

TOTAL-Time (seconds.microseconds), LONGEST-Time (seconds.microseconds), COUNT

Valid values: path to a write-enabled log file

Default value: not set

track_locks

Activates the APPXIO feature to keep track of lock holders on a file-by-file or FMS Group basis. This is not an environment variable, but is placed here because this is a likely place to look for this capability.

If you include the text ‘track_locks’ in an FMS control string, APPX records extra information for this file whenever a record is locked. There is a performance penalty when you use this option (two extra I/O operations for each successful read with hold) so you may want to apply this option selectively.

The three-character User ID will be displayed whenever APPX waits for more than 10 seconds for a lock. Note that APPX will not wait for the PCF in an INPUT process, so you will not see the User ID in that situation unless you have ILF statements within the process of READ, BEG READ, or READNEXT that refer to the PCF.

On Unix systems, you will still see a process ID if you don't use ‘track_locks’. There is no performance penalty for this.