%SYS
config Class Reference

This class allows you to modify and view the [config] section of the CPF file through programatic APIs. More...

Inheritance diagram for config:
Collaboration diagram for config:

Static Public Member Functions

_.Library.String GetConsoleFileName (_.Library.Status Status)
 Get the console.log file name being used by the system. More...
 
_.Library.Status Modify (_.Library.String Properties, _.Library.String CPFFile, _.Library.Integer Flags)
 Modify a sections properties in a CPF file. More...
 
_.Library.Boolean NoRestartOnActivate (_.Library.String Property)
 Answers the question "Does the property require a restart?".
 
- Static Public Member Functions inherited from CommonSingleMethods
_.Library.Status Get (_.Library.String Properties, _.Library.String CPFFile, _.Library.Integer Flags)
 Get a sections properties from a CPF file. More...
 
_.Library.Status GetList (_.Library.String CPFFile, _.Library.Integer Flags)
 Returns the properties from a section in a CPF file by value in $list format
More...
 
_.Library.ObjectHandle Open (_.Library.String CPFFile, _.Library.Integer concurrency, _.Library.Status Status, _.Library.Integer Flags)
 Open an instance of an section object in a CPF file. More...
 

Public Attributes

 BackoffDisabled
 Upon failure to allocate memory, do not retry with a reduced amount. More...
 
 ConsoleFile
 Location of the messages.log file. More...
 
 LargePagesDisabled
 If true, on platforms supporting large/huge pages, instructs the system not. More...
 
 LargePagesRequired
 If true, on platforms supporting large or huge pages, requires shared memory to. More...
 
 LibPath
 On Unix systems this sets the LD_LIBRARY_PATH environment variable to set. More...
 
 LockSharedMemory
 On platforms that support it, requests control structures, global and routine. More...
 
 LockTextSegment
 On some UNIX platforms, requests the text segment (executable image) to be. More...
 
 MaxServerConn
 Maximum number of clients that can access this server simultaneously. More...
 
 MaxServers
 Maximum number of ECP servers that can be accessed from this system. More...
 
 PythonPath
 Non instance relative sys.path element to be added to sys.path for all Embedded Python methods and Shell()
More...
 
 PythonRuntimeLibrary
 Absolute path & file name of the python runtime library that you want Embedded Python to use to override the
More...
 
 VMSConsoleTerminal
 Location of the VMS console terminal. More...
 
 ZFSize
 The total number of bytes allocated in virtual memory for $ZF input and output parameters, including strings. More...
 
 ZFString
 Number of bytes allocated for the each output byte array or string parameter on the $ZF heap. More...
 
 bbsiz
 Maximum amount of memory in KB that a process can use for local variables. More...
 
 console
 CPF file representation of console=VMSConsoleTerminal,ConsoleFile. More...
 
 errlog
 Maximum number of entries you want to store in the SYSLOG log file. More...
 
 globals
 List of configured sizes (in MBytes) for the global caches. More...
 
 globals16kb
 Number of 16KB buffers in MB. More...
 
 globals32kb
 Number of 32KB buffers in MB. More...
 
 globals4kb
 Number of 4KB buffers in MB. More...
 
 globals64kb
 Number of 64KB buffers in MB. More...
 
 globals8kb
 Number of 8KB buffers in MB. More...
 
 gmheap
 Shared Memory Heap Size in KB. More...
 
 history
 The number of entries held in the command line/read line recall buffer. More...
 
 ijcbuff
 Number of bytes allocated for each InterJob Communication Device. More...
 
 ijcnum
 The number of InterJob Communication devices. More...
 
 jrnbufs
 Size of journal buffer pool in MBs. More...
 
 locksiz
 An upper bound on the amount of shared memory heap (see. More...
 
 memlock
 When checked, this allows you to lock control structures in memory to improve access time. More...
 
 netjob
 Allows jobs from remote connections to run on your server. More...
 
 nlstab
 Enter the maximum number of collation tables. More...
 
 overview
   More...
 
 pijdir
 Directory to store the cluster image journal. More...
 
 routines
 Number of MB allocated for caching routine buffers. More...
 
 targwijsz
 When targwijsz is non-zero it is the desired size of the WIJ file in MB. More...
 
 udevtabsiz
 Maximum size in bytes of the device table. More...
 
 useresidentmem
 VMS system resident memory name. More...
 
 wijdir
 Enter the directory for the Write Image Journal file into this text box. More...
 
- Public Attributes inherited from CommonProperties
 CPFFile
 CPF file which the object maps to. More...
 
 Comments
 Embedded comments in the CPF file. More...
 
 Flags
 Flags governing how the object is processed when Save() is called. More...
 
 Name
 Name of the object instance. More...
 

Static Public Attributes

 PROPERTIESACTIVATENORESTART = None
 List of properties which do not require a restart to activate.
 
 PROPERTIESCOMBINEDINCPF = None
 List of properties in the CPF file which are constructed from multiple different. More...
 
 PROPERTIESMAYBEINCPF = None
 List of properties which may or may not be in the CPF file. More...
 
 PROPERTIESNOTINCPF = None
 List of properties which are in the class but not in the CPF file. More...
 
- Static Public Attributes inherited from CommonProperties
 DOMAIN = None
 This class contains properties which are included by classes which manipulate sections in the CPF file. More...
 

Detailed Description

This class allows you to modify and view the [config] section of the CPF file through programatic 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.

EXAMPLE:

    ; Use class methods to modify properties
    SYS>s Status=##Class(Config.config).Get(.Properties)
    SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status)
    SYS>zw Properties("MaxServers")
    Properties("MaxServers")=2
    SYS>s Properties("MaxServers")=3
    SYS>s Status=##Class(Config.config).Modify(.Properties)
    SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status)
    ; Now use Objects to modify properties
    SYS>s Obj=##Class(Config.config).Open()
    SYS>w Obj.MaxServers
    3
    SYS>s Obj.MaxServers=4
    SYS>s Status=Obj.Save()
    SYS>i 'Status w !,"Error="_$SYSTEM.Status.GetErrorText(Status)
    

