Tags:
create new tag
view all tags

Environment Variables List

This document describes Environment Variables recognized by APPX 4.1. Most are also recognized by earlier APPX releases, as noted. This document is divided into three sections:

Information on setting Environment Variables can be found at Setting Environment Variables. General Environment Variable information can be found at APPX Environment Variables.


General Environment Variables

Categories included in this section are:

    • AppxNET Client (also AppxODBC)
    • Backward Compatibility
    • General
    • Import/Export
    • KEAterm Configuration
    • Presentation Server
    • Printing and Job Submission
    • Scripting and Regression Testing
    • UNIX-based APPX client
    • Windows

In general, when looking for relevant environment variables, look in the category you think makes the most sense. We attempted to categorize these variables in a logical fashion, however, some judgment calls were made, and the "internal" viewpoint toward the use of these variables might be different than yours, so if you don't see what you need in the category you visit first, keep looking in related categories and the "General" category.

AppxNET Client (also AppxODBC)
APPX_DATA_SERVER
 

Specifies the hostname:port to which your client will connect, to retrieve APPX data. It should be set to your APPX server's machine name, followed by a colon ":" character, followed by a port number, such as 8060. The hostname and port specified must correspond to a running WinAppxD or appxd (you can test this by trying to login to the desired hostname and port with "appx -c" or the Java client). Almost always required when using AppxODBC on a PC, to access UNIX data.

Valid values: hostname:port
Default value: not set

APPX_UID
 

The server user ID and password to be used for authentication of your AppxNET connection. The user ID and password must exist, and be non-expired, for login to be successful. Almost always required when using AppxODBC on a PC, to access UNIX data.

Valid values: server_userid:server_password
Default value: not set

Backward Compatibility
APPX_ACCESS_ALL_FILES
 

Causes APPX to revert to pre-3.2 file opening behavior, if set to 1. In APPX 3.2, a performance optimization was made, to cause APPX to only open a file if it believes there is a chance of I/O actually being performed with that file. Prior to release 3.2, APPX would open any file, which was referred to by a process.

For example, in APPX 3.1, the statement:

SET TAR CUSTOMER BALANCE = 0

Would cause APPX to open the CUSTOMER file even though no IO would take place.

Also, referring to a file in a child constraint would cause APPX to open the file when the parent is executed.

Now, in 3.2, we only open a file if we detect one or more of the following reference types:

  • The file is the PCF for the process
  • READ, READNEXT, BEG/END READ statement
  • WRITE< REWRITE, DELETE statement
  • SCAN statement
  • The file is the target of a data lookup

If you are experiencing problems with a process under 3.2 or later, and you know that process ran fine on a version of APPX prior to 3.2; try setting APPX_ACCESS_ALL_FILES=1 and see if the problem goes away.

Valid values: 1
Default value: not set

APPX_184_MASKS
 

