General Settings and Logging
The <general>
configuration element specifies ObjectDB settings that are relevant to both the server side and the client side.
The default configuration file contains the following <general>
element:
<general> <temp path="$temp/ObjectDB" threshold="64mb" /> <network inactivity-timeout="0" /> <url-history size="50" user="true" password="true" /> <log path="$objectdb/log/" max="8mb" stdout="false" stderr="false" /> <log-archive path="$objectdb/log/archive/" retain="90" /> <logger name="*" level="info" /> </general>
Each of the following sections describes one subelement:
The <temp> element
<temp path="$temp/ObjectDB" threshold="64mb" />
To meet memory constraints ObjectDB can use temporary files when processing large data, such as query results that contain millions of objects.
The <temp>
element specifies temporary file settings:
- The
path
attribute specifies a directory in which the temporary files are generated. The$temp
prefix can be used to represent the system default temporary path, as demonstrated above. - Using RAM is much faster than using temporary files. Therefore, temporary files are only used for data that exceeds a limit size that is specified by the
threshold
attribute. Themb
andkb
suffixes represent megabytes and kilobytes (respectively).
The <network> element
<network inactivity-timeout="0" />
The <network>
element has one attribute, inactivity-timeout
, which specifies when network sockets become obsolete as a result of inactivity. The value is the timeout in seconds, where 0
indicates never (no inactivity timeout).
The inactivity timeout (when > 0
) is applied on both the server side and the client side, when using client-server mode, and has no effect in embedded mode.
Specifying an inactivity timeout may solve firewall related issues. In general, if the firewall enforces its own inactivity timeout on sockets a more restrictive inactivity timeout has to be specified for ObjectDB to avoid using sockets that are expired by the firewall.
The <url-history> element
<url-history size="50" user="true" password="true" />
ObjectDB manages a list of the recently accessed database URLs for use by the Explorer.
- The
size
attribute specifies the maximum size of this list. This feature can be disabled by specifying0
as the maximum list size.
- The
user
attribute specifies if user names should be saved with URLs (in client server mode). - The
password
attribute specifies if passwords should also be saved with URLs.
Saving username and password with the URL makes accessing recently used databases in the Explorer easier.
The <log> element
<log path="$objectdb/log/" max="8mb" stdout="false" stderr="false" />
General logging settings are specified in the <log>
element:
- The
path
attribute specifies a directory in which the log files are generated. The$objectdb
prefix can be used to represent the ObjectDB installation directory, as demonstrated above. If the path is empty (""
) logging to file is disabled. - Every day a new log file is generated with the name
odb<yyyymmdd>.log
(where<yyyymmdd>
represents the date). A new log file is also generated when the log file exceeds the maximum size, which is specified by themax
attribute. - The
stdout
andstderr
attributes specify if log messages should also be written to the standard output and the standard error (respectively) in addition to writing to the log file.
The <log-archive> element
<log-archive path="$objectdb/log/archive/" retain="90" />
Old log files are moved to an archive directory.
The <log-archive>
element specifies the logging archive settings:
- The
path
attribute specifies an archive directory. - The
retain
attribute specifies how many days to keep the archived log files. After that period an archived log file is automatically deleted.
The <logger> elements
<logger name="*" level="info" />
<logger>
elements specify logging levels. The "*" logger, which can be shown in the default configuration above, represents the entire ObjectDB system.
Additional <logger>
elements can be added to override the default logging level for a specific ObjectDB subsystem. The names of the subsystem loggers are currently undocumented and can change at any time without notice.
The supported logging levels are:
"fatal"
"error"
"warning"
"info"
"trace"
"debug"