INFORMIX
Informix Guide to SQL: Reference
Chapter 3: Environment Variables
Home Contents Index Master Index New Book

Environment Variables

The following sections discuss the environment variables used by Informix products.

ARC_DEFAULT

When you use the ON-Archive archive and tape-management system for Universal Server, you can set the ARC_DEFAULT environment variable to indicate where a personal default qualifier file is located.

pathname

is the full pathname of the personal default qualifier file.

For example, to set the ARC_DEFAULT environment variable to specify the file /usr/jane/arcdefault.janeroe, enter the following command:

For more information on archiving, see the INFORMIX-Universal Server Archive and Backup Guide.

ARC_KEYPAD

If you use the ON-Archive archive and tape-management system for Universal Server, you can set your ARC_KEYPAD environment variable to point to a tctermcap file that is different from the default tctermcap file. The default is the $INFORMIXDIR/etc/tctermcap file, and it contains instructions on how to modify the tctermcap file.

The tctermcap file serves the following purposes for the ON-Archive menu interface:

  • It defines the terminal control attributes that allow ON-Archive to manipulate the screen and cursor.
  • It defines the mappings between commands and key presses.
  • It defines the characters used to draw menus and borders for an API.

    pathname

    is the pathname for a tctermcap file.

For example, to set the ARC_KEYPAD environment variable to specify the file /usr/jane/tctermcap.janeroe, enter the following command:

For more information on archiving, see the INFORMIX-Universal Server Archive and Backup Guide.

DBANSIWARN

Setting the DBANSIWARN environment variable indicates that you want to check for Informix extensions to ANSI-standard syntax. Unlike most environment variables, you do not need to set DBANSIWARN to a value; setting it to any value or to no value, as the following diagram shows, is sufficient.

Setting the DBANSIWARN environment variable for DB-Access is functionally equivalent to including the -ansi flag when invoking the utility from the command line. If you set DBANSIWARN before you run DB-Access, warnings are displayed on the screen within the SQL menu.

Set the DBANSIWARN environment variable before you compile an INFORMIX-ESQL/C program to check for Informix extensions to ANSI standard syntax. When Informix extensions to ANSI-standard syntax are encountered in your program at compile time, warning messages are written to the screen.