Causes APPX to revert to version 1.8.4 (and earlier) numeric mask interpretation, if set to 1. Otherwise, APPX uses the new default numeric mask interpretation in APPX 2.0 and later. (Hopefully no one still needs this, but it's here for completeness.)

Valid values: 1
Default value: not set

APPX_200_ALIGNMENT
 

Causes APPX to revert to version 2.0 (and earlier) alignment for numeric fields, if set to 1. Otherwise, APPX uses the new default numeric alignment in APPX 2.2 and later. (Hopefully no one still needs this, but it's here for completeness.)

Valid values: 1
Default value: not set

APPX_184_IPC
 

Causes APPX to revert to pre-2.0 IPC semantics for Related processes, if set to 1. (Hopefully no one still needs this, but it's here for completeness.)

Valid values: 1
Default value: not set

APPX_NO_NEG_INT
 

Causes APPX to revert to pre-3.3 semantics when assigning a negative number to a signed binary. For some reason, assigning a negative number to a signed binary would cause an overflow in releases prior to 3.3. In case for some unknown reason you really do want the overflow to occur, you can turn the old behavior back on, by setting APPX_NO_NEG_INT to 1.

Valid values: 1
Default value: {appx engine location}/data

APPX_VERIFY_IO
 

If set to '0' (the digit zero, without quotes), I/O verification is turned off. If the environment variable is not defined at all, I/O verification is turned on for Windows, and off for UNIX. You might want to turn this off if you are confident of your Windows network file access, or if you are using Presentation Server on Windows, because there is a performance penalty associated with I/O verification, which will show up under heavy user load as an increase in I/O counts and CPU utilization. (Why use it at all? Because Microsoft Windows network file sharing code has some bugs that have been known to corrupt data in APPX and other database file environments.)

Valid values: 0
Default value: not set

APPX_OLD_PD_MUL
 

This variable probably should not be used. It disables fixes to packed decimal multiplication that were made to APPX version 3.0.

Valid values: 1
Default value: not set

APPX_DISABLE_DYNAKEYS
 

If set to 1, disables the ability of end users to create Dynamic Keys to data files. Dynamic Keys were a new feature added in a recent 3.x release of APPX, and sometimes sites have huge files that would require lots of processing and disk space to create a dynamic key. For this reason, a site might choose to not implement this feature on their production system, or might choose to restrict certain users from using it, by setting this environment variable.

Valid values: 1
Default value: not set

APPX_DYNA_LOG
 

File name into which to log Dynamic Key generation debug information. If you've generated a Dynamic Key, and you get no records in the resulting key, or experience some other problem, set this variable to collect more information as to what is happening during dynamic key generation. If this variable is not set, no debug information is collected.

Valid values: Appropriate path to a writable log file on your system
Default value: not set

APPX_SCAN_PROC
 

This variable instructs APPX to use an alternate SCAN process. It is made obsolete by the use of 0SA 'Hook' records in APPX 4.0 and higher).

Valid values: Name of alternate SCAN process
Default value: (in 4.0 and later, new SCAN process)

General
APPXPATH
 

This variable denotes the default location of the APPX system administration files, applications and database files. You can override the location of the system administration files using the APPX_0SA_PATH variable, and override the location of any files via FMS groups.

Valid values: Appropriate path to APPX data files directory on your system
Default value: {appx engine location}/data

APPX_0SA_PATH
 

This variable tells a PC network node to look to a server's disk drive for its APPX System Administration files. One situation in which you might want to do this is to run several copies of APPX on networked PC's, while sharing a single set of System Administration settings like the User list, Printer list, etc.

Side note: To tell a PC network node to store its Application Design files on a server's disk drive, but keep Em's on the local PC's drive (for performance), define an FMS group as follows:

 FMS Path: R:\APPX\data
 FMS Controls: EM=C:\APPX\local_data

... where FMS Path is a path to the APPX applications stored on a server's disk, and the EM= value is a path to an existing directory on the local PC, into which Em's can be cached. Then assign the application design files to this FMS group, for any application whose Em's you would like cached in this fashion.

Valid values: Appropriate path to a server's disk drive, in which to find the 0SA directory, such as R:\APPX\data
Default value: APPX looks for them under the APPXPATH directory

APPX_KEYMAP
 

This variable can be set to the name of the default keymap to load. This is the same as using the -m= command line option.

Valid values: Any valid keymap name for your APPX installation
Default value: not set

APPX_SMART_ILF
 

This variable controls the behavior of the ILF editor. Setting it to 'true' will activate automatic copying of T/F flags from line to line, and auto completion of BEG READ/END READ commands and BEG LOOP/END LOOP commands.

Valid values: true
Default value: not set

APPX_SHOW_PROGRESS
 

Activates a running status message during Query and related Output and Update processes. This message will keep you informed as to the progress of the batch process. Number of records processed, number of records selected, etc. The message is updated every record until it reaches 10, then it updates every 10 records until it reaches 100, then it is updated every 100 records, etc.

Valid values: true
Default value: not set

APPX_MSG
 

If defined, the value of this variable is centered on the bottom line of the screen. Setting this variable to `hostname` (UNIX only) and/or $APPXPATH is useful. (Warning: if you want to use `hostname`, it must be set at the shell level like in .profile, not in appx.env, as only the shell can interpret ``'s.)

Valid values: Any text string, or `command` (where the output of command, is the text that will be displayed)
Default value: none

APPX_DYNAKEY_PROMPT
 

Sets a threshold of records processed during Dynamic Key creation, at which APPX will display a warning message and ask the user if they really want to continue building the Dynamic Key, or if they want to cancel the Dynamic Key creation process. The default is 1000 records. To change the default, set this variable to the number of records at which you want the warning to appear. Note that this is an absolute value, not an interval. That is, if you set this to 2000, you will not receive the warning every 2000 records. The warning and Cancel opportunity will be displayed just ONCE, after the 2000th record processed.

Valid values: Integer
Default value: 1000

APPX_STD_PGH_MASK
 

Sets the date mask for dates displayed in page headings. For example, you could set APPX_STD_PGH_MASK to "06/05/0807 - 04:03 02.1", and your page heading dates would come out like "03/25/1999 - 00:18 13.82".

Valid values: Valid APPX date mask
Default value: System or application date mask, if set

APPX_ZERO_MALLOC
 

This variable should no longer be set for sites running APPX 3.0 or later, because it was a workaround for a bug which was fixed in version 3.0. Since there is a slight performance impact to the workaround, if you don't NEED this variable (i.e., if you are not running a pre-3.0 APPX), don't set it.

Valid values: 1 (set this only if running a pre-3.0 version of APPX)
Default value: not set

Import/Export
APPX_PORTABLE_DATE
 

Set this to ignore the "Bad portable date" error, which sometimes appears very often (hundreds of times or more) when importing SPEED II files which contain dates. The reason it occurs is that SPEED II would allow you to store invalid dates in a date field via ILF code, whereas APPX will reject any invalid date during import.

Valid values: true
Default value: not set

KEAterm Configuration
APPX_KEATERM
 

If APPX_KEYMAP=keaterm, certain features are activated inside the engine to simulate GUI functionality. APPX_KEATERM allows you to select whether a set of "smart buttons" for APPX will be displayed by the terminal emulator. The use of the KEA terminal emulator to provide limited GUI functionality has been superseded by our true GUI clients.

Valid values: Buttons, NoButtons
Default value: not set

Presentation Server (appxd and WinAppxD)
APPX_SERVER
 

This variable must be set to a valid filename of an appx engine. For example, if you had installed APPX in /usr/appx, you would set APPX_SERVER=/usr/appx/appx. On UNIX systems, in most cases, you would set this variable in the start-appxd.sh shell script On Windows systems, you would set it in the System environment variables dialog box. This variable must be set before appxd or WinAppxD is started. Changes made to it when appxd and WinAppxD are already running will not be used until the appxd or WinAppxD is killed and restarted.

Valid values: Valid path to an appx engine
Default value: not set

APPX_DISABLE_TCP_NODELAY
 

This disables the use of the TCP "NODELAY" option. The NODELAY option sends out characters without the buffering of multiple characters into a single packet that normally takes place. Disabling NODELAY may improve your APPX Presentation Client or AppxNET performance. (It also may not. Results are dependent on your network configuration and exactly what you're doing across the network.)

Valid values: true
Default value: not set

APPX_NET_FEATURE_MASK
 

Allows you to hard code a list of supported client/server features, in case for some reason you want to override the client or server's default list. For example, if both your client and server support the new Data Palette feature, but you don't want to make this feature available, you could disable it by eliminating the bit representing that feature, from the feature mask on the client or server. This variable should be used only as directed by APPX Technical Support.

Valid values: hex numbers between 0x00000000 and 0xFFFFFFFF
Default value: APPX-version-dependent

APPX_SRVR_TIMEOUT
 

Specifies the interval in minutes between "is the other system alive?" pings, in an attempt to detect dead connections. The default is 10. If you set it to a number below 5, it will be reset to 5, so that the network is not filled with constant "are you there?" queries.

Valid values: Integers
Default value: 10

Printing and Job Submission
APPX_PRT_SCRIPT
 

Tell APPX to use a different script to process print jobs. Commonly set to "appx_print_asi" when users are running PowerQ. If you don't specify a full path (starting with / or \), APPX will assume the script or .exe is in the APPXPATH directory.

Valid values: Path to valid print script or .exe
Default value: %APPXPATH%\WINPRINT.EXE (Windows) or $APPXPATH/appx_print (UNIX)

APPX_PRT_SCRIPT_HIDE
 

If this variable is set, when APPX invokes the APPX_PRT_SCRIPT on Windows, it will do so without displaying a visible window on the screen.

Valid values: true
Default value: not set

APPX_BG_SCRIPT
 

Tell APPX to use a different script to submit batch jobs marked as Separate Task? Y. This is commonly used to interface APPX to batch job scheduling systems.

Valid values: Path to valid batch job submission script or .exe
Default value: $APPXPATH/appx_submit (UNIX)

APPX_PRT_FI_DIR
 

Set the disk location where print files are created and stored on your system. This variable must end with a forward slash / on UNIX, and a backslash \ on Windows.

Valid values: Appropriate path to a writable directory
Default value: %APPXPATH%\print\{userID} (Windows) or /tmp/ (UNIX)

APPX_SUPPRESS_UID_SWITCH
 

UNIX-only. Normally, when APPX creates a print file, it will change the print file's ownership to the logged-in user. This provides a measure of security, so that multiple users don't go reading each others' print files. In some situations, though, you DO want all print files owned by 'appx' rather than individual users. Setting this variable tells APPX not to change print file ownership; all print files will remain owned by 'appx'.

Valid values: true
Default value: not set

APPX_PRT_FI_SIZE
 

VMS-only. Specifies how much space to pre-allocate for a print file. This is a performance option required by a prior user.

Valid values: Integer
Default value: not set

Scripting and Regression Testing
APPX_SCRIPT_OUT
 

APPX_SCRIPT_OUT will record all enduser keystrokes (and selected Processes executed in the program flow) into an output file. This file is quite readable, and is editable for the use of APPX_SCRIPT_IN (described below). It is initialized upon entering APPX. It is not populated until APPX is successfully exited.

Valid values: Appropriate path to a script recording file on your system
Default value: not set

APPX_SCRIPT_IN
 

APPX_SCRIPT_IN will "play back" all keystrokes recorded in it, into the invocation of the APPX engine, as if the enduser had manually pressed these keys. It will also substitute any #$word sequences it finds, in the APPX_SCRIPT_IN file, with the current value of the environment variable "word". For example, #$USER would substitute in "michael" if the environment variable USER was set to "michael".

Valid values: Appropriate path to an existing script on your system
Default value: not set

APPX_SCRIPT_STEP
 

APPX_SCRIPT_STEP if set will cause APPX to pause before each APPX OPTION key is sent from the script. While paused, you can press certain keys to do special processing. Here is a list of the actions and keys that work while you are paused.

  • c = continue running remainder of script without stepping.
  • p = pause and you take over the keyboard until you press ^r
  • e = terminate script playback and take control of the session.

Any other key will step forward in the script until the next APPX OPTION key is encountered in the script and then it will pause again.

Valid values: true
Default value: not set

APPX_TST_DIR
 

APPX_TST_DIR points to a directory to capture screen images. If this is set, APPX will record every screen image it comes to into this location. If you are running with APPX_SCRIPT_OUT set, then it will store the images in a subdirectory of "expect" and if you are running with APPX_SCRIPT_IN set, then they will be stored in a subdirectory of "actual". The screens themselves will be saved with a file name starting with "screen000" and incrementing the last three digits.

Valid values: Writable directory on your system, which contains writable subdirectories named "expect" and "actual"
Default value: not set

APPX_SCRIPT_STOP
 

Specifies behavior of APPX when running with APPX_SCRIPT_IN set, performing regression testing. When set to "ALL", causes APPX to exit when a recorded screen differs from an actual screen generated during regression test playback. When set to "STATUS", causes APPX to exit when a recorded screen's status area differs from the status area of an actual screen generated during regression test playback.

Valid values: "ALL" or "STATUS"
Default value: not set.

UNIX-based APPX client
APPX_USER
 

Only when using a UNIX system as an APPX client. Specifies the user ID to be used to authenticate to the remote system APPX_HOST. Used in conjunction with APPX_PSWD, APPX_HOST and APPX_PORT variables.

Valid values: User ID on the remote system specified by APPX_HOST
Default value: not set

APPX_PSWD
 

Only when using a UNIX system as an APPX client. Specifies the password for APPX_USER, to be used to authenticate to the remote system APPX_HOST. Used in conjunction with APPX_USER, APPX_HOST and APPX_PORT variables.

Valid values: Password for APPX_USER on the remote system specified by APPX_HOST
Default value: not set

APPX_HOST
 

Only when using a UNIX system as an APPX client. Specifies the APPX server hostname to connect to. This hostname must be running appxd (UNIX) or WinAppxD (Windows). Used in conjunction with APPX_USER, APPX_PSWD and APPX_PORT variables.

Valid values: Valid hostname running appxd or WinAppxD
Default value: not set

APPX_PORT
 

Only when using a UNIX system as an APPX client. Specifies the port to connect to on APPX_HOST, to begin an APPX Presentation Server client session. There must be an appxd (UNIX) or WinAppxD (Windows) running on this port on APPX_HOST, for the connection to succeed. Used in conjunction with APPX_USER, APPX_PSWD and APPX_HOST variables.

Valid values: Valid port number on APPX_HOST which an appxd or WinAppxD is running
Default value: not set

APPX_REMAP
 

Only when using a UNIX system as an APPX client. Trigger keyboard remapping, if set to 1.

Valid values: 1
Default value: not set

Windows
   
APPX_BIG_BUTTONS
 

For the APPX Win32 client ("appx -c"), specifies that the "big button" GUI style should be used.

Valid values: 1
Default value: not set

APPX_NET_HASP
 

Specifies a network security HASP to login to. This has been made obsolete by new HASP processing which is local and does not use a HASP server, but is documented here in case a site still uses it.

Valid values: Network security HASP server
Default value: not set

Y2K Options
APPX_PIVOT_ITEMS
 

If you want masked date items to pivot, set this to the year around which you wish to pivot. Available as of 3.5.2. Applies to date-masks only. See the Y2K Implementation Guide for further information.

Valid values: 1 to 99
Default value: not set

APPX_PIVOT_YEAR
 

To pivot 2-digit years to 19__ or 20__ as appropriate, set this variable to the cutoff year. Applies to both ILF statements, and date-masks. See the Y2K Implementation Guide for further information.

Valid values: 00 to 99
Default value: not set

APPX_FAKE_TIME
 

If you want to cause APPX to think the current date/time is something other than the current system clock's date and time, you can set this variable to "fake it out" for Y2K testing. The date/time listed in this variable will be used at the start of the APPX session. Time will tick forward from that point, so that an hour later, the time reported by APPX will be an hour later than the time it started with. (IE, this will not "fix" a set date and time for the entire session, just a starting point for it.) Theoretically, APPX_FAKE_TIME is supposed to set the time as well as the date, but multiple users have reported that while the time is reset, it is reset to some random value rather than the one requested, so caveat emptor. This variable should be set to a hardcoded date in APPX format. For example, to get a date of 6/15/2001 8:00am, you might set APPX_FAKE_TIME=20010615100000.

Valid values: date/time in ASCII format
Default value: not set


Database Interfaces

This section contains a list of external database interface environment variables recognized by APPX 4.1. Most are also recognized by earlier releases, as noted.

Categories included in this section are:

    • ISAM Configuration
    • ODBC
    • ORACLE
    • RDBMS Configuration
    • SYBASE
    • Vision

In general, when looking for relevant environment variables, look in the category you think makes the most sense. We attempted to categorize these variables in a logical fashion, however, some judgment calls were made, and the "internal" viewpoint toward the use of these variables might be different than yours, so if you don't see what you need in the category you visit first, keep looking.

Database - ISAM Configuration (Vision/CISAM)
APPX_PD_SIGNS
 

APPX_PD_SIGNS will tell APPX what byte pattern to use for the sign bits of packed decimal numbers. The first hex digit signifies the bit pattern for positive numbers, and the second the bit pattern for negative numbers. The default is "CD" which is how APPX is normally distributed. Vision uses a default of "FD" which can be overridden when the vision programs are compiled. This setting also effects the APPX EMs which store some packed decimal information. This setting also effects files stored as native APPX files. So, to use this setting of "FD", you must install a special set of APPX internal EMs, and if you have and existing data in "CD" format, you must export the data, set the APPX_PD_SIGNS=FD, then import. Note that if you are accessing Vision/CISAM files over the network via AppxODBC or AppxNET, this variable must be set on both the client and the server system.

Valid values: "CD", "FD"
Default value: "CD".

Database - ODBC (SQL Server, Access, etc.)
APPX_ODBC_AUTOCOMMIT
 

Enables the auto-commit flag for SQL Server. If you are accessing SQL Server data from APPX, you should set this variable to enable auto-commit.

Valid values: 1
Default value: not set

APPX_ODBC_ISOLATION
 

Tells APPX to request transaction isolation level 0 from the ODBC database we are accessing (it may or may not be supported; this just tells us to ask for it, not that it's really there). Setting this allows APPX to read data which has not yet been committed, allowing APPX to avoid some potential deadlock situations. Do not set this variable unless requested by APPX Software.

Valid values: 1
Default value: not set

APPX_ODBC_LIB
 

This is used to specify the ODBC driver manager DLL location, for dynamic linking. The default, "odbc32.dll", should almost always be sufficient, but if it ever is not, you can override the default by setting this variable. (You might want to set this to a full path, if your ODBC driver manager DLL is not in your %WINDOWS_ROOT% directory, for example.)

Valid values: Appropriate path to ODBC driver manager DLL
Default value: "odbc32.dll"

Database - ORACLE
APPX_ORACLE_FIRST_ROWS
 

"Hint" to Oracle that you want it to optimize its query processing so that the first few rows of a query are returned quickly. The alternative is to optimize the QUERYs so that all rows are returned as quickly as possible. Since APPX generally displays a screenful of records and then stops, awaiting user interaction, rather than retrieving all records immediately, setting this variable can improve performance.

Valid values: 1
Default value: not set

APPX_ORACLE_CONNECT
 

This variable has been superseded by FMS control strings, but still exists in the system. Since it is more flexible to use FMS control strings, that is a better option. However, since some users may still have this variable set, it is worth documenting.

APPX_ORACLE_CONNECT specifies what user ID and password to use to login, to Oracle. You can also specify which database to connect to. The format of the string depends on the version of the server, the network library being used, the OS and some other factors. You have to know how to login to Oracle from the command line before you can tell APPX how to do it.

Valid values: installation-dependent connect string
Default value: not set

APPX_ORACLE_LIB
 

This is used to specify the ORACLE library location, for dynamic linking. Normally, you would just use the ORACLE or ORAHOME environment variables, one of which is probably already set on your system (probably pointing to the home directory for the user 'oracle'), but in some cases, you might want APPX to dynamically link against a set of libraries which is not in ORACLE or ORAHOME (if testing a new version, for example). In that case, set APPX_ORACLE_LIB to that alternate location, and it will override the setting of ORACLE.

Valid values: Appropriate path to ORACLE library
Default value: not set

APPX_ORIO_LIBS
 

This is used to specify the names of the ORACLE libraries which APPX references when dynamically linking in ORACLE functionality. The default list should be sufficient, but might need to be altered for different versions of Oracle, or the same version on different OS platforms. A symptom of perhaps needing to change the list of libraries would be APPX complaining about a symbol not found, after you have installed a new version of ORACLE.

Valid values: list of Oracle libraries containing functions used by the APPX ORACLE interface
Default value: "libnet.so,libclntsh.so"

APPX_ORACLE_PARAM_INSERTS
 

Specifies that parameterized INSERTs should be used when inserting data into Oracle tables.

Valid values: 1
Default value: not set

Database - RDBMS Configuration
APPX_NO_END_CONSTRAINTS
 

This variable disables a performance optimization to use constraints on the upper range limit for record access. Do not set this variable unless requested by APPX Software, since the performance optimization is very useful.

Valid values: 1
Default value: not set

APPX_RDBMS_NDK
 

Starting with release 3.5, you have a choice of how APPX creates RDBMS date key segments. A new environment variable, APPX_RDBMS_NDK, controls the treatment of date key segments as follow:

Not Defined- Date key fields are defined as 'char' and any NULL values are translated to/from blanks. This is a high-performance option and it is the default.

APPX_RDBMS_NDK=NULL- Date key fields are defined as 'date null'. This is a low performance option, many of the queries produced by APPX will ignore the defined indices.

APPX_RDBMS_NDK=MANDATORY- Date key fields are defined as 'date not null'. This is a high performance option, but you will not be allowed to store any records with a NULL value in the date key segment.

APPX_RDBMS_NDK=some_value- Date key fields are defined as 'date not null'. Instead of storing NULLs, we store the given value when writing to the RDBMS and translate from the given value into NULL when reading from the RDBMS. should be a date constant which is valid in the RDBMS. For example, could be defined as '00010101000000' to use midnight of January 1st, 0001 AD as your NULL date for Oracle.

Valid values: NULL,MANDATORY, or some string to be used as the null value
Default value: not set

APPX_SQL_BUFFER
 

Specifies the size of the SQL command buffer (in bytes) when communicating with an RDBMS. This is the area that will hold the actual SQL commands that are sent to your database server (an INSERT, complete with entire record contents to be INSERTED, for example) The default is 16384 bytes. This variable should never be set lower than 2048. You may need to increase it from its default of 16384 if you have a table containing many large fields.

Valid values: Integer
Default value: 16384

Database - Sybase
APPX_SYBASE_SERVER
 

Default SYBASE server name. Probably made obsolete by FMS group settings. If set, this variable overrides the value of DSQUERY (which also holds the name of the default SYBASE server).

Valid values: Valid SYBASE server, such as 'sybase'
Default value: not set

APPX_SYBASE_DATABASE
 

Default SYBASE database name. Probably made obsolete by FMS group settings. This is the SYBASE repository into which we write metafiles describing file structures. IE, the SYBASE data dictionary.

Valid values: Valid, existing SYBASE database name, such as 'master'
Default value: not set

APPX_SYBASE_LIB
 

This is used to specify the SYBASE library location, for dynamic linking. Normally, you would just use the SYBASE environment variable which is probably already set on your system (pointing to the home directory for the user 'sybase'), but in some cases, you might want APPX to dynamically link against a set of libraries which is not in SYBASE (if testing a new version, for example). In that case, set APPX_SYBASE_LIB to that alternate location, and it will override the setting of SYBASE.

Valid values: Appropriate path to SYBASE library
Default value: not set

APPX_SYBASE_PACK_SIZE
 

Packet size for SYBASE database server communications. Setting this to 4096 may improve efficiency of communications.

Valid values: Integers
Default value: not set

APPX_SYBASE_LEVEL0
 

Enable Level0 table locking in SYBASE. This is probably still a development feature and should not be enabled unless requested by APPX Software.

Valid values: 1
Default value: not set

Database - Vision
APPX_ISKEYSEG
 

If set, this variable overrides APPX normal behavior of trying to consolidate multiple key segments. Instead, it will form key segments the same way Vision through AcuCobol would. When might you want to use this? If you try to create a Vision file, and instead of creating the file, APPX jumps right out of Create Files back to Database Management, setting this variable might enable the file to be created. Also, if you receive the error FMFI.C "can't empty pfb list", setting this variable might avoid the error condition.

Valid values: 1
Default value: not set

APPX_VISION_MAXFILES
 

Maximum number of open files in the Vision file system. You may need to increase this to 255 or greater for applications containing complex processes which use CISAM files. Available in APPX 3.2.4 and higher.

Valid values: Integers
Default value: not set

APPX_VISION_MAXLOCKS
 

Maximum number of record locks per process. You may need to increase this to 40 or greater for applications containing complex processes which use CISAM files. Available in APPX 3.2.4 and higher.

Valid values: Integers
Default value: not set

APPX_VISION_LOCKS_PER_FILE
 

Maximum number of locks per file, per process. You may need to increase this to 20 or greater for applications containing complex processes which use CISAM files. Available in APPX 3.2.4 and higher.

Valid values: Integers
Default value: not set


Debugging

This section contains a list of environment variables recognized by APPX 4.1. Most are also recognized by earlier releases, as noted.

Categories included in this section are:

    • AppxNET
    • AppxODBC
    • APPX CGI Interface
    • CISAM
    • License Server
    • Memory
    • General
    • Presentation Server
    • Relational Database Access
    • Restructure
    • Security HASP
    • Translation
    • UNIX
    • Vision
    • VMS RMS
    • Windows
    • Winprint

In general, when looking for relevant environment variables, look in the category you think makes the most sense. We attempted to categorize these variables in a logical fashion, however, some judgment calls were made, and the "internal" viewpoint toward the use of these variables might be different than yours, so if you don't see what you need in the category you visit first, keep looking in related categories and the "General" category.

Debugging - AppxNET
APPX_NETIO_LOG
 

Filename into which AppxNET debugging information should be logged. If you are experiencing problems with AppxNET, setting this variable and its companion debug level variable, APPX_NETIO_CODE, will log debugging information to a file. (It may also be helpful to set APPX_NETIO_SERVER, APPX_NET_LOG and APPX_NET_LOG_MASK).

Valid values: Appropriate path to a log file on your system
Default value: not set

APPX_NETIO_SERVER
 

Filename into which AppxNET server side debugging information should be logged. If you are experiencing problems with AppxNET, setting this variable will log debugging information related to the server side of an AppxNET client/server connection, to a file.

Valid values: Appropriate path to a log file on your system
Default value: {appx engine location}/data

APPX_NETIO_CODE
 

Debug level for APPX_NETIO_LOG. If you set APPX_NETIO_LOG, you will almost always want this set to 0xFFFFFFFF.

Valid values: hex numbers between 0x00000000 and 0xFFFFFFFF
Default value: 0x00000000

APPX_NET_HEADERS
 

Enable APPX client/server network packet headers for debugging.

Valid values: 1
Default value: not set

Debugging - AppxODBC
APPX_ODBC_LOG
 

File name into which the AppxODBC driver will write debugging information. If you are experiencing problems with AppxODBC (the driver that allow you to access APPX files from within PC client applications like MS Access), this variable will produce a trace of AppxODBC's activities. You must also set the corresponding debug level variable, APPX_ODBC_CODE, if you want it set to something other than the "log everything" default of 0xFFFFFFFF.

Valid values: Appropriate path to a log file on your system
Default value: not set

APPX_ODBC_CODE
 

Debug level for APPX_ODBC_LOG. If you set APPX_ODBC_LOG, you will almost always want this set to 0xFFFFFFFF.

Valid values: hex numbers between 0x00000000 and 0xFFFFFFFF
Default value: 0xFFFFFFFF

Debugging - APPX CGI Interface
APPX_CGIDATA_LOG
 

Filename to which CGI data parsing debug information should be logged. If you are using APPX through the CGI interface, and want to see exactly what variables are being received by the APPX process during the CGI data import, set this variable to point to a log file, and the CGI data parsing routine will record the variables and values it finds on its input stream.

Valid values: Appropriate path to a log file on your system
Default value: not set

Debugging - CISAM
APPX_CISAM_DEBUG
 

If you are experiencing problems with CISAM file access, this variable will activate CISAM debug options with detailed error message reporting, to aid in problem identification.

Valid values: Appropriate path to a log file on your system
Default value: not set

Debugging - License Server
APPX_LS_DBG
 

Specifies the debug level when debugging license server issues. If you are having license server trouble, set this to 0xFFFFFFFF. Debug information for the "appx -l=" license server process will appear in the file named after the "-l=", and debug information for clients attempting to obtain session licenses will appear in $APPX_LS_LOG, if it is set. In order for this variable setting to affect the license server, you must kill and restart it. Setting this variable after the license server is running, will not cause it to log debug info. Warning: watch the size of your log file when you have APPX_LS_DBG set, because license server logging tends to be verbose, and you can fill up your disk more quickly than you think.

Valid values: hex numbers between 0x00000000 and 0xFFFFFFFF
Default value: 0x00000000

APPX_LS_LOG
 

This variable denotes where to log license server client debug information. In older releases of APPX (early 3.x) it was used to specify server log file location as well. However, all license server logging is now done in the logfile mentioned after "-l=" on the license server command line (typically "logfile").

Valid values: Appropriate path to a writable log file
Default value: none

APPX_LS_GHOSTS
 

This variable will cause newer releases of APPX to revert to the old license server behavior of clearing out "ghost" sessions from the USAGE file. "Ghost" sessions are ones still listed in the USAGE file, whose actual APPX processes no longer exist. Aggressively pursuing the removal of these on busy systems results in excessive contention for USAGE locks, so by default, this is now disabled. If a site doesn't have any problems with USAGE locks, and would like to re-enable the ghost-reaping algorithm so that their display of license users more closely matches reality, they should set this to 1.

Valid values: 1
Default value: not set

APPX_LS_DELAY
 

Number of seconds to wait, after starting license server, before the APPX session validates its license information. You've probably seen the situation where the first time you start APPX after a reboot, it complains about no license server detected, then if you run APPX again, it works fine. Setting this variable to a larger number, like 10 seconds, should avoid that initial "no license server detected" message, at a cost of it taking longer for that

Valid values: Integers
Default value: 5 (UNIX) or 8 (Windows), either of which is usually too small

APPX_LS_INTERVAL
 

Number of minutes between checks of USAGE file information. Sometimes it helps, on busy systems, to increase this. It should not, however, be set to a number greater than 10 minutes.

Valid values: Integers
Default value: ??

Debugging - Memory
APPX_RUN_MEM
 

Overrides the amount of memory APPX will use for an in-memory query. Above this value, APPX will switch to a disk-based sort, which is less efficient. You might want to up this value if queries that ran OK with a small number of records start having trouble when the number of records increases. This may be obsolete in 4.1.

Valid values: max number of bytes to use for an in-memory query sort
Default value: 256000 on UNIX, 64K on Windows (which APPX thinks is very low, perhaps too low)

APPX_TRAILER_COUNT
 

Tells APPX to append additional trailer bytes to each memory allocation. These bytes are filled with known values which are later checked for corruption when the memory is given back to the system. They can be used to find out if APPX is writing beyond the end of an allocated chunk of memory or memory is getting stepped on for some other reason. If you set APPX_TRAILER_COUNT and memory corruption is detected, you will receive an "mm.c.876 mm_free() - corrupted" cassert message as soon as the corruption is detected.

It's useful to set this variable to 40 if you are getting some other kind of mm.c cassert, because it may catch the source of a memory error BEFORE the other mm.c cassert is triggered, and provide better debugging hints.

Also, .stk dumps (on casserts other than the MARK() error) may provide more info as to what may be going on, if this variable is set.

Valid values: integers
Default value: 0

APPX_CHECK_MEM
 

Causes APPX to periodically pause and verify its allocated memory, in an attempt to narrow down the source of a memory corruption issue. This is VERY processor-intensive, and will slow your APPX session down dramatically. For this reason, it's best not to use this variable unless specifically requested by APPX Software.

Valid values: true
Default value: false

Debugging - General
|

APPX_UNIXIO_STATS |||||||| |

|

This variable is available only on Unix systems. Log file name into which APPX will log every AppxIO file open, close and I/O. APPX opens and immediately closes some files right at startup. If you have set this variable, and tried to run APPX, and the log file is empty, there is most likely 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 might 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 APPX_UNIXIO_STATS log.

The format of the report it produces is: ||||||| | ^ |

open count |

read count |

readnext count |

start count |

write count |

rewrite count |

filename | | ^ |

Valid values: Appropriate path to a log file on your system
Default value: not set
||||||| |

APPX_UNIXIO_PROCS |||||||| |

|

This variable is available only on Unix systems. Used in conjunction with APPX_UNIXIO_STATS, setting this variable to true will cause APPX to also log the process names, as they are executed. Unless APPX_UNIXIO_STATS is set, this variable does nothing.

Valid values: true
Default value: not set
||||||| |

APPX_FD_CACHE_LOG |||||||| |

|

Name of log file into which all file opens and their success or failure status will be logged. If APPX is misbehaving and you can't quite narrow down why, but suspect you might have a permissions problem, or perhaps a missing Struct file, or some other odd situation, the APPX_FD_CACHE_LOG can often lead you to an area to investigate. Warning: this log file tends to be somewhat large. The most efficient way to read the output is to bring it up in an editor, go to the bottom, and read up, looking for failures. If you see "giving up (number)", APPX could not open the file. The system reason is indicated by the number in parentheses. You must also set the APPX_FD_CACHE_CODE variable, to set the debug level for this logging.

Valid values: Appropriate path to a log file on your system
Default value: not set
||||||| |

APPX_FD_CACHE_CODE |||||||| |

|

How much APPX_FD_CACHE_LOG logging to perform. A value of 1 will log file opens. A value of 3 will provide a history of all record locks that APPX acquires and frees.

Sample output of this log might be:

Trying to open fd_cache[0] for c:\appxtest\data\00\0SA\Data\FILE.key (2)
ok - last_hit = 0, cache_cnt = 1
Trying to open fd_cache[1] for c:\appxtest\data\00\0SA\Data\FILE.dat (2)
ok - last_hit = 3, cache_cnt = 2
closing fd_cache[0] os_handle = 7 - c:\appxtest\data\00\0SA\Data\FILE.key
closing fd_cache[1] os_handle = 8 - c:\appxtest\data\00\0SA\Data\FILE.dat
...
Trying to open fd_cache[15] for c:\appxtest\data\00\0DB\Em\RJ29MYCP.dat (2)
giving up (2)
...

Valid values: 1, 3
Default value: not set
||||||| |

APPX_DB_TRAPS |||||||| |

|

As of APPX 3.2, Ctrl-C no longer functions as a dynamic trap unless you are running from within application design. If you wish a non-designer to be able to use Ctrl-C, or if you wish a designer to be able to use Ctrl-C when running processes outside Application Design, set this variable to true. It also enables TRAP statements when outside of Application Design.

Valid values: true
Default value: not set
||||||| |

APPX_DBG_VFY |||||||| |

|

Filename to which Em "currency" checking results should be logged. If an Em seems to be rebuilding too frequently (for example, every time the process is invoked), set this variable to record the reasons Em's are being rebuilt, and it may point to a solution to the problem.

Valid values: Appropriate path to log file on your system
Default value: not set
|||||||

Debugging - Presentation Server
APPX_NET_LOG
 

If you are experiencing problems getting "appx -c" or the Java client to connect to your appxd or WinAppxD, set this variable and APPX_NET_LOG_MASK on both your server and client systems, to generate debug logs. It's most useful to do this on the server, since most of the time, Presentation Client/Server startup issues are in the area of user authentication or security, particularly on NT... but it won't hurt anything to do it on the client, too.

In particular, on NT, look for a line of the form: "LogonUser() failed with {number}". If you see this line, please let APPX Technical Support know which error number you are receiving.

Valid values: Appropriate path to a log file on your system
Default value: not set

APPX_NET_LOG_MASK
 

Debug level for APPX_NET_LOG. If you set APPX_NET_LOG, you will almost always want to set this to 0xFFFFFFFF.

Valid values: hex numbers between 0x00000000 and 0xFFFFFFFF
Default value: 0x00000000

Debugging - Relational database access
APPX_SQL_CMD
 

If you are having trouble accessing relational database data (Oracle, Sybase, etc.) or ODBC data (SQL Server, Access), set this variable and its corresponding debug level variable, APPX_DBG_CODE. APPX_SQL_CMD should point to a writable log file location into which APPX can log debug information.

Valid values: Appropriate path to a log file on your system
Default value: not set

APPX_DBG_CODE
 

Debug level for APPX_SQL_CMD. If you set APPX_SQL_CMD, you will almost always want to set this to 0xFFFFFFFF.

Valid values: hex numbers between 0x00000000 and 0xFFFFFFFF
Default value: 0x00000000

Debugging - Restructure
APPX_TRAP_RESTRUCT
 

If you are experiencing problems while doing a restructure, setting this variable to 1 will insert TRAP statements in Restructure event points, for debugging purposes.

Valid values: 1
Default value: not set

APPX_VFY_RESTRUCT
 

Forces a restructure to occur when requested, even if APPX thinks that a restructure is not required for a particular file. Do not set this variable unless instructed to do so by APPX Software. (If you set it, you will no longer get the "Restructure not required" message. Any file you request to be restructured, will be. This will potentially waste lots of time, recreating files that are already in sync with their DD definition.)

Valid values: 1
Default value: not set

Debugging - Security HASP
APPX_SS_LOG
 

File name to which security HASP initialization and verification debug information should be logged. If APPX is telling you it can't find your HASP, or if you are receiving an invalid serial number message when trying to run APPX on a system using a HASP, use this log to gather more information as to why it is failing. Among other things, it provides a record of what HASP serial number APPX is seeing on your system. If you set this, also set APPX_SS_CODE=0xFFFFFFFF to tell APPX to log maximum debug info.

Valid values: Appropriate path to a log file on your system
Default value: not set

APPX_SS_CODE
 

Debug level for APPX_SS_LOG. If you set APPX_SS_LOG, you will almost always want to set this to 0xFFFFFFFF.

Valid values: hex numbers between 0x00000000 and 0xFFFFFFFF
Default value: 0x00000000

Debugging - Translation
APPX_XLATE_LOG
 

If you are experiencing problems with language translation, this variable will direct translation debug logging information to the specified file.

Valid values: Appropriate path to a log file on your system
Default value: not set

Debugging - UNIX
APPX_SIGNAL_LOG
 

Location to which all nasty signals (like bus errors and segmentation faults) should be logged. If you are experiencing problems with WINPRINT, this variable will direct WINPRINT debug logging information to the specified file, in versions of winprint.exe dated 12/95 or later.

Valid values: Appropriate path to a log file on your system
Default value: not set

APPX_SYS_ERR_LOG
 

Location to which all system errors should be logged.

Valid values: Appropriate path to a log file on your system
Default value: not set

Debugging - Vision
VISION_VLOG
 

Activates Vision debug logging, into the fixed filename "v.log".

Valid values: 1
Default value: not set

Debugging - VMS RMS
APPX_RMS_STATS
 

Log file name into which APPX will log every RMS file open, close and I/O, and performance statistics.

Valid values: Appropriate path to a log file on your system
Default value: not set

Debugging - Windows
APPX_NO_STACK_DUMPS
 

On some systems, the stack dump logic can get a bit too eager and take up lots of CPU time. This will disable stack dumps on Windows systems (probably only in 4.1 and later). Do not set this variable unless instructed to do so by APPX Technical Support, as stack dumps (the appx.stk file) are normally quite useful in diagnosing APPX software issues.

Valid values: 1
Default value: not set

APPX_PRELOAD_MAX
 

If using APPX in the shared network disk configuration, with PC clients whose APPXPATH is set to a server's disk drive, you may need to set this variable to '1' (the digit 1, without quotes) to avoid a "panic - memory allocation error". When APPX pre-loads an Em, it first looks to see how big the Em is. Due to a bug in Microsoft Windows, when trying to do this across a network using Windows network file sharing, sometimes it returns an incorrect number. Since that number tends to be really large, APPX tries to allocate (for example) 3 or 4 gig of memory for that Em, causing the memory allocation error. Setting this variable to 1 will avoid pre-loading Em's, and thus avoid encountering this error.

Valid values: Integer (usually 1)
Default value: 0xFFFFFFFF (preload Em's of any size)

Debugging - Winprint
WINPRINT_DEBUG
 

If you are experiencing problems with Winprint, this variable will direct Winprint debug logging information to the specified file, in versions of winprint.exe dated 12/95 or later.

Valid values: Appropriate path to a log file on your system
Default value: not set


Comments:

Read what other users have said about this page or add your own comments.



Edit | Attach | Watch | Print version | History: r6 < r5 < r4 < r3 < r2 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r6 - 2016-05-04 - JoeOrtagus
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback