This chapter describes the ObjectStore client environment variables.
An environment variable is available on all platforms unless noted otherwise in this chapter. Defaults appear in the left margin.
The value for a variable is either an integer, a Boolean, or a string that can have certain values as described in this chapter. When you set a variable string to an empty string, ObjectStore uses the default. When you set an integer or Boolean variable to a blank string (nonempty), ObjectStore interprets it as 0 or false.
<err-0001-0040>The value of variable_name, bad_value, is not a valid integer. (err-misc)
A true setting for an environment variable is anything nonempty/ nonnull that does not completely parse as a constant to the value of 0 according to the rules of the C programming language. For example, the following values return true:
The size of the persistent storage region on the creating platform typically determines the size of the largest object you can store in a database. This is because ObjectStore commits the entire object in the transaction that allocates it. However, if the maximum size of a segment is smaller than OS_AS_SIZE, then the largest object you can store is limited to the maximum segment size. (Allocation is limited to a single segment.)
Caution
An incorrect value for OS_AS_SIZE or OS_AS_START can cause failures. Be absolutely certain you understand how addresses are assigned on your platform before you modify these values. OS_AS_START
Sets the address of the beginning of the persistent storage region of the process's address space. If you do not supply a value for this variable (this is the usual case), the default depends on the platform, as shown in the table under the heading Platform.
Default:
by platform
Individual platforms impose further constraints on what values are legal.
If OS_AS_START and OS_AS_SIZE are the same on all machines that create and use data in a given database, ObjectStore can often optimize relocation, which improves performance. See OS_RELOPT_THRESH for a discussion of the relocation optimization.
If necessary, ObjectStore rounds down the number you specify to a page-size boundary, that is, a multiple of the page size.
Windows NT
On Windows NT, two gigabytes is the maximum user-mode address space. Your program, its data, and ObjectStore's address space must fit in two gigabytes. A user program on Windows NT uses the bottom two gigabytes of address space. DLLs and such use up space at 0x10000000; stacks use up space at 0x7fxxxxxx. Consequently, there are only 1.75 gigabytes available. SPARCstation 10
There is no address space hole on the SPARCstation 10. In a single mmap, you can map any portion of the address space from address 0 to the process stack (around 0xefffe000). However, a single call to mmap has a limit of 0x80000000 bytes (approximately 2 GB). For ObjectStore, that means you can only use half of the entire 32-bit address space. SPARCstation 1000
On a SPARCstation 1000, the address space available for mapping starts above the break. The break is the top of the process's heap. The heap grows by increasing the break. It is risky to map a persistent range that is too near the break because a growing heap might collide with the persistent range. SPARCcenter 2000
Up to 1.8 gigabytes can be allocated in a single mmap call. OS_AUTH
Overrides NT Remote authentication. The following table lists values that OS_AUTH can be assigned:
OS_BOOTSTRAP_LRU_CACHE_SIZE
Default:
Specifies a number of bytes. When the cache grows to this size, ObjectStore performs an LRU (least recently used) bootstrap routine to start the process of determining which pages are not being used. This allows the first page eviction to be done intelligently, since page eviction chooses pages to evict based on information that must be collected over time. If the size of your cache drops below the OS_BOOTSTRAP_LRU_CACHE_SIZE threshold, ObjectStore suspends this process until you reach the threshold again. This way your application does not have the unnecessary overhead of determining which pages should be evicted.
three-quarters
of cache size OS_BROWSER_NUMERIC_FORMAT
Default:
Allows you to set the output format of numeric types. It supports the following types: int, long, double, ldouble, float, uint, ulong, short, and ushort. If you do not set any of these types, ObjectStore defaults are used.
ObjectStore defaults
OS_BROWSER_NUMERIC_ FORMAT="int=%x,float=%.4f,ulong=%x"
If OS_CACHE_DIR is not set, ObjectStore places the cache file in the directory specified by the Cache Directory parameter in the Cache Manager parameters file, if one exists. See Setting Cache Manager Parameters.
This directory should not be an NFS mount point because this can result in slower client performance and can result in potential problems with memory mapping over NFS.
Windows and OS/2
The operating system determines the location of the cache in virtual memory. You cannot change the location. OS_CACHE_SIZE
Default: 8 MB ObjectStore Single: 2 MB
Size of client cache, in bytes. The cache size defaults to 8 MB, except for ObjectStore single applications, for which the default cache size is 2 MB. In either case, the default cache size can be overridden using the OS_CACHE_SIZE environment variable. OS_CMGR_STARTUP_LOCK
Specifies an alternate location for the Cache Manager start-up lock file.
Default:
varies
by platform
OS/2 | \SEM32\OSTORE\CMGR4_STARTUP_L |
Solaris 2 | /var/tmp/cmgr4_startup_lock |
Other systems (not Windows) | /tmp/cmgr4_startup_lock |
If a Cache Manager is not already running, a client
If you do not want to use the default location for the start-up lock file, or if the default location is unavailable, you can specify an alternative location with the OS_CMGR_STARTUP_LOCK environment variable. Set this variable to a local pathname.
ObjectStore tries to use the default first. If it is not possible to use the default, ObjectStore uses the pathname you specified for OS_CMGR_STARTUP_LOCK.
The client process must have the authority to create the specified file.
When this variable is set to a nonnull value other than 0, ObjectStore uses the collections thread lock. This is the default.
If you are certain that in a multithreaded application only one thread at a time ever executes any collections operation, then you can improve performance by disabling the collections thread lock. In other words, set OS_COLL_THREAD_LOCKS to 0. You can do this when other threads are using ObjectStore entry points other than those involved with collections.
The OS_THREAD_LOCKS (see OS_THREAD_LOCKS) variable determines whether ObjectStore uses a lock to ensure that only one thread at a time can execute within ObjectStore code other than collections code.
If OS_THREAD_LOCKS is disabled, you cannot enable OS_COLL_THREAD_LOCKS. In other words, when OS_THREAD_LOCKS is set to 0, ObjectStore cannot use thread locks in any portion of ObjectStore.
Caution
If you set OS_COLL_THREAD_LOCKS to 0, and you cannot guarantee that only one thread at a time executes within collections code, you must enforce thread safety in some other way. If you do not enforce thread safety, and a multithreaded ObjectStore application has more than one thread executing within an ObjectStore collections entry point or the fault handler, then corruption of your nonpersistent data, ObjectStore's nonpersistent data, or persistent data can occur. The corruption might or might not be detected when it occurs. Program failure can result. OS_COMMSEG_DIR
Pathname of the directory used for the communications segment. ObjectStore automatically places the commseg in the /tmp/ostore directory. If the UNIX file system containing /tmp/ostore is very small, it might be desirable to locate the communication segment elsewhere.
Default:
/tmp/ostore
This directory should not be an NFS mount point because this can result in slower client performance and can create potential problems with memory mapping over NFS.
Windows and OS/2
The operating system determines the location of the commseg in shared memory. You cannot change the location. OS_COMMSEG_RESERVED_SIZE
Default: 8 MB
Specifies the maximum size, in bytes, to which the commseg (communications segment) can grow. If you set the maximum size to something less than the initial size, OS_COMMSEG_SIZE, ObjectStore automatically increases the reserved size to equal the initial size. OS_COMMSEG_SIZE
Default:
Specifies, in bytes, the initial size of the communications segment (commseg). You must specify an integer that is a multiple of the page size.
approx. 262,144 bytes,
varies by platform and
OS_CACHE_SIZE
setting
Specifying a value below the minimum size needed to store required structures in the communications segment has no effect.
If necessary, ObjectStore rounds down the number you specify to a page-size boundary, that is, a multiple of the page size.
An application can set its own commseg size with the API function objectstore::set_commseg_size.
If necessary, ObjectStore rounds down the number you specify to a page-size boundary, that is, a multiple of the page size.
OS_DEBUG_C0000005
Instructs ObjectStore to display a message box if a fault occurs and the ObjectStore exception handler sees it. The message explains the fault as an Attempt to read location 0x1234 from EIP 0x10231023. This can be useful in tracking down access violations in your code. To set this variable, specify any nonnull value except 0 to turn this variable on.
Default: false
OS_DEBUG_LOCATOR_FILE
Default: 0
Instructs ObjectStore to send diagnostic information about the processing of the locator file to stderr.
OS_DEBUG_RECURSIVE_EXCEPTION
On Windows only, when this is set, recursive exceptions are not handled by ObjectStore, so they can be debugged in a debugger.
Default: false
OS_DEF_BREAK_ACTION
Allows you to set a break point that obtains a stack trace before the stack is unwound. When you set this variable to 1, ObjectStore reaches a hardcoded break point immediately before an exception is signaled. This is useful when your application exits with an unhandled TIX exception and works with Visual C++'s just-in-time debugging. Setting OS_DEF_BREAK_ACTION also hits a breakpoint if ObjectStore's internal abort routine is called.
Default: false
OS_DEF_EXCEPT_ACTION
Default: not set
Controls what happens if an unhandled exception is signaled; this is useful in debugging unhandled exceptions. You can specify the following values:
OS_DEF_MESSAGE_ACTION
Determines the default message action for _ODI_message (used for unhandled TIX exceptions). You can set this variable to stderr or stdout to send the information there, or you can specify the name of a file to receive the information.
Default:
not set OS_DIRMAN_HOST
Default: not set
Specifies a rawfs host name that ObjectStore places at the beginning of every pathname that does not already begin with the host:: rawfs prefix. This variable provides a convenient way to toggle between rawfs and native file systems.
twinkie::/myfileHowever, if you specify ::/myfile, ::blah or ::../../foo as the pathname, ObjectStore treats it as a file database on the local host. When OS_DIRMAN_HOST is set, this is the only way you can specify a file database.
If OS_DIRMAN_HOST is set, and OS_DIRMAN_USE_SERVER_PREFIX is set to Yes, ObjectStore builds the path using the value specified for OS_DIRMAN_HOST. If the result is a::b:c, ObjectStore interprets it as b::c. The OS_DIRMAN_USE_SERVER_PREFIX variable allows compatibility with previous ObjectStore releases. See OS_DIRMAN_USE_SERVER_PREFIX.
If you use only native file systems, do not set this variable; its use can cause difficulty in finding your databases or Server.
OS_DIRMAN_LINK_HOST
Default: not set
For use in resolving by-ID cross-database references, which have been obsolete since Release 1. Set the variable to the name of a Release 5 Server host to enable that Server as the clearinghouse for such references. The host must have a Release 5 rawfs with a directory called /.ODI_compatibility_links. In this directory there must be a link (possibly cross-server) to the actual database. Each link has a name of the form x_y_z, where x, y, z are the three words of the database ID, in hexadecimal, padded out to eight characters with leading zeros. OS_DIRMAN_USE_SERVER_PREFIX
Default: false
Specifies an alternate interpretation of rawfs pathnames. Release 3 Directory Manager pathnames were allowed to have the form
a::b:/fooIn Release 4, ObjectStore interprets such names as
a::/fooIf this is not what you want, you can set the environment variable OS_DIRMAN_USE_SERVER_PREFIX. When this variable is set, ObjectStore interprets a::b:/foo as b::/foo.
When OS_DIRMAN_HOST is set and OS_DIRMAN_USE_SERVER_PREFIX is set, ObjectStore applies the setting of OS_DIRMAN_HOST first, and then applies OS_DIRMAN_USE_SERVER_PREFIX.
os_coll_query::set_disable_pre2_query_syntax_support()The use of [ and ] as the query element selection operator is discouraged. The use of [%% and %%] is preferred. In a future release of ObjectStore, support for [ and ] as the query element selection operator will be dropped. After you convert your sources to use the preferred form of the operator, set this variable to any nonnull value except 0.
If your application is a Windows GUI application, see OS_STDOUT_FILE.
OS_ENABLE_PRE2_QUERY_SYNTAX_WARNINGS
Default: - (for stderr)
For use with the ObjectStore C++ API. When set to a nonnull string, enables warnings from the C++ API query translator about the use of obsolete query syntax for nested element selection [( and )]. The string should name the file to which the warnings should be written. Any setting of this variable is ignored if the application calls os_coll_query::set_enable_pre2_query_syntax_warnings(). OS_ENABLE_REALTIME_COUNTERS
Default: false
Turns on the collection and display of timing statistics that measure ObjectStore performance. ObjectStore displays values of real-time counters that help show where time is being spent. To set this variable, specify any nonnull value except 0. OS_EVICT_IN_ABORT
Default: false
Instructs ObjectStore to evict rather than relocate locked pages during an abort. This results in improved abort performance if relocation optimization is not in effect. The tradeoff is that pages must be fetched for subsequent operations. Specify any nonnull value except 0. OS_FORCE_DEFERRED_ASSIGNMENT
Default:false
When set to a nonzero value, causes all segments that are in enhanced format to use deferred assignment. If a segment uses deferred assignment, it cannot benefit from relocation optimization. OS_FORCE_STANDARD_PRM_FORMAT
Default: false
When set to a nonzero value, causes all new databases to be created with the standard (old) PRM format. The standard format is necessary to ensure compatibility of cross-database pointers for applications that use databases created with ObjectStore prior to Release 5.0 and whose PRM format has not been upgraded with osupgrm. OS_FORCE_HANDLE_TRANS
OS_HANDLE_TRANS
Controls what ObjectStore does if there is a memory fault on an address that is not in the persistent storage region of address space, for example, if you happen to dereference a null pointer.
Default: false
OS/2 implements a subset of this feature. OS/2 ignores the value of OS_FORCE_HANDLE_TRANS. When you set OS_HANDLE_TRANS, ObjectStore signals the appropriate exception: err_null_pointer or err_deref_transient_pointer. This causes dereferences to illegal non-ObjectStore addresses to signal a TIX exception and display a message, and lets you obtain a stack trace. OS/2 never runs the previous SIGSEGV handler if OS_HANDLE_TRANS is set. If you do not set up your own SIGSEGV handler before ObjectStore is initialized, the error message is SYS3175: Access Violation.
OS_IGNORE_LOCATOR_FILE
Default: false
Indicates that no locator file is associated with any application on the client. This overrides all other settings and function calls, including the existence of $OS_ROOTDIR/etc/locator. Specify any nonnull value except 0 to set this variable. Set this variable to 0 to allow locator files (this is the default).
For information about the locator file, see Description of the Locator File.
OS_INBOUND_RELOPT_THRESH
Default: half the size of the persistent storage region
For databases that use enhanced-format PRM segments, sets the amount of process address space that can be used for immediate assignments. Values should be set in byte units.
OS_INC_SCHEMA_INSTALLATION
Default: false
When set, ObjectStore creates new databases in incremental schema installation mode. This means that ObjectStore adds types to the database schema as they are needed. When this variable is not set, ObjectStore creates new databases in batch schema installation mode. This means that when ObjectStore creates a database, it creates a database schema that includes all types that might be allocated in the database.
Many end-user applications have omnibus error handlers to catch all errors being signaled and present them in an easily readable format to the user. This sometimes makes debugging difficult, because the backtrace information has disappeared. When you specify a substring to OS_INHIBIT_TIX_HANDLE, if the substring appears in the formatted error message, exception handling is disabled for the specific error. You can then generate an unhandled exception dump for analysis, or view the backtrace in a debugger.
Specify all to disable all handling.
LANG is a public environment variable that controls the selection of the message catalog sets appropriate for the specific language locale. It is also used internally to identify the character encoding used, and thus affects the processing of strings. This variable might already be set by your system manager.
Because the LANG variable is public, Object Design supplies another variable, OS_LANG_OVERRIDE, that takes precedence over LANG. The result is that anywhere ObjectStore uses catalogs, OS_LANG_OVERRIDE can change the catalog path construction as well as the way strings are processed. OS_LANG_OVERRIDE also affects .msg file path construction for Object Design scripts such as osinstal and osconfig on platforms that use them.
There is a possibility that the value of LANG is not one of the variables shown in the following table. If the value set is not one of those listed in the table, English is assumed unless OS_LANG_OVERRIDE is set to one of the values in the table.
The values recognized by ObjectStore appear in the following table.
OS_LIBDIR
Default: OS_ROOTDIR\lib
Specifies the directory that contains schema files distributed with ObjectStore. The directory must be on a machine that has a Server, so you do not receive an error when trying to access the schema files. This is set up by the installation process. The only exception to this is if you have a locator file that is set up to handle remote access to databases and you configure the relevant Server to allow remote access to databases. OS_LOCATOR_ESCAPE_CHARACTER
Default: $
The default escape character for regular expressions in locator files is $, rather than the usual \. You can specify an escape character explicitly with this environment variable. For information about the locator file, see Description of the Locator File.
OS_LOCATOR_FILE
Default: false
The client environment variable OS_LOCATOR_FILE can be set to any legitimate argument to objectstore::set_locator_file(), with the same meaning. Calls to set_locator_file() override this setting. See the ObjectStore C++ API Reference. See also Description of the Locator File.
OS_LOG_TIX_FORMAT
Default: false
The name of a log file to record all exceptions signaled. This file logs all printf control strings signaled, regardless of whether the exception is handled. This facility is especially useful for debugging two situations: recursive exceptions (common if you get exceptions during message processing), and bad printf strings. OS_META_SCHEMA_DB
Default: $OS_ROOTDIR/lib/
Specifies the metaschema database.
metaschm.db OS_NB_LANA_NUM
Default: not set
Specifies the number of the default network protocol. Typically, you set this variable when your system is running more than one protocol. You do this to ensure that ObjectStore uses NetBEUI as its NetBIOS protocol.
On Windows, set OS_NB_LANA_NUM in the system environment so ObjectStore services have access to the proper value.
OS_NETWORK
Specifies the network dynamic link libraries (DLLs) to be loaded and used by all ObjectStore executables. On Windows, the default is
O4NETNSM,O4NETTCP,O4NETBIOOn OS/2, the default is
O4NETNP,O4NETTCP,O4NETSNA,O4NETBIOYou do not normally need to change the default setting. In other words, you do not usually set OS_NETWORK. Possible values for OS_NETWORK are
If you omit the local network, or do not specify it first, starting an ObjectStore application might fail to start the Cache Manager automatically. You must then start the Cache Manager by hand before running the first ObjectStore application. Many other operations can fail if these DLLs are not specified at all or not specified first.
If you specify O4NETBIO, it must always be last. If the NetBIOS network is present, ObjectStore uses it in preference to other networks that might follow it in the list.
ObjectStore internal error connect failed (err_internal)Set OS_NETWORK to O4NETNSM on Windows or to O4NETNP on OS/2 to prevent the TCP interface from loading and allow the Server to initialize normally.
On OS/2 systems, you might need to change the value of OS_NETWORK if you receive a message like the following when trying to run ObjectStore:
** Network error <err-0033-0705>SNA APPCerror: <maint-0033-0332> AP_Comm>sub system_not_loaded **ObjectStore signals an exception when it cannot enable a network protocol that it expects to enable, in this case, SNA networking. Set the OS_NETWORK environment variable to ignore the missing protocol or enable the SNA network.
If you are using TCP/IP on your OS/2 system, do so with a set statement in your config.sys file. For example:
set OS_NETWORK=O4NETNP,O4NETTCPIf you are using NetBIOS on your OS/2 system, the set statement is
set OS_NETWORK=O4NETNP,O4NETBIO
If an application does not call the set_queue_size() function, then ObjectStore uses the value you specify for OS_NOTIFICATION_QUEUE_SIZE. If an application does not call set_queue_size(), and this environment variable is not set, ObjectStore uses a default value of 50.
The maximum allowable value for this variable is 16383. If you set this variable to a value that is higher, ObjectStore uses 16383 as the value and not the value you set.
The API for setting the maximum length of the notification queue is os_notification::maximum_notification_queue_length().
OS/2 | icc |
UNIX | cpp |
Windows | cl |
OS_OUTBOUND_RELOPT_THRESH
Synonymous with OS_RELOPT_THRESH. See OS_RELOPT_THRESH for a description of this environment variable.
OS_PORT_FILE
Default: by platform
The name of a ports file for network services. See Modifying Network Port Settings.
OS_PRINT_CLIENT_COUNTERS
Default: false
Turns on display of counters that provide information about client performance. To set this variable, specify any nonnull value except 0. OS_RCVBUF_SIZE
Default: 16384 bytes
Sets the default size of the network buffer used by the client to receive data from the Server. For best results, this size should be the same as the Server parameter Preferred Network Send Buffer Size.
Note that some applications benefit from an increase in the size of the network buffers used by ObjectStore clients and Servers. You can change the size used by the clients from the default of 16384 bytes by setting the environment variables OS_SNDBUF_SIZE and OS_RCVBUF_SIZE. You can change the size used by the Server by setting the Server parameters, Preferred Network Send Buffer Size and Preferred Network Receive Buffer Size. Usually, you achieve the best performance if OS_SNDBUF_SIZE is the same as Preferred Network Receive Buffer Size and OS_RCVBUF_SIZE is the same as Preferred Network Send Buffer Size.
Depending on the operating system, you might find that large values are rejected, which leads to reduced performance. Object Design recommends that you experiment by doubling the size until performance no longer improves.
OS_RELOPT_THRESH
The name is short for relocation optimization threshold. Use this variable to specify how much relocation information each segment in a database can store about every other segment in the database, in bytes. ObjectStore uses many criteria to determine whether or not to relocate a page. One factor is whether or not the total amount of pseudoaddress space assigned within the segment's relocation map has exceeded this threshold. If the threshold has been exceeded, ObjectStore suppresses the relocation.
Defaults:
0x4000000
(64 MB)
0x10000000
(256 MB)
on AIX
The most common use of this environment variable is to disable outbound relocation optimization entirely by setting it to 0. You can specify any number of bytes.
Relocation map
Every segment in an ObjectStore database contains a relocation map for the segment. If the database only consists of one segment, this is the relocation map for the entire database. However, if the database contains multiple segments, the relocation map for every segment in the database is stored in every other segment. This is true until the database grows to the size of OS_RELOPT_THRESH. When this occurs, relocation information for external segments is only added when a pointer to an object in another segment is added to the segment. Performance
When the relocation maps get large and there are a large number of segments in the database, you lose the performance benefits of having the segment relocation map repeated in each segment. In fact, the performance most likely deteriorates. Avoiding large relocation maps
To avoid having large segment relocation maps, you can presize your segments with the os_segment->set_size() function. This limits the need for multiple entries in the relocation map for a segment. When a segment is created it reserves a default amount of persistent address space:
Relocation optimization procedure
ObjectStore performs relocation optimization automatically whenever conditions permit. At a minimum, relocation optimization occurs when objectstore::set_check_illegal_pointers is not enabled. PRM bloat
The effect of this is referred to as PRM bloat. The PRM for a segment is likely to contain entries for segments that are never actually pointed to by that segment. Since address space is reserved for all entries in a PRM (when the segment is first accessed in a transaction), this condition might lead to excessive consumption of address space, especially as databases become large. OS_REPORT_DLL_LOAD_AND_UNLOAD
Default: true
OS_REPORT_DLL_LOAD_AND_UNLOAD(os_boolean)Reports that a DLL has been loaded or unloaded.
When os_boolean is true, automatic reporting of DLL loading and unloading is enabled. This is accomplished by calling os_DLL_schema_info::DLL_loaded() and os_DLL_schema_info::DLL_unloaded() from the DLL's initialization and termination functions.
If os_boolean is false, automatic reporting is not enabled and you must write your own code to call os_DLL_schema_info::DLL_loaded() and os_DLL_schema_info::DLL_unloaded() from the DLL's initialization and termination functions. The default is true.
This optimization can cause trouble if your own program calls the mmap system call with 0 as the first argument, or if your program calls some subroutine library that does so. If your program does either of these things, you should disable the optimization, either by calling the entry point objectstore::set_reserve_as_mode(os_boolean new_mode), or by setting the environment variable OS_RESERVE_AS to any nonnull value except 0. If you both call the entry point and set OS_RESERVE_AS, the entry point takes precedence.
This variable affects the setting of reserve address space mode. When ObjectStore is in this mode, it always keeps the entire persistent region reserved, from the operating system's point of view, so that any other subsystem in the client process that maps something in and asks the operating system to assign some address space receives address space outside the persistent region.
If reserve address space mode is off, such a request might assign space that is part of ObjectStore's persistent region. This can cause problems because the subsystem appears unable to coexist with ObjectStore.
If reserve address space mode is off, however, operating system calls that manipulate the virtual address space are faster on some platforms.
If you change the location of your ObjectStore installation, be sure to change the value specified for OS_ROOTDIR. Not doing so can cause the following message to be displayed:
no handler for exception: no networks where registered, please verify your ostore network configuration: <err_0001_0141>The client tried to find the Server over the network. With an incorrect setting for OS_ROOTDIR, this happens even when the client and the Server are on the same machine.
Windows
If ObjectStore was not installed in C:\OSTORE, you must set OS_ROOTDIR to the location of the directory where ObjectStore was installed. OS_ROOTDIR should be kept in the DOS environment, so that makefiles and DOS utilities can reference it. OS_SCHEMA_DLL_ID
OS_SCHEMA_DLL_ID(string)
You must call OS_SCHEMA_DLL_ID at least once in a DLL schema to distinguish it from an application schema.
OS_SCHEMA_INFO_NAME(name)
OS_SCHEMA_KEY_LOW specifies the low four bytes of a 64-bit schema key.
If you run certain ObjectStore tools and utilities on schema-protected databases, set OS_SCHEMA_KEY_LOW and OS_SCHEMA_KEY_HIGH to specify the schema keys of the databases to be accessed. The tools and utilities for which you must set these variables include
You can, however, build an application that performs the same function as an ObjectStore utility, by calling a member of the class os_dbutil. This application can specify the schema key programmatically.
These environment variables determine an application's schema key when an ObjectStore application attempts to access data in a schema-protected database, and either one of the following is true:
If you run an application on a schema-protected database, and the application does not have a schema key, or the application's schema key does not match the database's schema key, ObjectStore signals err_schema_key and issues an error message like the following:
Error using schema keys
<err-0025-0151> The schema is protected and the key, if provided, did
not match the one in the schema of database db1.
See Preferred Network Receive Buffer Size for additional information about the Server network buffer size. See further discussion about these parameters and how they affect performance in OS_RCVBUF_SIZE.
OS_STDOUT_FILE
Specifies the pathname of a file to which you want to redirect output that ObjectStore would otherwise send to stdout and stderr.
Default: not
set OS_SUPPRESS_PRE2_QUERY_SYNTAX_WARNINGS
Default: false
Suppresses warnings when an application contains the pre-Release 2 element selection operator []. To set this variable, specify any nonnull value except 0. OS_THREAD_LOCKS
Default: true
Determines whether ObjectStore uses a lock to ensure that only one thread at a time can execute within ObjectStore code other than collections code.
OS_TIX_BUFFER_SIZE
Specifies the size in bytes of the error report buffer. The default size is large enough for all reasonable and expected errors. However, if an error message is extremely long, it might overflow the buffer and cause the application to abort. If this happens, you can resolve the problem by setting this variable to a larger value.
Default: 8192
OS_TIX_WD
Specifies the working directory for ObjectStore when an unhandled TIX exception causes ObjectStore to create a core dump. (Whether or not there is a core dump depends on the platform and on the setting of the OS_DEF_EXCEPT_ACTION environment variable.)
Defaul:none:
OS_TMPDIR
Specifies a directory in which to place temporary files. If you do not set OS_TMPDIR, ObjectStore uses the path returned by the Win32 API GetTempPath(). To set this variable, specify any nonnull value except 0.
Default: not
set OS_TRACE_MISSING_VTBLS
Default: false
Causes a run-time debugging message to be printed to stderr when a missing vtbl handler is installed for a class. The message identifies the class with the missing vtbl handler. For example:
Installing missing vtbl: Class: CCC Name: NNN Symbol: SSS
Updated: 03/26/98 20:20:49