Member Function Documentation

◆ GetConsoleFileName()

_.Library.String GetConsoleFileName ( _.Library.Status  Status)
static

Get the console.log file name being used by the system.


This will always return a filename. If a Status error is returned, the name of the file returned will be $zu(12)_messages.log. Note that this will return the messages.log file the system currently has open, not the one which is defined in the CPF file and not yet activated.

◆ Modify()

_.Library.Status Modify ( _.Library.String  Properties,
_.Library.String  CPFFile,
_.Library.Integer  Flags 
)
static

Modify a sections properties in a CPF file.



Parameters:
Properties (byref) - List of the properties to modify in Properties(Name)=Value format. See the subclass for a list of valid properties. If a specific property is not passed in the properties array, the value is not modified.
CPFFile (byref) - Name of the CPF file to use, Default=current active CPF file. The file must have a .CPF file extension if specified.
Flags - Bit string of options to perform if the object is later saved with the Save() method. See the <METHOD>Open</METHOD> method for values.

Return values:
CPFFile (byref) - Name of the CPF file the modification was made in.

Reimplemented from CommonSingleMethods.

Member Data Documentation

◆ PROPERTIESCOMBINEDINCPF

PROPERTIESCOMBINEDINCPF = None
static

List of properties in the CPF file which are constructed from multiple different.

properties in this class.

◆ PROPERTIESMAYBEINCPF

PROPERTIESMAYBEINCPF = None
static

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. For example, the property "Asyncwij" will have a Boolean "AsyncwijPresent" property associated with it.
These properties are for InterSystems use only.

◆ PROPERTIESNOTINCPF

PROPERTIESNOTINCPF = None
static

List of properties which are in the class but not in the CPF file.


These are properties which are combined with other properties to create a property in the CPF file.

◆ BackoffDisabled

BackoffDisabled

Upon failure to allocate memory, do not retry with a reduced amount.

If shared

memory cannot be allocated at its configured size, startup is aborted.

Makes up part of the CPF parameter memlock=

Modifying this property will require a restart of the system to make it active.  

◆ ConsoleFile

ConsoleFile

Location of the messages.log file.


Null means the MGR directory.
This is the second piece of the CPF parameter console=VMSConsoleTerminal,ConsoleFile

Modifying this property does not require a restart of the system to make it active.  

◆ LargePagesDisabled

LargePagesDisabled

If true, on platforms supporting large/huge pages, instructs the system not.

to use them for global and routine buffers.

Makes up part of the CPF parameter memlock=

Modifying this property will require a restart of the system to make it active.  

◆ LargePagesRequired

LargePagesRequired

If true, on platforms supporting large or huge pages, requires shared memory to.

