This class allows you to modify and view the [Miscellaneous] section of the CPF file through
programmatic APIs. While properties are usually modified through the System Management
portal, there may be some occasion where modifying them through the API's is best
for your system. In all the Config methods, if you do not specify the CPFFile parameter,
the currently active CPF file is used. If you wish to modify a CPF file which is not
the currently active one, then specify the CPFFile you wish to modify in the method call.
The Flags parameter does not normally need to be specified; the defaults are usually sufficient for most cases.
You can use either the provided API's (Get/Modify) to modify the properties by passing in the correct parameters, or use Object syntax to open and directly manipulate the config objects.
; Use class methods to modify properties %SYS>s Status=##Class(Config.Miscellaneous).Get(.Properties) %SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status) %SYS>zw Properties("NodeNameInPid") Properties("NodeNameInPid")=0 %SYS>s Properties("NodeNameInPid")=1 %SYS>s Status=##Class(Config.Miscellaneous).Modify(.Properties) %SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status) ; Now use Objects to modify properties %SYS>s Obj=##Class(Config.Miscellaneous).Open() %SYS>w Obj.NodeNameInPid 1 %SYS>s Obj.NodeNameInPid=0 %SYS>s Status=Obj.%Save() %SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status)
s Status=##Class(Config.Miscellaneous).Get(.Properties) i '$$$ISOK(Status) q Status s Properties("NodeNameInPid")=1 s Status=##Class(Config.Miscellaneous).Modify(.Properties) i '$$$ISOK(Status) q Status
Example: Open the active configuration and get the value of the NodeNameInPid Parameter.
s Obj=##Class(Config.Miscellaneous).Open(,,.Status) i '$$$ISOK(Status) q Status s NodeNameInPid=Obj.NodeNameInPid
List of properties which may or may not be in the CPF file.
They have a corresponding %Boolean property to determine if they are in the file or not.
This setting modifies the behavior of InterSystems IRIS when DisconnectErr is enabled.property AsynchError as %Boolean [ InitialExpression = 1,Required ];
0 - The process receives a
error at the next read or write command.
1 - The process receives an asynchronous
error at the time a disconnect occurs on the device. This error will occur at the next command executed. Hang commands will be interrupted.
AsyncDisconnectError is only applicable to Telnet connections on Windows. It has no effect on any other device type or operating system. If DisconnectErr is set to 0 (false), then AsyncDisconnectError has no effect.
Enable processes to receive asynchronous errors.property BreakMode as %Boolean [ InitialExpression = 1,Required ];
0 - Processes cannot receive asynchronous errors.
1 - Processes can receive asynchronous errors.
This setting applies to ECP networking.
Process action when debug BREAK command executed.property CollectResourceStats as %Boolean [ InitialExpression = 0,Required ];
0 - Breaks are ignored.
1 - Breaks are taken.
Controls whether the system resource statistics are updated or not (seize, nseize, aseize, bseize).property DX as %Boolean [ InitialExpression = 0 ];
0 - Statistics are not collected
1 - Statistics are collected.
Sets $X update mode for escape sequences system-wide.property DisconnectErr as %Boolean [ InitialExpression = 0,Required ];
You can control the way the system updates $X when writing a string containing an escape sequence. Default behaviors for various system implementations are as follows:
UNIX - parses the ANSI standard escape sequence and counts the rest of the non-escape characters in the string against $X.
VMS - Do not count any more characters in the string against $X as soon as they encounter an escape character ($CHAR(27)).
Open M [DSM] - Counts all characters in a string, including the escape character, against $X.
Open M [DTM] and Open M [MSM] - Count all characters except for the escape character against $X.
A numeric code that controls a nondefault, consistent, system-wide way of updating $X.
0 - Use UNIX default behavior on system.
1 = Use Open M [DSM] default behavior on system.
2 = Use Open M [DTM]/Open M [MSM] default behavior on system.
3 = Use OpenVMS Alpha default behavior on system.
The default behavior on UNIX zero (0).
The default behavior on VMS is three (3).
Enable a process to receive disconnect errors.property FileMode as %Boolean [ InitialExpression = 0,Required ];
This setting conditions how a process responds to a disconnect of the principal I/O device.
Be aware that when error on disconnect is enabled, a process continues to execute after its principal device has been disconnected. It is the responsibility of the application to detect the disconnect condition and exit gracefully. Use care when enabling error on disconnect. The application must be prepared to recognize the
error and handle it appropriately in error traps. Error on disconnect is only applicable to TCP devices and to terminal devices where a disconnect can be recognized. Examples are modem controlled terminals and Windows Telnet, Windows LAT, and Windows local cterm (TRM:) connections. Error on disconnect is only applicable to the principal device. 0 - Process exits without reporting an error to the application when a disconnect is detected.
1 - Process receives a
error when a disconnect is detected during a Write or Read command.
Create a file if it does not exist when called with Write or Read/Write.property GlobalKillEnabled as %Boolean [ InitialExpression = 1,Required ];
When 0 (false) and a file is opened for writing that does not exist, a new file is not created unless the N parameter was provided with the OPEN command.
When 1 (true) and a file is opened for writing that does not exist, a new file is created.
Enable KILL of an unsubscripted global.property IEEEError as %Boolean [ InitialExpression = 1 ];
0 - KILL of an unsubscripted global results in a
error. 1 - KILL of an unsubscripted global is allowed, so you can kill all subscripts of a global with a single kill instead if killing them individually.
Enables or disables $DOUBLE returning INF and NAN values system-wide.property LineRecall as %Boolean [ InitialExpression = 1,Required ];
This property sets the $DOUBLE function return value behavior system-wide. If 0, $DOUBLE returns INF (infinity), -INF, and NAN (Not A Number) for unresolvable IEEE floating point conversions. If 1, $DOUBLE generates ObjectScript errors for unresolvable IEEE floating point conversions. The property controls the issuing of INF, -INF, and NAN when a $DOUBLE numeric operation cannot be resolved to a numeric value. It does not control the issuing of INF, -INF, and NAN in all cases. $DOUBLE always returns INF, -INF, or NAN when you supply one of these strings as the input value, regardless of this property. Mathematical operations on $DOUBLE numbers that result in an INF, -INF, or NAN are controlled by this property. These include arithmetic operations, exponentiation, and logarithmic and trigonometric functions.
0 - $DOUBLE returns INF, -INF, or NAN when given an unresolvable numeric expression.
1 - $DOUBLE generates
, , and errors when given an unresolvable numeric expression.
Enable command line recall for READ commands.property ListFormat as %Integer [ InitialExpression = 0,Required ];
Read line recall is only used by terminal devices.
The OPEN command sets the read line recall mode for a terminal. You can specify the R protocol (enable) or the N protocol (disable). If neither protocol is specified, OPEN takes its setting from the current default established by %SYS.ProcessQuery.LineRecall, this property. The USE command can specify the R protocol (enable) or the N protocol (disable) to change the OPEN mode. If neither protocol is specified, USE takes its setting from the initial OPEN mode value. An implicit open of an active device, such as issuing a BREAK command, reopens the device in the same mode as the initial OPEN command. Modifying this property does not override an OPEN or USE setting for an active terminal. To change read line recall for an already open terminal device, you must explicitly reopen the device. You can use this property or %SYS.ProcessQuery.LineRecall to change the default, then issue an OPEN 0 command, which reopens the active terminal device, applying the current default. See Terminal I/O in InterSystems IRIS I/O Device Guide for details on using protocols.
Read Line Recall
Read line recall mode provides line recall of editable lines as input for READ operations from a terminal. These recallable lines include both previous READ input lines and previous command lines. Echoing of input lines is a necessary precondition for read line recall. The system supports read line recall for both variable-length terminal reads (READ var) and fixed-length terminal reads (READ var#n). The system does not support read line recall for single-character terminal reads (READ *var). For a fixed-length terminal read, the recalled line is truncated to one character less than the number of characters specified in the READ. This final READ character position is reserved for typing a line termination character, specifying an edit character, or adding one more data character. When read line recall is active, you can provide input to a READ by using the Up Arrow and Down Arrow keys to recall a previous terminal input line. You can then use the Left Arrow, Right Arrow, Home, and End keys to position the cursor for editing the recalled line. You can use the Backspace key to delete a character, Ctrl-X to delete the entire line, or Ctrl-U to delete all of the line to the left of the cursor. When read line recall is not active, the four Arrow keys, the Home key, and the End key all issue a line termination character. You can use the Backspace key to delete a single input character, and Ctrl-X (or Ctrl-U) to delete the entire input line. Read line recall can be deactivated by using the -R protocol, or by specifying the N, I, S, or T protocols, as described in the Terminal I/O chapter of the InterSystems IRIS I/O Device Guide.
0 - Command line recall is not enabled.
1 - Command line recall is enabled.
Enable compression of some $LIST types.property LogRollback as %Boolean [ InitialExpression = 0,Required ];
The value is bit flags controlling these types:
1 - Compress IEEE floating point values ($DOUBLE)
2 - Compress Unicode strings
Enable logging for transaction rollbacks.property MVDefined as %Boolean [ InitialExpression = 0 ];
0 - Do not log transaction rollbacks.
1 - Log transaction rollbacks to the console log file.
Sets MVBasic handling of undefined variables system-wide.property NodeNameInPid as %Boolean [ InitialExpression = 0,Required ];
This property function defines MVBasic behavior when it encounters a reference to an undefined variable. By default, if an MVBasic routine references an undefined variable, The system generates an
error. You can change this default behavior to have the system substitute an empty string for an undefined variable, without signaling an error.
0 - issue an
error for an undefined variable.
1 - substitute the empty string for an undefined variable.
Behavior when there is a reference to the special variable $JOB.property NullSubscripts as %Boolean [ InitialExpression = 0,Required ];
0 - $JOB returns only the process ID number. 1 - $JOB returns the process ID number of the current process, concatenated to the nodename.
Enable null subscript references.property OldZU5 as %Boolean [ InitialExpression = 0,Required ];
0 - Throw
error when referencing a null subscript.
1 - Null subscript references do not throw an error.
When switching namespace to the same namespace via $namespace or ZN, clear global vectors.property OpenMode as %Integer(MAXVAL=1,MINVAL=0,VALUELIST=",0,1") [ InitialExpression = 0,Required ];
0 - Switching to the same namespace is a NOOP.
1 - Switching to the same namespace clears the globals vector cache.
The read/write mode you want used when opening sequential files and no mode is specified in the OPEN command.property PopError as %Boolean [ InitialExpression = 0,Required ];
0 - Read
1 - Read-Write
When to pop $ZTRAP error handlers off the stack.property RefInKind as %Boolean [ InitialExpression = 0,Required ];
When a $ZTRAP error handler is invoked by the system, that error handler remains on the stack of established error handlers. Therefore, if an error occurs when the error handler is executing, that error handler attempts to invoke itself, receives the same error again and enters an infinite loop, unless that error handler explicitly sets $ZTRAP to a new value.
When a $ZTRAP error handler is invoked in DSM, the error handler is removed from the stack. Therefore, if an error occurs while the error handler is executing, that error is handled by the previous error handler on the stack.
0 - Normal behavior: A $ZTRAP error handler stays active when the error handler is invoked.
1 - Pop the $ZTRAP error handler off the stack when an error is triggered (DSM compatibility mode).
Result of $NAME and $QUERY when an extended global reference is the argument.property ScientificNotation as %Boolean [ InitialExpression = 1 ];
0 - Return the global with an extended reference.
1 - Return the global without reference to where it is on the network.
Enables or disables lowercase "e" as scientific notation symbol system-wide.property SetZEOF as %Boolean [ InitialExpression = 0,Required ];
0 - Disable lowercase "e".
1 - Enable lowercase "e".
Behavior when the system encounters an unexpected end-of-file when reading a sequential file.property ShutDownLogErrors as %Boolean [ InitialExpression = 0,Required ];
0 - Throw an
1 - Set the special variable $ZEOF to indicate that you have reached the end of the file.
Write ^SYSLOG errors to the console log file at shutdown.property StopID as %Boolean [ InitialExpression = 0 ];
0 - Do not write ^SYSLOG errors.
1 - Write ^SYSLOG errors.
Sets $ZF process deletion behavior for OpenVMS STOP/ID system-wide.property SwitchOSdir as %Boolean [ InitialExpression = 0,Required ];
Using the OpenVMS STOP/ID command to delete a process can cause your system to fail. For this reason, the system on OpenVMS systems prevent you from deleting processes with STOP/ID. For processes that are executing $ZF functions, you may need to be able to delete a process from OpenVMS. Set this value to 0 if you need to terminate processes in a $ZF function.
0 - Enable deletion of processes with STOP/ID.
1 - Disable deletion of processes with STOP/ID.
Behavior of the current working O/S directory when changing namespaces.property SynchCommit as %Boolean [ InitialExpression = 0,Required ];
0 - When you change namespaces, the current working directory is changed to the directory of the default database of the new namespace. However, if this dataset is remote (networked to a different system), the current working directory is left unchanged.
1 - When you change namespaces, the current working directory remains unaltered no matter what namespace you switch to.
Synchronize TCOMMIT with the corresponding journal write operation.property TelnetNUL as %Boolean [ InitialExpression = 0 ];
0 - TCOMMIT does not wait for the write operation to complete.
1 - TCOMMIT does not complete until the journal data write operation completes. Note that setting this property to 1 will have performance implications.
Suppress Telnet NUL at end-of-line system-wide.property TruncateOverflow as %Boolean [ InitialExpression = 0,Required ];
This property disables or enables the issuance of a NUL character (ASCII 0) following a CR character (ASCII 13) at end-of-line during Telnet transmission on Windows systems only. It has no affect of Unix or VMS systems. On output, a Telnet network virtual terminal (NVT) performs the following default end-of-line behavior: either issues a CR (carriage return character) followed by a LF (linefeed character), or issues a CR (carriage return character) followed by a NUL character (if no LF is issued).
0 - do not suppress NUL.
1 - suppress NUL.
Enable theproperty Undefined as %Integer(MAXVAL=2,MINVAL=0,VALUELIST=",0,1,2") [ InitialExpression = 0,Required ];
error on numeric overflow.
When the system encounters a number larger than 9223372036854775807 E127 (or smaller than -9223372036854775808 E127) it throws the
error is thrown.
error is suppressed.
ObjectScript response to undefined variables.property UseNagleAlgorithm as %Boolean [ InitialExpression = 0,Required ];
0 - Always throw an
1 - If the undefined variable has subscripts, return a null string, but if the undefined variable is single-valued, throw an
2 - Always return a null string.
Enable the Nagle algorithm for Telnet (Windows only).property ViewPastData as %Boolean [ InitialExpression = 0,Required ];
0 - Nagle algorithm is disabled.
1 - Nagle algorithm is enabled.
Enable $VIEW command to examine data outside of the InterSystems IRIS memory area.property ZDateNull as %Boolean [ InitialExpression = 0,Required ];
0 - $VIEW command throws an error.
1 - $view command does not throw an error.
$ZDATE response to an invalid value.property ZaMode as %Boolean [ InitialExpression = 0,Required ];
0 - The valid range is from 0 through 2980013, inclusive, which corresponds to dates from 12/31/1840 through 12/31/9999. This range can be restricted by setting the $ZDATE mindate and maxdate parameters. If the date is invalid, the error message
or will be generated. The behavior can be overridden by supplying an erropt to the $ZDATE call.
1 - (ISM compatibility) The valid range is from 1 through 94232, inclusive, which corresponds to dates from 01/01/1841 through 12/30/2098. This date range is set for any $ZDATE function call which has three or fewer parameters. If a $ZDATE function call has more than three parameters, the valid date range is taken either from the $ZDATE mindate and maxdate parameters (if specified) or from the date range established for the current locale. If the date is invalid, $ZDATE will return the null string if you submit an invalid date. This behavior is set for any $ZDATE function call, regardless of the number of parameters.
Determines how the ZALLOCATE (ZA) and ZDEALLOCATE (ZD) commands behave, according to InterSystems IRIS rules or DSM-11 rules.
0 - InterSystems IRIS rules, which means that ZA and ZD behave exactly like LOCK + and LOCK -.
1 - DSM-11 rules, which means that ZA locks can only be unlocked by ZD and LOCK + locks can only be unlocked by LOCK.