At run time, the DBANSIWARN environment variable causes the SQL Communication Area (SQLCA) variable sqlca.sqlwarn.sqlwarn5 to be set to W when a statement that is not ANSI-compliant is executed. (For more information on SQLCA, see the INFORMIX-ESQL/C Programmer's Manual.)

Once you set DBANSIWARN, Informix extension checking is automatic until you log out or unset DBANSIWARN. To turn off Informix extension checking, unset the DBANSIWARN environment variable by entering the following command:

DBBLOBBUF

The DBBLOBBUF environment variable controls whether a simple large object, namely TEXT or BYTE, is stored temporarily in memory or in a file while being unloaded with the UNLOAD statement. The term, DBBLOBBUF, is used for historical reasons, even though it represents the size of simple large objects, and not of BLOBs, which are smart large objects.

n

represents the maximum size of a simple large object in kilobytes.

If the simple large object is smaller than the default of 10 coagulates or the setting of the DBBLOBBUF environment variable, it is temporarily stored in memory. If the simple large object is larger than the default or the setting of the environment variable, it is written to a temporary file. This environment variable applies to the UNLOAD command only.

For instance, to set a buffer size of 15 kilobytes, set the DBBLOBBUF environment variable as the following example shows:

In the example, any blobs smaller than 15 kilobytes are stored temporarily in memory. Blobs larger than 15 kilobytes are stored temporarily in a file.

DBCENTURY

The environment variable DBCENTURY allows you to choose the appropriate expansion for two-digit year DATE and DATETIME values.

Previously, if only the decade was provided for a literal DATE or DATETIME value in a table column, the present century was used to expand the year. For example, 12/31/96 would have been expanded to 12/31/1996. With this release, three new algorithms are added to complete the century value of a year: past (P), future (F), and closest (C).

Algorithm Explanation

P = Past

The past and present centuries are used to expand the year value. These two dates are compared against the current date, and the date that is prior to the current date is chosen. If both dates are prior to the current date, the date that is closest to the current date is chosen.

F = Future

The present and the next centuries are used to expand the year value. These two dates are compared against the current date, and the date that is after the current date is chosen. If both the expansions are after the current date, the date that is closest to the current date is chosen.

C = Closest

The past, present, and next centuries are used to expand the year value, and the date that is closest to the current date is used.

R = Present

The present century is used to expand the year value.

When the DBCENTURY environment variable is not set, the current century is used as the system default.

You can override the default by specifying all four digits.

The following examples illustrate how the DBCENTURY environment variable expands DATE and DATETIME year formats.

Behavior of DBCENTURY = P

Behavior of DBCENTURY = F

Behavior of DBCENTURY = C

Behavior of DBCENTURY = R

DBDATE

The DBDATE environment variable specifies the end-user formats of DATE values. End-user formats affect the following situations:

  • When you input DATE values, Informix products use the DBDATE environment variable to interpret the input. For example, if you specify a literal DATE value in an INSERT statement, Informix database servers expect this literal value to be compatible with the format specified by DBDATE. Similarly, the database server interprets the date you are specifying as input to the DATE( ) function in the format specified by the DBDATE environment variable.
  • When you display DATE values, Informix products use the DBDATE environment variable to format the output.

GLS
This section describes standard DBDATE formats. For a description of era-based formats, see the Guide to GLS Functionality.

With standard formats, you can specify the following attributes:

  • The order of the month, day, and year in a date
  • Whether the year should be printed with two digits (Y2) or four digits (Y4)
  • The separator between the month, day, and year

- . /

are characters that can be used as separators in a date format.

0

indicates that no separator is displayed.

D, M

are characters representing the day and the month.

Y2, Y4

are characters that represent the year and the number of digits in the year.

For the U.S. ASCII English locale, the default setting for DBDATE is MDY4/, where M represents the month, D represents the day, Y4 represents a four-digit year, and slash (/) is a separator (for example, 10/08/1994).

Other acceptable characters for the separator are a hyphen (-), a period (.), or a zero (0). Use the zero to indicate no separator.

The slash (/) appears if you attempt to use a character other than a hyphen, period, or zero as a separator, or if you do not include a separator character in the DBDATE definition.

The following table shows a few variations of setting the DBDATE environment variable.

Variation October 8, 1994 appears as:

MDY4/

10/08/1994

DMY2-

08-10-94

MDY4

10/08/1994

Y2DM.

94.08.10

MDY20

100894

Y4MD*

1994/10/08

Notice that the formats Y4MD* (the asterisk is an unacceptable separator) and MDY4 (no separator is defined) both display the default (slash) as a separator.

Important: If you use the Y2 format, understand that the setting of the DBCENTURY environment variable affects how the DATE values are expanded.
Also, certain routines called by INFORMIX-ESQL/C can use the DBTIME variable, rather than DBDATE, to set DATETIME formats to international specifications. For more information, see the discussion of the DBTIME environment variable on page 3-38 and the "INFORMIX-ESQL/C Programmer's Manual." The setting of the DBDATE variable takes precedence over that of the GL_DATE environment variable, as well as over the default DATE formats as specified by CLIENT_LOCALE. For information about the GL_DATE and CLIENT_LOCALE environment variables, see the "Guide to GLS Functionality".

DBDELIMITER

The DBDELIMITER environment variable specifies the field delimiter used by the dbexport utility and with the LOAD and UNLOAD statements.

delimiter

is the field delimiter for unloaded data files.

The delimiter can be any single character, except the characters in the following list:

  • Hexadecimal numbers (0 through 9, a through f, A through F)
  • NEWLINE or CTRL-J
  • The backslash symbol (\)
The vertical bar (|= ASCII 124) is the default. To change the field delimiter to a plus (+), set the DBDELIMITER environment variable, as shown in the following example:

DBEDIT

The DBEDIT environment variable lets you name the text editor that you want to use to work with SQL statements and command files in DB-Access. If DBEDIT is set, the specified editor is called directly. If DBEDIT is not set, you are prompted to specify an editor as the default for the rest of the session.

editor

is the name of the text editor you want to use.

For most systems, the default editor is vi. If you use another editor, be sure that it creates flat ASCII files. Some word processors in document mode introduce printer control characters that can interfere with the operation of your Informix product.

To specify the EMACS text editor, set the DBEDIT environment variable by entering the following command:

DBFLTMASK

By default, Informix client applications (including DB-Access utility or any ESQL program) display the floating-point values of data types FLOAT, SMALLFLOAT, and DECIMAL with 16 digits to the right of the decimal point. However, the actual number of decimal digits displayed depends on the size of the character buffer.

To override the default number of decimal digits in the display, you can set the DBFLTMASK environment variable to the number of digits desired.

n

is the number of decimal digits you want the Informix client application to display in the floating-point values.

DBLANG

The DBLANG environment variable specifies the subdirectory of $INFORMIXDIR or the full pathname of the directory that contains the compiled message files used by an Informix product.

relative_path

is the subdirectory of $INFORMIXDIR.

full_path

is the full pathname of the directory that contains the compiled message files.

By default, Informix products put compiled messages in a locale-specific subdirectory of the $INFORMIXDIR/msg directory. These compiled message files have the suffix .iem. If you want to use a message directory other than $INFORMIXDIR/msg, where, for example, you can store message files that you have created, perform the following steps.

To use a non-default message directory

    1. Use the mkdir command to create the appropriate directory for the message files. You can make this directory under the directory $INFORMIXDIR or $INFORMIXDIR/msg or you can make it under any other directory.

    2. Set the owner and group of the new directory to informix and the access permission for this directory to 755.

    3. Set the DBLANG environment variable to the new directory. If this directory is a subdirectory of $INFORMIXDIR or $INFORMIXDIR/msg, you only need to list the relative path to the new directory. Otherwise, you must specify the full pathname of the directory.

    4. Copy the .iem files or the message files that you created to the new message directory specified by $DBLANG. All the files in the message directory should have the owner and group informix and access permission 644.

Informix products that use the default U.S. ASCII English locale search for message files in the following order:

    1. In $DBLANG, if DBLANG is set to a full pathname

    2. In $INFORMIXDIR/msg/$DBLANG, if DBLANG is set to a relative pathname

    3. In $INFORMIXDIR/$DBLANG, if DBLANG is set to a relative pathname

    4. In $INFORMIXDIR/msg/en_us/0333

    5. In $INFORMIXDIR/msg/en_us.8859-1

    6. In $INFORMIXDIR/msg

    7. In $INFORMIXDIR/msg/english

GLS
For more information on access paths for messages, see the description of DBLANG in the Guide to GLS Functionality.

DBMONEY

The DBMONEY environment variable specifies the display format of monetary values using FLOAT, DECIMAL, or MONEY data types.

$

is the default symbol that precedes the MONEY value.

,

is an optional symbol (comma) that separates the integral from the fractional part of the MONEY value.

.

is the default symbol that separates the integral from the fractional part of the MONEY value.

back

represents the optional symbol that follows the MONEY value. The back symbol can be up to seven characters and can contain any character except an integer, a comma, or a period. If back contains a dollar sign ($), you must enclose the whole string in single quotes (').

front

is the optional symbol that precedes the MONEY value. The front symbol can be up to seven characters and can contain any character except an integer, a comma, or a period. If front contains a dollar sign ($), you must enclose the whole string in single quotes (').

If you use any character except an alphabetic character for front or back, you must enclose the character in quotes.

When you display MONEY values, Informix products use the DBMONEY environment variable to format the output.

Tip: The setting of DBMONEY does not affect the internal format of the MONEY column in the database.
If you do not set DBMONEY, then MONEY values for the default locale, U.S. ASCII English, are formatted with a dollar sign ($) preceding the MONEY value, a period (.) separating the integral from the fractional part of the MONEY value, and no back symbol. For example, 10050 is formatted as $100.50.

Suppose you want to represent MONEY values in DM (Deutsche Mark), which uses the currency symbol DM and a comma. Set the DBMONEY environment variable by entering the following command:

Here, DM is the currency symbol preceding the MONEY value, and a comma separates the integral from the fractional part of the MONEY value. As a result, the amount 10050 is displayed as DM100,50.

GLS
For more information about how the DBMONEY environment variable handles MONEY formats for nondefault locales, see the Guide to GLS Functionality.

DBONPLOAD

The DBONPLOAD environment variable specifies the name of the database that the onpload utility of the High-Performance Loader uses. If the DBONPLOAD environment variable is set, the specified name is the name of the database. If the DBONPLOAD environment variable is not set, the default name of the database is onpload

.

dbname

specifies the name of the database to be used by the onpload utility.

For example, to specify load_db as the name of the database, enter the following command:

DBPATH

Use DBPATH to identify the database servers that contain databases (if you are using Universal Server). The DBPATH environment variable also specifies a list of directories (in addition to the current directory) in which DB-Access looks for command scripts (.sql files).

The CONNECT, DATABASE, START DATABASE, and DROP DATABASE statements use DBPATH to locate the database under two conditions:

  • If the location of a database is not explicitly stated
  • If the database cannot be located in the default server or
    the default directory
The CREATE DATABASE statement does not use DBPATH.

To add a new DBPATH entry to existing entries, see "Modifying the Setting of an Environment Variable".

full_pathname

is a valid full pathname of a directory in which .sql files are stored.

servername

is the name of a Universal Server on which databases are stored. You cannot reference database files with a servername.

DBPATH can contain up to 16 entries. Each entry (full_pathname, servername, or servername and full_pathname) must be less than 128 characters. In addition, the maximum length of DBPATH depends on the hardware platform on which you are setting DBPATH.

When you access a database using the CONNECT, DATABASE, START DATABASE, or DROP DATABASE statement, the search for the database is done first in the directory and/or database server specified in the statement. If no database server is specified, the default database server as set in the INFORMIXSERVER environment variable is used. (The default directory is the current working directory if the database server is on the local computer or your login directory if the database server is on a remote computer.) If a directory is specified but is not a full path, the directory is considered to be relative to the default directory.

If the database is not located during the initial search, and if DBPATH is set, the database servers and/or directories in DBPATH are searched for the indicated database. The entries to DBPATH are considered in order.

Using DBPATH with DB-Access

If you are using DB-Access and you use the Choose option of the SQL menu without having already selected a database, you see a list of all the .sql files in the directories listed in your DBPATH. Once you select a database, the DBPATH is not used to find the .sql files. For Universal Server databases, only the .sql files in the current working directory are displayed.

Searching Local Directories

Use a pathname without a database server name to have the database server search for databases or .sql scripts on your local computer.

In the following example, the DBPATH setting causes DB-Access to search for the database files in your current directory and then in the Joachim and Sonja directories on the local computer:

As shown in the previous example, if the pathname specifies a directory name but not a database server name, the directory is sought on the computer running the default database server as specified by the INFORMIXSERVER environment variable (see page 3-49.). For instance, with the previous example, if INFORMIXSERVER is set to quality, the DBPATH value is interpreted as shown in the following example, where the double slash precedes the database server name:

Searching Networked Computers for Databases

If you are using more than one database server, you can set DBPATH to explicitly contain the database server and/or directory names that you want to search for databases. For example, if INFORMIXSERVER is set to quality but you also want to search the marketing database server for /usr/joachim, set DBPATH as shown in the following example:

Specifying a Servername

You can set DBPATH to contain only database server names. This setting allows you to locate only databases and not locate command files.

The Universal Server or SE administrator must include each database server mentioned by DBPATH in the $INFORMIXDIR/etc/sqlhosts file. For information on communication-configuration files and dbservernames, see the INFORMIX-Universal Server Administrator's Guide.

For example, if INFORMIXSERVER is set to quality, you can search for a Universal Server database first on the quality database server and then on the marketing database server by setting DBPATH shown in the following example:

If you are using DB-Access in this example, the names of all the databases on the quality and marketing database servers are displayed with the Select option of the DATABASE menu.

DBPRINT

The DBPRINT environment variable specifies the printing program that you want to use.

program

names any command, shell script, or UNIX utility that handles standard ASCII input.

The default program is found in one of two places:

  • For most BSD UNIX systems, the default program is lpr.
  • For UNIX System V, the default program is usually lp.
Set the DBPRINT environment variable to specify the myprint print program by entering the following command:

DBREMOTECMD

You can set the DBREMOTECMD environment variable to override the default remote shell used when you perform remote tape operations with the INFORMIX-Universal Server. Set it using either a simple command or the full pathname. If you use the full pathname, the database server searches your PATH for the specified command.

command

is the command to override the default remote shell.

pathname

is the pathname to override the default remote shell.

Informix recommends the use of the full pathname syntax on the interactive UNIX platform to avoid problems with similarly named programs in other directories and possible confusion with the restricted shell (/usr/bin/rsh).

Set the DBREMOTECMD environment variable for a simple command name by entering the following command:

Set the DBREMOTECMD environment variable to specify the full pathname by entering the following command:

For more information on DBREMOTECMD, see the discussion in the INFORMIX-Universal Server Archive and Backup Guide about using remote tape devices with Universal Server for archives, restores, and logical-log backups.

DBSPACETEMP

If you are using Universal Server, you can set your DBSPACETEMP environment variable to specify the dbspaces in which temporary tables are to be built. You can specify multiple dbspaces to spread temporary space across any number of disks.

punct

can be either colons or commas.

temp_dbspace

is a valid existing temporary dbspace.

The DBSPACETEMP environment variable overrides the default dbspaces specified by the DBSPACETEMP configuration parameter in the Universal Server configuration file.

For example, you might set the DBSPACETEMP environment variable by entering the following command:

Separate the dbspace entries with either colons or commas. The number of dbspaces is limited by the maximum size of the environment variable, as defined by the UNIX shell. Universal Server does not create a dbspace specified by the environment variable if the dbspace does not exist.

The two classes of temporary tables are: explicit temporary tables that are created by the user and implicit temporary tables that are created by Universal Server. You use the DBSPACETEMP environment variable to specify the dbspaces for both types of temporary tables.

If you create an explicit temporary table with the CREATE TEMP TABLE statement and do not specify a dbspace for the table either in the IN dbspace clause or in the FRAGMENT BY clause, Universal Server uses the settings in the DBSPACETEMP environment variable to determine where to create the table. If the DBSPACETEMP environment variable is not set, Universal Server uses the ONCONFIG parameter DBSPACETEMP. If this parameter is not set, Universal Server creates the temporary table in the same dbspace where the database resides.

If you create an explicit temporary table with the SELECT INTO TEMP statement, Universal Server uses the settings in the DBSPACETEMP environment variable to determine where to create the table. If the DBSPACETEMP environment variable is not set, Universal Server uses the ONCONFIG parameter DBSPACETEMP. If this parameter is not set, Universal Server creates the temporary table in the root dbspace.

Universal Server creates implicit temporary tables for its own use while executing join operations, SELECT statements with the GROUP BY clause, SELECT statements with the ORDER BY clause, and index builds. When it creates these implicit temporary tables, Universal Server uses disk space for writing the temporary data, in the following order:

    1. The operating system directory or directories specified by the environment variable PSORT_DBTEMP, if it is set

    2. The dbspace or dbspaces specified by the environment variable DBSPACETEMP, if it is set

    3. The dbspace or dbspaces specified by the ONCONFIG parameter DBSPACETEMP

    4. The operating-system file space in /tmp

DBTEMP

Set the DBTEMP environment variable to specify the full pathname of the directory into which you want INFORMIX-SE or INFORMIX-Gateway products to place their temporary files and temporary tables.

pathname

is the full pathname of the directory for temporary files and temporary tables.

Set the DBTEMP environment variable to specify the pathname usr/magda/mytemp by entering the following command:

If you do not set DBTEMP, temporary files are created in /tmp. If DBTEMP is not set, temporary tables are created in the directory of the database (that is, the .dbs directory).

Universal Server uses DBSPACETEMP to specify the location of temporary files.

DBTIME

The DBTIME environment variable specifies the end-user formats of DATETIME values for a set of SQL API library functions.

You can set the DBTIME environment variable to manipulate DATETIME formats so that the formats conform more closely to various international or local TIME conventions. DBTIME takes effect only when you call certain INFORMIX-ESQL/C DATETIME routines; otherwise, use the DBDATE environment variable. (For more information, see the INFORMIX-ESQL/C Programmer's Manual.)

You can set DBTIME to specify the exact format of an input/output (I/O) DATETIME string field by using the formatting directives described in the following list. Otherwise, the behavior of the DATETIME formatting routine is undefined.

(1 of 2)

string

The formatting directives that you can use are described in the following list:

%b

is replaced by the abbreviated month name.

%B

is replaced by the full month name.

%d

is replaced by the day of the month as a decimal number [01,31].

%Fn

is replaced by the value of the fraction with precision specified by the integer n. The default value of n is 2; the range of n is 0 £ n £ 5.

%H

is replaced by the hour (24-hour clock).

%I

is replaced by the hour (12-hour clock).

%M

is replaced by the minute as a decimal number [00,59].

%m

is replaced by the month as a decimal number [01,12].

%p

is replaced by A.M. or P.M. (or the equivalent in the local standards).

%S

is replaced by the second as a decimal number [00,59].

%y

is replaced by the year as a four-digit decimal number.
If the user enters a two-digit value, the format of this value is affected by the setting of the DBCENTURY environment variable. If DBCENTURY is not set, then the current century is used for the century digits.

%Y

is replaced by the year as a four-digit decimal number. User must enter a four-digit value.

%%

is replaced by % (to allow % in the format string).

For example, consider how to convert a DATETIME YEAR TO SECOND to the following ASCII string format:

You set DBTIME as shown in the following list:

The default DBTIME produces the conventional ANSI SQL string format shown in the following line:

The default DBTIME is set as shown in the following example:

An optional field width and precision specification can immediately follow the percent (%) character; it is interpreted as described in the following list:

[-|0]w

where w is a decimal digit string specifying the minimum field width. By default, the value is right justified with spaces on the left.

If - is specified, it is left justified with spaces on the right.

If 0 is specified, it is right justified and padded with zeros on the left.

.p

where p is a decimal digit string specifying the number of digits to appear for d, H, I, m, M, S, y, and Y conversions, and the maximum number of characters to be used for b and B conversions. A precision specification is significant only when converting a DATETIME value to an ASCII string and not vice versa.

When you use field width and precision specifications, the following limitations apply:

  • If a conversion specification supplies fewer digits than specified by a precision, it is padded with leading zeros.
  • If a conversion specification supplies more characters than specified by a precision, excess characters are truncated on the right.
  • If no field width or precision is specified for d, H, I, m, M, S, or y conversions, a default of 0.2 is used. A default of 0.4 is used for Y conversions.
The F conversion does not follow the field width and precision format conversions that are described earlier.

See the discussion of DBDATE on page 3-23 for related information.

DBUPSPACE

The DBUPSPACE environment variable lets you specify and constrain the amount of system disk space that the UPDATE STATISTICS statement can use when trying to simultaneously construct multiple-column distributions.

value

represents a disk-space amount in kilobytes.

For example, to set DBUPSPACE to 2,500 kilobytes, enter the following command:

Then no more than 2,500 kilobytes of disk space can be used during the execution of an UPDATE STATISTICS statement. If a table requires 5 megabytes of disk space for sorting, then UPDATE STATISTICS accomplishes the task in two passes; the distributions for one half of the columns are constructed with each pass.

If you try to set DBUPSPACE to any value less than 1,024 kilobytes, it is automatically set to 1,024 kilobytes, but no error message is returned. If this value is not large enough to allow more than one distribution to be constructed at a time, at least one distribution is done, even if the amount of disk space required for the one is greater than that specified in DBUPSPACE.

DELIMIDENT

The DELIMIDENT environment variable specifies that strings set off by double quotes are delimited identifiers.

You can use delimited identifiers to specify identifiers that are identical to reserved keywords, such as TABLE or USAGE. You can also use them to specify database identifiers that contain nonalphabetical characters, but you cannot use them to specify storage identifiers that contain nonalphabetical characters. Note that database identifiers are names for database objects such as tables and columns, and storage identifiers are names for storage objects such as dbspaces and blobspaces.

Delimited identifiers are case sensitive. To use delimited identifiers, applications in ESQL/C must set the DELIMIDENT environment variable at compile time and execute time.

ENVIGNORE

Use the ENVIGNORE environment variable to deactivate specified environment-variable entries in the common (shared) and private environment-configuration files, informix.rc and .informix respectively.

variable

is the list of environment variables that you want to deactivate.

For example, to ignore the DBPATH and DBMONEY entries in the environment-configuration files, enter the following command:

The common environment-configuration file is stored in $INFORMIXDIR/etc/informix.rc. The private environment-configuration file is stored in the home directory of the user as .informix. For information on how to create or modify an environment-configuration file, see "Setting Environment Variables in an Environment-Configuration File".

ENVIGNORE cannot be set in an environment-configuration file.

FET_BUF_SIZE

The FET_BUF_SIZE environment variable lets you override the default setting for the size of the fetch buffer for all data except blobs. When set, FET_BUF_SIZE is effective for the entire environment.

n

represents the size of the buffer in bytes.

When set to a valid value, the environment variable overrides the previously set value. The default setting for the fetch buffer is dependent on row size.

If the buffer size is set to less than the default size or is out of the range of the small integer value, no error is raised. The new buffer size is ignored.

For example, to set a buffer size to 5,000 bytes, set the FET_BUF_SIZE environment variable by entering the following command:

INFORMIXC

The INFORMIXC environment variable specifies the name or pathname of the C compiler to be used to compile files generated by INFORMIX-ESQL/C. If INFORMIXC is not set, the default compiler is cc.

compiler

is the name of the C compiler.

pathname

is the full pathname of the C compiler.

For example, to specify the GNU C compiler, enter the following command:

The setting is required only during the C compilation stage.

INFORMIXCONCSMCFG

The INFORMIXCONCSMCFG environment variable specifies the location of the concsm.cfg file, which describes communications support modules

pathname

specifies the full pathname of the concsm.cfg file.

For example, the following command specifies that the concsm.cfg file is in /usr/myfiles.

You can also specify a different name for the file. The following command specifies a filename of csmconfig.

The default location of the concsm.cfg file is $INFORMIXDIR/etc file. For more information about communications support modules and the content of the concsm.cfg file, refer to the INFORMIX-Universal Server Administrator's Guide.

INFORMIXCONRETRY

The INFORMIXCONRETRY environment variable specifies the maximum number of additional connection attempts that should be made to each server by the client during the time limit specified by the INFORMIXCONTIME environment variable.

value

represents the number of connection attempts to each server.

For example, set INFORMIXCONRETRY to three additional connection attempts (after the initial attempt) by entering the following command:

The default value for INFORMIXCONRETRY is one retry after the initial connection attempt. The INFORMIXCONTIME setting, described in the following section, takes precedence over the INFORMIXCONRETRY setting.

INFORMIXCONTIME

The INFORMIXCONTIME environment variable lets you specify that an SQL CONNECT statement should keep trying for at least the given number of seconds before returning an error.

You might encounter connection difficulties related to system or network load problems. For instance, if the database server is busy establishing new SQL client threads, some clients might fail because the server cannot issue a network function call fast enough. The INFORMIXCONTIME and INFORMIXCONRETRY environment variables let you configure your client-side connection capability to retry the connection instead of returning an error.

value

represents the minimum number of seconds spent in attempts to establish a connection to a server.

For example, set INFORMIXCONTIME to 60 seconds by entering the following command:

If INFORMIXCONTIME is set to 60 and INFORMIXCONRETRY is set to 3, as shown in these examples, attempts to connect to the server (after the initial attempt at 0 seconds) will be made at 20, 40, and 60 seconds, if necessary, before aborting. This 20-second interval is the result of INFORMIXCONTIME divided by INFORMIXCONRETRY.

If execution of the CONNECT statement involves searching DBPATH, the following rules apply:

  • All appropriate servers in the DBPATH setting are accessed at least once, even though the INFORMIXCONTIME value might be exceeded. Thus, the CONNECT statement might take longer than the INFORMIXCONTIME time limit to return an error indicating connection failure or that the database was not found.
  • The INFORMIXCONRETRY value specifies the number of additional connections that should be attempted for each server entry in DBPATH.
  • The INFORMIXCONTIME value is divided among the number of server entries specified in DBPATH. Thus, if DBPATH contains numerous servers, you should increase the INFORMIXCONTIME value accordingly. For example, if DBPATH contains three entries, to spend at least 30 seconds attempting each connection, set INFORMIXCONTIME to 90.
The default value for INFORMIXCONTIME is 15 seconds. The setting for INFORMIXCONTIME takes precedence over the INFORMIXCONRETRY setting. Retry efforts could end after the INFORMIXCONTIME value has been exceeded, but before the INFORMIXCONRETRY value has been reached.

INFORMIXDIR

The INFORMIXDIR environment variable specifies the directory that contains the subdirectories in which your product files are installed. You must always set INFORMIXDIR. If you have multiple versions of Universal Server, set INFORMIXDIR to the appropriate directory name for the version that you want to access. For information about when to set the INFORMIXDIR environment variable, see the INFORMIX-Universal Server Installation Guide.

pathname

is the directory path where the product files are installed.

Set the INFORMIXDIR environment variable to the desired installation directory by entering the following command:

INFORMIXKEYTAB

The INFORMIXKEYTAB environment variable specifies the location of the keytab file that is used by the optional DCE-GSS communications support module.

pathname

specifies the full path and filename of the keytab file.

For example, the following command specifies that the name and location of the keytab file is /usr/myfiles/mykeytab.

For more information about the DCE-GSS communications support module, refer to the INFORMIX-Universal Server Administrator's Guide.

INFORMIXOPCACHE

The INFORMIXOPCACHE environment variable lets you specify the size of the memory cache for the staging-area blobspace of the client application.

kilobytes

specifies the value you set for the optical memory cache.

You set the INFORMIXOPCACHE environment variable by specifying the size of the memory cache in kilobytes. The specified size must be equal to or smaller than the size of the system-wide configuration parameter, OPCACHEMAX. If you do not set the INFORMIXOPCACHE environment variable, the default cache size is 128 kilobytes or the size specified in the configuration parameter OPCACHEMAX. The default for OPCACHEMAX is 128 kilobytes. If you set INFORMIXOPCACHE to a value of 0, INFORMIX-OnLine/Optical does not use the cache.

INFORMIXSERVER

The INFORMIXSERVER environment variable specifies the default database server to which an explicit or implicit connection is made by an SQL API client or the DB-Access utility. The database server can be a INFORMIX-Universal Server and can be either local or remote. You must always set INFORMIXSERVER before using an Informix product.

dbservername

is the name of the default database server.

The value of INFORMIXSERVER must correspond to a valid dbservername entry in the $INFORMIXDIR/etc/sqlhosts file on the computer running the application. The dbservername must be specified using lowercase characters and cannot exceed 18 characters for Universal Server. For example, specify the coral database server as the default for connection by entering the following command:

INFORMIXSERVER specifies the database server to which an application connects if the CONNECT DEFAULT statement is executed. It also defines the database server to which an initial implicit connection is established if the first statement in an application is not a CONNECT statement.

Important: INFORMIXSERVER must be set even if the application or DB-Access does not use implicit or explicit default connections.

INFORMIXSHMBASE

The INFORMIXSHMBASE environment variable affects only client applications connected to Universal Server using the IPC shared-memory (ipcshm) communication protocol.

Important: Resetting INFORMIXSHMBASE requires a thorough understanding of how the application uses memory. Normally you do not reset INFORMIXSHMBASE.

You use INFORMIXSHMBASE to specify where shared-memory communication segments are attached to the client process so that client applications can avoid collisions with other memory segments used by the application. If you do not set INFORMIXSHMBASE, the memory address of the communication segments defaults to an implementation-specific value such as 0x800000.

value

is used to calculate the memory address.

Universal Server calculates the memory address where segments are attached by multiplying the value of INFORMIXSHMBASE by 1,024. For example, to set the memory address to the value 0x800000, set the INFORMIXSHMBASE environment variable by entering the following command:

For more information, see the INFORMIX-Universal Server Administrator's Guide.

INFORMIXSQLHOSTS

The INFORMIXSQLHOSTS environment variable specifies the full pathname and filename of a file that contains connectivity information.

The file specified in the INFORMIXSQLHOSTS environment variable has the same format as the $INFORMIXDIR/etc/sqlhosts file. For a description of the $INFORMIXDIR/etc/sqlhosts file, see the INFORMIX-Universal Server Administrator's Guide.

pathname

specifies the full pathname and filename of the file that contains connectivity information.

For example, to specify that the client or database server will look for connectivity information in the mysqlhosts file in the /work/envt directory, enter the following command:

When the INFORMIXSQLHOSTS environment variable is set, the client or database server looks in the specified file for connectivity information. When the INFORMIXSQLHOSTS environment variable is not set, the client or database server looks in the $INFORMIXDIR/etc/sqlhosts file.

INFORMIXSTACKSIZE

INFORMIXSTACKSIZE specifies the stack size (in kilobytes) that Universal Server uses for a particular client session. Use INFORMIXSTACKSIZE to override the value of the ONCONFIG parameter STACKSIZE for a particular application or user.

value

is the stack size for SQL client threads in kilobytes.

For example, to decrease the INFORMIXSTACKSIZE to 20 kilobytes, enter the following command:

If INFORMIXSTACKSIZE is not set, the stack size is taken from the Universal Server configuration parameter STACKSIZE, or it defaults to a platform-specific value. The default stack-size value for the primary thread for an SQL client is 32 kilobytes for nonrecursive database activity.

Warning: For specific instructions for setting this value, see the "INFORMIX-Universal Server Administrator's Guide." If you incorrectly set the value of INFORMIXSTACKSIZE, it can cause Universal Server to crash.

INFORMIXTERM

The INFORMIXTERM environment variable specifies whether DB-Access should use the information in the termcap file or the terminfo directory. The termcap file and terminfo directory determine terminal-dependent keyboard and screen capabilities such as the operation of function keys, color and intensity attributes in screen displays, and the definition of window border and graphics characters.

If INFORMIXTERM is not set, the default setting is termcap. When DB-Access is installed on your system, a termcap file is placed in the etc subdirectory of $INFORMIXDIR. This file is a superset of an operating-system termcap file.

You can use the termcap file supplied by Informix, the system termcap file, or a termcap file that you create. You must set the TERMCAP environment variable if you do not use the default termcap file. For information on setting the TERMCAP environment variable, see page 3-63.

The terminfo directory contains a file for each terminal name that has been defined. The terminfo setting for INFORMIXTERM is supported only on computers that provide full support for the UNIX System V terminfo library. For details, see the Version 9.1 machine notes file for your product.

INF_ROLE_SEP

The INF_ROLE_SEP environment variable configures the security feature of role separation when Universal Server is installed. Role separation enforces separating administrative tasks that are performed by different people who are involved in running and auditing Universal Server.

If INF_ROLE_SEP is set, role separation is implemented and a separate group is specified to serve each of the following responsibilities: the database system security officer (DBSSO), the audit analysis officer (AAO), and the standard user. If INF_ROLE_SEP is not set, user informix (the default) can perform all administrative tasks.

n

is any positive integer.

See the INFORMIX-Universal Server Trusted Facility Manual to learn more about the security feature of role separation. See the INFORMIX-Universal Server Installation Guide to learn how to configure role separation when you install Universal Server.

IFX_AUTOFREE

If IFX_AUTOFREE is enabled, then memory allocated to every cursor in every thread will be automatically freed immediately upon the close of the cursor. In closing the cursor, users do not need to explicitly free server memory allocated to the cursor. This saves a network round-trip as no messages are sent to the server to free cursor memory.

When the cursor is automatically freed, its associated PREPARE statement is also freed and cannot be used to declare any new cursor thereafter.

1

IFX_AUTOFREE is enabled.

0

IFX_AUTOFREE is disabled.

If the environment variable is not set to any value, the feature is not enabled.

The SET AUTOFREE SQL syntax has the same functionality as the IFX_AUTOFREE environment variable. The IFX_AUTOFREE environment variable should be set before an application starts. The SET AUTOFREE syntax can be specified for a single cursor and overrides the setting of the environment variable for that cursor.

Important: The environment variable needs to be set before the application starts for the setting to take effect.

The SQL statement SET DEFERRED_PREPARE has the same functionality as the on (1) setting of this environment variable. The SQL statement overrides the setting of this environment variable.

Tip: If PREPARE/EXECUTE statements are used or if a DESCRIBE statement is executed before the first OPEN statement in the ESQL/C code when deferred prepare functionality is turned on, error is returned.

IFX_DEFERRED_PREPARE

The IFX_DEFERRED_PREPARE environment variable is set on the client side. It works primarily with dynamic ESQL/C cursors in applications which do a series of PREPARE/DECLARE/OPEN blocks of statements with no DESCRIBE statement following them. The setting on this environment variable optimizes the PREPARE statement.

If the IFX_DEFERRED_PREPARE variable is set to 1, the PREPARE statement in an ESQL/C code is not executed until the cursor has been declared on it and opened, thus optimizing the number of round-trip messages to the server. Setting of the variable to 1 enables every PREPARE statement in every thread in the application to be optimized.

Setting the value of the IFX_DEFERRED_PREPARE environment variable to 0 disables the optimization feature. If IFX_DEFERRED_PREPARE is not set, the optimization feature is not turned on.

Important: The environment variable needs to be set before the application starts for the setting to take effect.

The SQL statement SET DEFERRED_PREPARE has the same functionality as the `on' (1) setting of this environment variable. The SQL statement overrides the setting of this environment variable.

Tip: If PREPARE/EXECUTE statements are used or if a DESCRIBE statement is executed before the first OPEN statement in the ESQL/C code when deferred prepare functionality is turned on, an error is returned.

NODEFDAC

When the NODEFDAC environment variable is set to yes, it prevents default table privileges (Select, Insert, Update, and Delete) and routine privileges from being granted to PUBLIC when a new table or routine is created in a database that is not ANSI compliant. If you do not set the NODEFDAC variable, it is, by default, set to no.

yes

prevents default table and routine privileges from being granted to PUBLIC on new tables in a database that is not ANSI compliant. This setting also prevents the Execute privilege for a new stored procedure from being granted to PUBLIC when the stored procedure is created in owner mode.

no

allows default table privileges to be granted to PUBLIC. Also allows the Execute privilege on a new stored procedure to be granted to PUBLIC when the stored procedure is created in owner mode.

ONCONFIG

The ONCONFIG environment variable specifies a file that holds configuration parameters for Universal Server. This file is read as input during the initialization procedure.

filename

is the name of a file in $INFORMIXDIR/etc that contains Universal Server configuration parameters.

Prepare the ONCONFIG file by making a copy of the onconfig.std file and modifying the copy. Informix recommends that you name the ONCONFIG file so it can easily be related to a specific Universal Server database server. If you have multiple instances of Universal Server, each instance must have its own uniquely named ONCONFIG file.

If you do not set the ONCONFIG environment variable, the default filename is onconfig.

For more information, see the INFORMIX-Universal Server Administrator's Guide.

OPTCOMPIND

You can set the OPTCOMPIND environment variable so that the optimizer can select the appropriate join method. The OPTCOMPIND environment variable applies only to Universal Server.

0

A nested-loop join is preferred, where possible, over a sort-merge join or a hash join.

1

When the transaction isolation mode is not Repeatable Read, the optimizer behaves as in setting 2; otherwise, the optimizer behaves as in setting 0.

2

Nested-loop joins are not necessarily preferred. The optimizer bases its decision purely on costs, regardless of transaction isolation mode.

When the OPTCOMPIND environment variable is not set, Universal Server uses the value specified for the ONCONFIG configuration parameter OPTCOMPIND. When neither the environment variable nor the configuration parameter is set, the default value is 2.

For more information on the ONCONFIG configuration parameter OPTCOMPIND, see the INFORMIX-Universal Server Administrator's Guide. For more information on the different join methods used by the optimizer, see the INFORMIX-Universal Server Performance Guide.

PATH

The UNIX PATH environment variable tells the shell which directories to search for executable programs. You must add the directory that contains your Informix product to your PATH environment variable before you can use the product.

pathname

specifies the search path for the executables.

You can specify the correct search path in various ways. Be sure to include a colon between the directory names.

For additional information about how to modify your path, see "Modifying the Setting of an Environment Variable".

PDQPRIORITY

The PDQPRIORITY environment variable determines the degree of parallelism used by Universal Server. PDQPRIORITY affects how Universal Server allocates resources, including memory, processors, and disk reads.

HIGH

When Universal Server allocates resources among all users, it gives as many resources as possible to the query.

LOW

Data is fetched from fragmented tables in parallel, but no other parallelism is used.

OFF

PDQ processing is turned off.

percent-of-resources

An integer between 0 and 100 that indicates a query priority level. The higher the number, the more resources Universal Server uses.

Two values have special meaning:

0 is equivalent to the symbolic value of OFF.

1 is equivalent to the symbolic value of LOW.

When the PDQPRIORITY environment variable is not set, the default value is OFF.

When the environment variable is set to HIGH, the database server determines an appropriate value to use for PDQPRIORITY based on several criteria, including the number of available processors, the fragmentation of tables queried, the complexity of the query, and so on.

Usually the more resources Universal Server uses, the better its performance for a given query, but using too many resources can cause contention among the resources and also take away resources from other queries, resulting in degraded performance.

An application can override the setting of the environment variable when it issues the SQL statement SET PDQPRIORITY, which is described in the Informix Guide to SQL: Syntax.

PLCONFIG

The PLCONFIG environment variable specifies the name of the configuration file that the High-Performance Loader uses. This configuration file must reside in the $INFORMIXDIR/etc directory. If the PLCONFIG environment variable is not set, the default configuration file is the
$INFORMIXDIR/etc/plconfig file.

filename

specifies the simple filename of the configuration file to be used by the High-Performance Loader.

For example, to specify the $INFORMIXDIR/etc/custom.cfg file as the configuration file for the High-Performance Loader, enter the following command:

PSORT_DBTEMP

The PSORT_DBTEMP environment variable specifies a directory or directories where the Universal Server writes the temporary files it uses when performing a sort.

Universal Server uses the directory specified by PSORT_DBTEMP even if the environment variable PSORT_NPROCS is not set.

pathname

is the name of the UNIX directory used for intermediate writes during a sort.

Set the PSORT_DBTEMP environment variable to specify the directory (for example, /usr/leif/tempsort) by entering the following command:

For maximum performance, specify directories that reside in file systems on different disks.

You also might want to consider setting the environment variable DBSPACETEMP to place temporary files used in sorting in dbspaces rather than operating-system files. See the discussion of the DBSPACETEMP environment variable on page 3-36.

For additional information about the PSORT_DBTEMP environment variable, see the INFORMIX-Universal Server Administrator's Guide as well as the INFORMIX-Universal Server Performance Guide.

PSORT_NPROCS

The PSORT_NPROCS environment variable enables Universal Server to improve the performance of the parallel-process sorting package by allocating more threads for sorting. Before the sorting package performs a parallel sort, make sure that Universal Server has enough memory for the sort.

threads

specifies the maximum number of threads to be used to sort a query. The maximum value of threads is 10.

Use the following command to set the PSORT_NPROCS environment variable to 4:

To maximize the effectiveness of the parallel sort, set PSORT_NPROCS to the number of available processors in the hardware.

You can disable parallel sorting by entering the following command:

Tip: If the PDQPRIORITY environment variable is not set, Universal Server allocates the minimum amount of memory to sorts. This minimum memory is insufficient to start even two sort threads. If you have not set the PDQPRIORITY environment variable, check the available memory before you perform a large-scale sort (such as an index build) and make sure that you have enough memory.

Default Values for Ordinary Sorts

If the PSORT_NPROCS environment variable is set, Universal Server uses the specified number of sort threads as an upper limit for ordinary sorts.

If PSORT_NPROCS is not set, parallel sorting does not take place. Universal Server uses one thread for the sort.

If PSORT_NPROCS is set to 0, Universal Server uses three threads for the sort.

Default Values for Attached Indexes

The default number of threads is different for attached indexes.

If the PSORT_NPROCS environment variable is set, you get the specified number of sort threads for each fragment of the index that is being built.

If the PSORT_NPROCS environment variable is not set, or if it is set to 0, you get two sort threads for each fragment of the index unless you have a single-CPU virtual processor. If you have a single-CPU virtual processor, you get one sort thread for each fragment of the index.

For additional information about the PSORT_NPROCS environment variable, see the INFORMIX-Universal Server Administrator's Guide as well as the INFORMIX-Universal Server Performance Guide.

TERM

The UNIX TERM environment variable is used for terminal handling. It enables DB-Access to recognize and communicate with the terminal you are using.

type

specifies the terminal type.

The terminal type specified in the TERM setting must correspond to an entry in the termcap file or terminfo directory. Before you can set the TERM environment variable, you must obtain the code for your terminal from the DBA.

For example, to specify the vt100 terminal, set the TERM environment variable by entering the following command:

TERMCAP

The TERMCAP environment variable is used for terminal handling. It tells DB-Access to communicate with the termcap file instead of the terminfo directory.

pathname

specifies the location of the termcap file.

The termcap file contains a list of various types of terminals and their characteristics. For example, you can provide DB-Access terminal-handling information, which is specified in the /usr/informix/etc/termcap file, by entering the following command:

You can use any of the following settings for TERMCAP. They are used in the following order:

    1. The termcap file that you create

    2. The termcap file supplied by Informix (that is, $INFORMIXDIR/etc/termcap)

    3. The operating-system termcap file (that is, /etc/termcap)

If you set the TERMCAP environment variable, be sure that the INFORMIXTERM environment variable is set to the default, termcap.

If you do not set the TERMCAP environment variable, the system file (that is, /etc/termcap) is used by default.

TERMINFO

The TERMINFO environment variable is used for terminal handling. It is supported only on platforms that provide full support for the terminfo libraries provided by System V and Solaris UNIX systems.

TERMINFO tells DB-Access to communicate with the terminfo directory instead of the termcap file. The terminfo directory has subdirectories that contain files that pertain to terminals and their characteristics.

Set TERMINFO by entering the following command:

If you set the TERMINFO environment variable, you must also set the INFORMIXTERM environment variable to terminfo.

THREADLIB

You use the THREADLIB environment variable to compile multithreaded ESQL/C applications. A multithreaded ESQL/C application lets you establish as many connections to one or more databases as there are threads. These connections can remain active while the application program executes.

The THREADLIB environment variable indicates which thread package to use when you compile an application. Currently only the Distributed Computing Environment (DCE) is supported.

The THREADLIB environment variable is checked when the -thread option is passed to the ESQL/C script when you compile a multithreaded ESQL/C application. When you use the -thread option while compiling, the ESQL/C script generates an error if the THREADLIB environment variable is not set or if the variable is set to an unsupported thread package.




Informix Guide to SQL: Reference, version 9.1
Copyright © 1998, Informix Software, Inc. All rights reserved.