be allocated from them. Ignored on other platforms or if large pages are disabled by <PROPERTY>LargePagesDisabled</PROPERTY>. If true and not ignored, and memory cannot be allocated in large/huge pages, startup is aborted. Note: startup may retry with a small reduction in memory size, but the extent to which memory may be reduced is smaller than would be allowed in absence of this flag. You can disable this retry altogether with <PROPERTY>BackoffDisabled</PROPERTY>.

Makes up part of the CPF parameter memlock=

Modifying this property will require a restart of the system to make it active.  

◆ LibPath

LibPath

On Unix systems this sets the LD_LIBRARY_PATH environment variable to set.

search paths for third-party shared libraries. Ignored on Windows and VMS.

Modifying this property does not require a restart of the system to make it active.  

◆ LockSharedMemory

LockSharedMemory

On platforms that support it, requests control structures, global and routine.

buffers to be locked in physical memory. When using large or huge pages for shared memory, there is no need to set this property since they are automatically locked in physical memory.

Makes up part of the CPF parameter memlock=.

Modifying this property will require a restart of the system to make it active.  

◆ LockTextSegment

LockTextSegment

On some UNIX platforms, requests the text segment (executable image) to be.

locked in physical memory.

Makes up part of the CPF parameter memlock=

Modifying this property will require a restart of the system to make it active.  

◆ MaxServerConn

MaxServerConn

Maximum number of clients that can access this server simultaneously.




Modifying this property will require a restart of the system to make it active.  

◆ MaxServers

MaxServers

Maximum number of ECP servers that can be accessed from this system.




Modifying this property does not require a restart of the system to make it active if memory is available in the shared memory heap.  

◆ PythonPath

PythonPath

Non instance relative sys.path element to be added to sys.path for all Embedded Python methods and Shell()

Also see iris_site.py (in the instance directory) and Embedded Python documentation for other ways to affect sys.path.

Modifying this property does not require a restart of the system to make it active.  

◆ PythonRuntimeLibrary

PythonRuntimeLibrary

Absolute path & file name of the python runtime library that you want Embedded Python to use to override the

default Embedded Python that Intersystems tests with.
Example on Ubuntu 22:
/lib/x86_64-linux-gnu/libpython3.11.so.1.0

Modifying this property does not require a restart of the system to make it active.  

◆ VMSConsoleTerminal

VMSConsoleTerminal

Location of the VMS console terminal.


This is the first piece of the CPF parameter console=VMSConsoleTerminal,ConsoleFile

Modifying this property does not require a restart of the system to make it active.  

◆ ZFSize

ZFSize

The total number of bytes allocated in virtual memory for $ZF input and output parameters, including strings.


This is the second piece of the CPF parameter zfheap=ZFString,ZFSize

Modifying this property does not require a restart of the system to make it active.  

◆ ZFString

ZFString

Number of bytes allocated for the each output byte array or string parameter on the $ZF heap.


This is the First piece of the CPF parameter zfheap=ZFString,ZFSize

Modifying this property does not require a restart of the system to make it active.  

◆ bbsiz

bbsiz

Maximum amount of memory in KB that a process can use for local variables.

and similar process-private application memory. This is the value of the $zstorage system special variable when a process starts up.

-1 means "unlimited" (limited only by the implementation maximum of ~2TB).

Modifying this property does not require a restart of the system to make it active.  

◆ console

console

CPF file representation of console=VMSConsoleTerminal,ConsoleFile.


 

◆ errlog

errlog

Maximum number of entries you want to store in the SYSLOG log file.


The log file will expire old entries when this limit is reached.

Modifying this property will require a restart of the system to make it active.  

◆ globals

globals

List of configured sizes (in MBytes) for the global caches.


Element #1 corresponds to 2KB blocks (deprecated, always 0 now).
Element #2 corresponds to 4KB blocks.
Element #3 corresponds to 8KB blocks.
Element #4 corresponds to 16KB blocks.
Element #5 corresponds to 32KB blocks.
Element #6 corresponds to 64KB blocks.

If all values are zero, as they are by default, the system selects a value based on physical memory. This is designed so that newly installed system can perform reasonably well, and it is intended to be changed.  

◆ globals16kb

globals16kb

Number of 16KB buffers in MB.




Modifying this property will require a restart of the system to make it active.  

◆ globals32kb

globals32kb

Number of 32KB buffers in MB.




Modifying this property will require a restart of the system to make it active.  

◆ globals4kb

globals4kb

Number of 4KB buffers in MB.




Modifying this property will require a restart of the system to make it active.  

◆ globals64kb

globals64kb

Number of 64KB buffers in MB.




Modifying this property will require a restart of the system to make it active.  

◆ globals8kb

globals8kb

Number of 8KB buffers in MB.




Modifying this property will require a restart of the system to make it active.  

◆ gmheap

gmheap

Shared Memory Heap Size in KB.

The shared memory heap is a pool of memory within the large shared memory segment allocated at startup. It is used by many subsystems that require dynamic shared memory reservations (from within this fixed-size heap), including the lock table, dejournaling, NLS tables, and more.

A value of 0 (the default) allows the system to choose a value based on the sizing info inferred from other parameters, and is designed to be sufficient for most systems. Small non-zero values are subject to internal lower limits.

Modifying this property requires a restart of the system to make it active.  

◆ history

history

The number of entries held in the command line/read line recall buffer.




Modifying this property does not require a restart of the system to make it active.  

◆ ijcbuff

ijcbuff

Number of bytes allocated for each InterJob Communication Device.




Modifying this property will require a restart of the system to make it active.  

◆ ijcnum

ijcnum

The number of InterJob Communication devices.




Modifying this property will require a restart of the system to make it active.  

◆ jrnbufs

jrnbufs

Size of journal buffer pool in MBs.

Modifying this property will require a restart of the system to make it active. The maximum value is 1024 and the minimum, 16 on Unicode platforms or 8 otherwise.

 

◆ locksiz

locksiz

An upper bound on the amount of shared memory heap (see.

<PROPERTY>gmheap</PROPERTY>) that is allowed to be consumed by the lock table as a result of application-level locks. A value of 0 is appropriate for most systems, and allows the lock table to grow unlimited up to the available shared memory heap space as the application demands (lock memory can be freed to the Shared Memory Heap if it's no longer used). If a different value is selected, it acts as an upper limit in bytes.

Modifying this property does not require a restart of the system to make it active.  

◆ memlock

memlock

When checked, this allows you to lock control structures in memory to improve access time.


CPF file representation of memlock=  

◆ netjob

netjob

Allows jobs from remote connections to run on your server.




Modifying this property does not require a restart of the system to make it active.  

◆ nlstab

nlstab

Enter the maximum number of collation tables.

This instructs InterSystems IRIS to reserve space for that many tables at startup.<sp>



Modifying this property will require a restart of the system to make it active.  

◆ overview

overview

 

 

◆ pijdir

pijdir

Directory to store the cluster image journal.




Modifying this property will require a restart of the system to make it active.  

◆ routines

routines

Number of MB allocated for caching routine buffers.




Modifying this property will require a restart of the system to make it active.  

◆ targwijsz

targwijsz

When targwijsz is non-zero it is the desired size of the WIJ file in MB.

The maximum effective value is the size of the buffer pool. While it would not hurt to have a larger WIJ, it does not help anything. The minimum value is 100MB. When the size of the global buffer pool is less than 100MB at startup the WIJ is sized to hold the entire buffer pool; the minimum size of the WIJ at startup is either 100MB or the size required to hold the entire buffer pool (which is slightly larger than the actual size of the buffer pool). If an existing WIJ is larger than the specified target, the size of the WIJ is not reduced.

When the target size is larger than the size of the existing WIJ, the system will expand the WIJ while the write daemon is idle up to the specified target (but not to exceed the actual size of the WIJ needed to hold the entire buffer pool). The system can expand the WIJ past the target size if that becomes necessary to complete a write cycle.

Leaving this value set to 0 is fine. The system will grow the WIJ as needed based on activity. Generally the WIJ quickly reaches whatever size is needed to support the activity level/the size of the buffer pool. The purpose of setting a target size is that if space has been reserved for the WIJ, setting a target allows the WIJ to grow to occupy that space early on in the life of the system. Since user activity can be blocked if the WIJ is too small (the WIJ will try to expand if this happens), setting the target may lead to a better user experience after startup. If the target is set to 0, the WIJ may quickly expand as needed however users may be blocked at times when this happens until the WIJ reaches the size required by the system.  

◆ udevtabsiz

udevtabsiz

Maximum size in bytes of the device table.




Modifying this property will require a restart of the system to make it active.  

◆ useresidentmem

useresidentmem

VMS system resident memory name.




Modifying this property will require a restart of the system to make it active.  

◆ wijdir

wijdir

Enter the directory for the Write Image Journal file into this text box.




Modifying this property does not require an instance restart to activate the change except on cluster members.