home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC Treasures, Inc.
/
pctreasures.mdf
/
WINDOWS
/
adabas
/
f_0001
/
env
/
xparam.hlp
< prev
Wrap
Text File
|
1999-12-10
|
40KB
|
1,712 lines
iv###prdjffir 11 1998-05-06
iv###KERNEL 11.02.00 DATE 1999-12-03
il#PRINTERNAME#c18#
hi,m,ac#NUM_BUFREADER#int4#1#
CONSTRAINT
" $0 <=
" $64 >=
" AND
This parameter describes the number of bufreader awake
to flush the DATA_CACHE
(mandatory, 4 byte integer)
hi,m,ac#BR_SLEEPTIME#int4#10#
CONSTRAINT
" $1 <=
" $100000 >=
" AND
This parameter describes the sleeptime before the bufreader awake to
flush the DATA_CACHE
(mandatory, 4 byte integer)
hi,m,ac#BR_IF_IOCNT_LT#int4#300#
CONSTRAINT
" $0 <=
" $100000 >=
" AND
IF MAXDATADEVSPACES = $1
CALC BR_SLEEPTIME $30 *
IF MAXDATADEVSPACES > $1
CALC MAXDATADEVSPACES $1 - BR_SLEEPTIME * $30 *
EXPLAIN
"
" If the bufreader awaken, it should only flush the buffer,
" if the difference of the DATA IO COUNT between the BR_SLEEPTIME
" is lower then this parameter.
see Explain
(mandatory, 4 byte integer)
m,hi#DATA_CACHE_REGIONS#int2#8#
CONSTRAINT
" $1 <=
" $64 >=
" AND
EXPLAIN
"
" DATA_CACHE_REGIONS help to improve simultaneity when working on
" the data cache.
" Data cache data striping takes place on the data cache regions.
"
" The lower and upper limits are:
" 1 <= DATA_CACHE_REGIONS <= 64
Number of autonomous units into which the data cache will be broken up.
(mandatory, 2 byte integer)
m,hi#TREE_REGIONS#int2#8#
CONSTRAINT
" $1 <=
" $64 >=
" AND
EXPLAIN
"
" TREE_REGIONS help to improve simultaneity when working with the
" lock manager administering access to B* tree nodes.
"
" The lower and upper limits are:
" 1 <= TREE_REGIONS <= 64
Number of autonomous units for checking lock collisions on B* trees
(mandatory, 2 byte integer)
m,hi,nx,nc#TASKSALL#int2#1024#
Maximum number of tasks (user + server) per ADABAS kernel
(mandatory, 2 byte integer)
m,hi,nx,nc#MAXTASKS#int2#350#
Maximum number of tasks (user + server) per UKP/UKT
(mandatory, 2 byte integer)
m,hi,nx,nc#MAXUKPS#int2#32#
Maximum number of UKPs/UKTs
(mandatory, 2 byte integer)
m#SERVERDB#c18#
Logical name of the ADABAS database
(mandatory, char(8))
iv###GRP HIDDEN KernelDevices
cl,m,cs#SYSDEVSPACE#c40#sys.dev#
Path name of the SYSTEM DEVSPACE.
This name must be identical to the name of the
SYSTEM DEVSPACE to be specified when
configuring the database with UTILITY.
Before starting the database, the devspaces must exist!
All devspace names are relative to the RUNDIRECTORY.
Example:
If you name your system devspace "../SYS", then a system devspace
called "SYS" will be expected in the directory prior to
the RUNDIRECTORY.
(mandatory, char(40))
cl,cs#MIRR_SYSDEVSPACE#c40#
Path name of the mirrored SYSTEM DEVSPACE
Before starting the database, the devspaces must exist!
All devspace names are relative to the RUNDIRECTORY.
(char(40))
cl,m,cs#TRANSACTION_LOG#c40#log.dev#
Path name of the TRANSACTION LOG DEVSPACE
This parameter must get the name to be specified
for the TRANSACTION LOG when configuring the
database with UTILITY.
Before starting the database, the devspaces must exist!
All devspace names are relative to the RUNDIRECTORY.
Example:
If you name this log devspace "../TRANSLOG", then a devspace
called "TRANSLOG" will be expected in the directory prior to
the RUNDIRECTRY.
(mandatory, char(40))
cl,cs#ARCHIVE_LOG#c40#
Path name of an ARCHIVE LOG DEVSPACE
This parameter must get the name to be specified
for the first ARCHIVE LOG when configuring the
database with UTILITY.
Before starting the database, the devspaces must exist!
All devspace names are relative to the RUNDIRECTORY.
Example:
If you name this log devspace "../ARCHLOG1", then a devspace
called "ARCHLOG1" will be expected in the directory prior to
the RUNDIRECTRY.
(mandatory, char(40))
cl,cs#MIRR_ARCHIVE_LOG#c40#
Path name of a mirrored ARCHIVE LOG DEVSPACE
Before starting the database, the devspaces must exist!
All devspace names are relative to the RUNDIRECTORY.
(char(40))
iv###ENDGRP
iv###GRP HIDDEN ControlUser
m#CONTROLUSERID#c18#
Name of the CONTROL user
The CONTROLUSER is authorized to use the component CONTROL.
(mandatory, char(18))
m#CONTROLPASSWORD#crypt#
The password of the CONTROLUSER
(mandatory, char(18))
iv###ENDGRP
iv###GRP Limits
m#MAXDEVSPACES#int2#3#
CONSTRAINT $3 <=
" $145 >=
" AND
EXPLAIN
"
" MAXDEVSPACES is the sum of all system, data, and log devspaces
" including the mirrored devspaces.
" The devspace processes/threads are only started when the corresponding
" devspaces are being attached.
"
" The lower and upper limits are:
"
" 3 <= MAXDEVSPACES <= 145
Number of structures to be created for devspace processes/threads.
(mandatory, 2 byte integer)
m#MAXDATADEVSPACES#int2#1#
CONSTRAINT $1 <=
" $64 >=
" AND
" MAXDEVSPACES $2 - >=
" AND
EXPLAIN
"
" MAXDATADEVSPACES should be greater than the number of data devspaces
" being used in order to be able to add at least one data devspace
" using CONTROL --> ADD DATADEVSPACE while the database is operative.
"
" Data striping takes place on the data devspaces.
"
" The lower and upper limits are:
"
" 1 <= MAXDATADEVSPACES <= 64
" and
" MAXDATADEVSPACES <= MAXDEVSPACES - 2
User-defined upper limit of the number of data devspaces.
(mandatory, 2 byte integer)
m#MAXSERVERDB#int2#1#
CONSTRAINT
" $1 <=
" $2048 >=
" AND
EXPLAIN
"
" For a stand-alone configuration, set MAXSERVERDB to 1.
"
" For a distributed configuration consisting of N SERVERDBs
" set MAXSERVERDB to N, where 2 <= N <= 2048.
Number of SERVERDBs in a distributed configuration,
for a stand-alone configuration, set MAXSERVERDB = 1 .
(mandatory, 2 byte integer)
m#MAXBACKUPDEVS#int2#2#
CONSTRAINT
" $1 <=
" $16 >=
" AND
EXPLAIN
"
" The lower and upper limits are:
" 1 <= MAXBACKUPDEVS <= 16
"
"
Maximum number of backup devices (e.g. tape drives) used in
parallel for SAVE/RESTORE.
(mandatory, 2 byte integer)
m,hi#ASYNIO_BLOCK_COUNT#int2#8#
CONSTRAINT
" $4 <=
" $16 >=
" AND
EXPLAIN
"
" 4 <= ASYNIO_BLOCK_COUNT <= 16
This block count (in 4 KB pages) is the size for
one asynchronous I/O access.
In the case of a SAVE/RESTORE DATA QUICK command, the ASYNIO_BLOCK_COUNT
defines the size of one buffer of the save restore region queue.
The block count must be the same for SAVE and RESTORE.
(mandatory, 2 byte integer)
hi,xo,nx#MAXDISTRIBSERVER#int2#3#
m,hi,nx,nc#MAXSERV#int2#
CALC MAXBACKUPDEVS MAXDATADEVSPACES + DATA_CACHE_REGIONS +
" MAXSERVERDB $2 * +
IF TASKSALL MAXUSERTASKS - <
CALC TASKSALL MAXUSERTASKS -
IF MAXDISTRIBSERVER >
CALC MAXDISTRIBSERVER
Used for the calculation of MAXSERVERTASKS
m#MAXSERVERTASKS#int2#6#
IF MAXSERV >
CALC MAXSERV
IF MAXSERVERDB = $1
FORCE MAXSERV
EXPLAIN
"
" MAXSERVERTASKS should not be configured greater than is actually
" required, because this parameter has great influence on the usage
" of address space.
"
" The lower and upper limits are:
" MAXBACKUPDEVS + MAXDATADEVSPACES * 2 + MAXSERVERDB * 2 <= MAXSERVERTASKS
" MAXSERVERTASKS <= 1024 - MAXUSERTASKS
"
" For a stand-alone configuration ( MAXSERVERDB = 1)
" MAXSERVERTASKS is set to MAXBACKUPDEVS + MAXDATADEVSPACES * 2 + 2
"
Maximum number of server tasks for servicing distributed
ADABAS requests and for parallel SAVE/RESTORE.
(mandatory, 2 byte integer)
xo,nx#MAXUSER#int2#1#
m#MAXUSERTASKS#int2#50#
IF MAXUSER <> $1
CALC MAXUSER
CONSTRAINT $1 <=
" TASKSALL MAXSERVERTASKS - >=
" AND
EXPLAIN
"
" MAXUSERTASKS should not be configured greater than is actually
" required, because this parameter has great influence on the usage
" of address space.
"
" The lower and upper limits are:
" 1 <= MAXUSERTASKS <= 1024 - MAXSERVERTASKS
"
Maximum number of simultaneously active users (database sessions)
(mandatory, 2 byte integer)
m#MAXLOCKS#int4#2500#
CONSTRAINT $500 <=
" $2325000 >=
" AND
IF MAXUSERTASKS MAXSERVERDB * MAXSERVERTASKS + $10 / $1 + $50 * >
CALC MAXUSERTASKS MAXSERVERDB * MAXSERVERTASKS + $10 / $1 + $50 *
EXPLAIN
"
" A suitable value depends on the used application, the number of
" users and the isolation level.
"
" Use the database monitoring to obtain information about the number
" of LOCK LIST MAX USED ENTRIES, LOCK LIST ESCALATIONS,
" LOCK LIST AVG USED ENTRIES.
"
" The lower and upper limits are:
" 500 <= MAXLOCKS <= 2325000
" ((MAXUSERTASKS * MAXSERVERDB + MAXSERVERTASKS) DIV 10 + 1) * 50
" <= MAXLOCKS
"
Maximum number of guaranteed, simultaneous row locks or row lock requests
(mandatory, 4 byte integer)
iv### Comment:
There should be 10 LOCK entries per transaction
hi,m#MAXTRANS#int4#3#
IF MAXUSERTASKS MAXSERVERDB * $1 + $1 + MAXSERVERTASKS + >
CALC MAXUSERTASKS MAXSERVERDB * $1 + $1 + MAXSERVERTASKS +
EXPLAIN
"
" MAXTRANS >= MAXUSERTASKS + 1 + 1
"
Maximum number of concurrent transactions
(mandatory, 4 byte integer)
iv### Comment: Number of transactions
Stand alone:
Minimum MAXUSERTASKS + 1<util> + 1<ROLLBACK>
Maximum MAXUSERTASKS + 1<util> + 1<ROLLBACK>
Distribution:
Minimum MAXUSERTASKS + 1<util> + 1<ROLLBACK> + MAXSERVERTASKS
Maximum MAXUSERTASKS + 1<util> + 1<ROLLBACK> + MAXSERVERTASKS
+ (MAXSERVERDB - 1) * MAXUSERTASKS(Pending Tr.)
m#MAXDATAPAGES#int4#10000#
CONSTRAINT $3000 <=
" $2147483647 >=
" AND
EXPLAIN
"
" MAXDATAPAGES determines the converter size (system devspace part)
"
" MAXDATAPAGES should be greater than the sum of the sizes of the
" data devspaces being used in order to be able to add at least one
" data devspace using CONTROL --> ADD DATADEVSPACE
" while the database is operative.
"
" The lower and upper limits are:
" 3000 <= MAXDATAPAGES <= 2147483647
"
Combined size of all DATA DEVSPACEs (in 4 KB pages) including
a safety factor
(mandatory, 4 byte integer)
m,hi#_NET_MINTIMEOUT#int4#0#
Minimum value in seconds for the non-configurable, internal timeouts
occurring during communication within a distributed database
(mandatory, 4 byte integer)
m,hi#MAXIOTHREADS#int2#2#
CONSTRAINT $10 >=
" $1 <=
" AND
EXPLAIN
"
" These I/O processes/threads execute asynchronous I/O.
"
" MAXIOTHREADS is significant for I/O performance.
"
" The lower and upper limits are:
" 1 <= MAXIOTHREADS <= 10
Number of I/O processes/threads per system and data devspace
(mandatory, 2 byte integer)
m,hi#ALLOW_SINGLE_IO#c8#YES#
CONSTRAINT $yes =
" $YES =
" $no =
" $NO =
" OR
" OR
" OR
EXPLAIN
"
" 'YES' means: If a UKP/UKT has nothing to do as I/O, I/O will
" be made by itself
" 'NO' means: Any I/O will be made via I/O processes/threads
see Explain
(mandatory, char(8))
hi#IO_THREAD_QUEUE#int2#2#
EXPLAIN
"
" As soon as >= IO_THREAD_QUEUE requests are in the queue of an
" I/O process/thread, the attempt is made to assign each additional
" I/O request to another I/O process/thread.
"
" To be able to use IO_THREAD_QUEUE, MAXIOTHREADS must be greater
" than 1.
"
" The lower and upper limits are:
" 0 <= IO_THREAD_QUEUE
This parameter defines the usage level of the I/O queues from which a
request is assigned to another I/O process/thread.
(2 byte integer)
m#MAXCPU#int2#1#
CONSTRAINT
" $1 <=
" MAXUKPS >=
" AND
EXPLAIN
"
" The value of MAXCPU has a great influence on the distribution of
" the database kernel tasks to operating system processes (UKPs)/
" threads (UKTs).
"
" Depending on whether the computer is only used as database server,
" MAXCPU should correspond to the actual number of CPUs of the machine;
" otherwise, the CPUs to be used by applications must be subtracted.
"
" The lower and upper limits are:
" 1 <= MAXCPU <= 32
Number of CPUs this SERVERDB is allowed to exploit on this system.
( MAXCPU <= actual number of CPUs )
(mandatory, 2 byte integer)
nx,xo#UKPS#int2#
CALC MAXUSERTASKS $1 - MAXTASKS / $1 + $2 +
IF MAXCPU $2 + >
CALC MAXCPU $2 +
IF MAXUKPS <
CALC MAXUKPS
Used for the calculation of US
nx,xo#US#int2#
CALC MAXUSERTASKS $1 - UKPS $2 - / $1 +
Used for the calculation of TASKCLUSTER
hi,m#MAXUSERSTACK#int2#200#
IF $200 >
FORCE $200
CONSTRAINT $200 <=
" $250 >=
" AND
EXPLAIN
"
" The lower and upper limits are:
" 200 <= MAXUSERSTACK <= 250
"
" MAXUSERSTACK should be set to 200.
Maximum size in KB of a task stack
(mandatory, 2 byte integer)
hi,m#DEFAULT_LRU#c8#YES#
CONSTRAINT $yes =
" $YES =
" $no =
" $NO =
" OR
" OR
" OR
EXPLAIN
"
" 'YES' means: The last part of the DATA CACHE will be used for scans.
" 'NO' means: The complete DATA CACHE will be used for scans.
" This setting is advantageous if small tables are to
" be kept completely in the data cache.
The parameter specifies whether scans are to be favored in the data cache
(mandatory, char(8))
iv###ENDGRP
m,hi#REMOTE_ACCESS#c8#NO#
CONSTRAINT $yes =
" $YES =
" $no =
" $NO =
" OR
" OR
" OR
IF MAXSERVERDB <> $1
FORCE $YES
EXPLAIN
"
" 'YES' means: Applications from other hosts will use the NETWORK processes.
" 'NO' means: Applications from other hosts will use the XSERVER.
"
" For a distributed configuration REMOTE_ACCESS must be set to 'YES'.
see Explain
(mandatory, char(8))
hi,m,cs,ac#TASKCLUSTER#c64#bw;2000*sv,br;l1;l2;sn,rc,ut;ti,30000*us;compress#
IF $1 = MAXCPU
" $allinone <>
" $ALLINONE <>
" AND
" AND
CALC
" $bw;2000*sv,br;l1;l2;sn,rc,ut;ti,30000*us;compress
IF $1 < MAXCPU
CALC
" $bw;2000*sv,br;l1;l2;sn,rc,ut;ti, US $*us;equalize +
EXPLAIN
"
" Abbreviations of the database kernel tasks:
" ti = timeout l1 = logwriter1 l2 = logwriter2
" bw = bufwriter br = bufreader sn = sender
" rc = receiver ut = utility sv = server us = user
" The last piece of information on the line defines the strategy for the
" distribution of the database kernel tasks to the processes/threads
" during the runtime of the database kernel.
" 'compress' means: Every process/thread is filled up to its capacity.
" 'equalize' means: The tasks are distributed to all processes/threads.
" 'allinone' means: There is an internal tasking in exactly one
" process/thread.
Specifies the distribution of database kernel tasks to operating
system processes/threads.
(mandatory, char(64))
hi,m#DISPATCHER_STRAT#int2#2#
CONSTRAINT $3 >
" $0 <=
" AND
EXPLAIN
"
" 1 = FAVOR_LONG
" started SQL statements will come faster to the command end;
" new SQL statements will be started after a while.
"
" 2 = FAVOR_SHORT
" SQL statements needing a long time will need more time;
" SQL statements needing a short time will need less time.
"
" 0 = the dispatcher decides between strategy 1 and 2 by itself
" ( dynamically )
This parameter modifies the search strategy of the dispatcher
to find a runnable task.
(2 byte integer)
ac,m,hi#EXCL_QUE_WHEN_PRIO#c8#NO#
CONSTRAINT $yes =
" $YES =
" $no =
" $NO =
" OR
" OR
" OR
IF MAXCPU > $1
CALC $YES
ELSE
CALC $NO
EXPLAIN
"
" This parameter specifies whether or not a priority task that does
" not obtain a critical region at once is to be favored when another
" task frees this region.
"
" EXCL_QUE_WHEN_PRIO = 'YES' oder 'NO'
"
" 'YES' means: If a priority task tries to obtain a region used by
" another task (collision), the priority task will add
" itself to a special queue in order to obtain the region
" as soon as the other task frees the region.
"
" 'NO' means: see parameter LOOP_REGION_COLL
"
" Default calculation, can be overridden
" IF MAXCPU > 1
" THEN
" EXCL_QUE_WHEN_PRIO := 'YES'
" ELSE
" EXCL_QUE_WHEN_PRIO := 'NO'
see Explain
(mandatory, char(8))
ac,m,hi#REG_DIRTY_READ#c8#NO#
CONSTRAINT $yes =
" $YES =
" $no =
" $NO =
" OR
" OR
" OR
IF MAXCPU > $1
CALC $YES
ELSE
CALC $NO
EXPLAIN
"
" REG_DIRTY_READ = 'YES' oder 'NO'
"
" 'YES' means: Collision test with dirty read before test and set operator
" 'NO' means: Collision test with test and set operator
"
" Default calculation, can be overridden
" IF MAXCPU > 1
" THEN
" REG_DIRTY_READ := 'YES'
" ELSE
" REG_DIRTY_READ := 'NO'
This parameter modifies the collision test of a task when entering a
critical region
(mandatory, char(8))
ac,m,hi#ENDEXCL_BUSY_WAIT#c8#NO#
CONSTRAINT $yes =
" $YES =
" $no =
" $NO =
" OR
" OR
" OR
IF MAXCPU > $1
CALC $YES
ELSE
CALC $NO
EXPLAIN
"
" This parameter specifies whether BUSY WAITING is to be performed
" after a failed test and set when exiting from a critical region.
"
" ENDEXCL_BUSY_WAIT = 'YES' oder 'NO'
"
" 'YES' means: BUSY WAITING if test and set (to free the region) failed
" 'NO' means: RESCHEDULE if test and set (to free the region) failed
"
" Default calculation, can be overridden
" IF MAXCPU > 1
" THEN
" ENDEXCL_BUSY_WAIT := 'YES'
" ELSE
" ENDEXCL_BUSY_WAIT := 'NO'
see Explain
(mandatory, char(8))
hi,m,ac#DISP_LOOPS_BEF_SL#int4#1#
CONSTRAINT $1 <=
" $10000 >=
" AND
EXPLAIN
"
" This parameter describes the maximum number of dispatcher loops
" to search its queues for a new task.
" When this number is reached, this UKP/UKT voluntarily interrupts
" itself using the semop systemcall.
"
" The lower and upper limits are:
" 1 <= DISP_LOOPS_BEF_SL <= 10000
see Explain
(mandatory, 4 byte integer)
ac,m,hi#DYN_DISP_QUE_SRCH#c8#NO#
CONSTRAINT $yes =
" $YES =
" $no =
" $NO =
" OR
" OR
" OR
IF MAXCPU > $1
CALC $YES
ELSE
CALC $NO
EXPLAIN
"
" DYN_DISP_QUE_SRCH = 'YES' oder 'NO'
"
" 'YES' means: A message is signalled to another UKP/UKT to interrupt
" the running task in favor of a priority task.
" 'NO' means: This parameter has no effect.
"
" Default calculation, can be overridden
" IF MAXCPU > 1
" THEN
" DYN_DISP_QUE_SRCH := 'YES'
" ELSE
" DYN_DISP_QUE_SRCH := 'NO'
see Explain
(mandatory, char(8))
hi,m,ac#LOOP_REGION_COLL#int4#0#
CONSTRAINT $0 <=
IF $1 = MAXCPU
CALC $0
IF $1 < MAXCPU
CALC MAXCPU $1000 *
EXPLAIN
"
" This parameter describes the maximum number of attempts made to
" obtain a region used by another task ( collision ).
" If the attempt fails, the UKP/UKT falls asleep (semop).
"
" Set this parameter to a value > 0 ONLY for MULTIPROCESSOR computers.
"
" Default calculation, can be overridden
" IF MAXCPU = 1
" THEN
" LOOP_REGION_COLL := 0
" ELSIF MAXCPU > 1
" LOOP_REGION_COLL := MAXCPU * 1000
see Explain
(mandatory, 4 byte integer)
hi,m,ac#REG_LOCK_SLICE#int4#3000#
CONSTRAINT
" $1 <=
" $10000 >=
" AND
EXPLAIN
"
" This parameter describes the maximum number of times the task can
" try to get a region without being interrupted by another task in
" this UKP/UKT. When this number is reached, the task voluntarily
" interrupts itself and goes to dispatch.
"
" The lower and upper limits are:
" 1 <= REG_LOCK_SLICE <= 10000
see Explain
(mandatory, 4 byte integer)
hi,ac,m#PRIO_TASK#int2#75#
IF $1 = MAXCPU
CALC $75
ELSE
CALC $79
CONSTRAINT $256 >=
" $0 <=
" AND
"
EXPLAIN
" 0: No priority will be given to any task.
" 1: Priority relative to COMMANDS will be given to tasks
" WITHIN ONE UKP.
" 2: Priority relative to COMMANDS will also be given to tasks of
" OTHER UKPs.
" 4: Priority relative to UKP <-> UKP communication will be given
" to tasks.
" 8: Priority tasks will be put to the first place when enqueuing in
" the COM, REX and RAV queue.
" 64: PRIO 2 ALLOWED
" 128: Priority relative to the COMMIT command will be given to tasks.
"
" Default calculation, can be overridden
" IF MAXCPU = 1
" THEN
" PRIO_TASK := 75
" ELSE
" PRIO_TASK := 79
PRIO_TASK specifies in which way priority will be given to tasks and/or
commands. The value of PRIO_TASK is the sum of desired priorities.
(mandatory, char(8))
hi,m,cs#DELAY_COMMIT#c8#no#
CONSTRAINT $no =
" $yes =
" OR
EXPLAIN
"
" DELAY_COMMIT = 'yes' oder 'no'
"
" 'yes' means: The task will wait for some time after releasing the locks
" when executing the commit statement.
" In this way, the probability of group commits will be
" increased.
" 'no' means: This parameter has no effect.
see Explain
(mandatory, char(8))
hi,m#DELAY_LOGWRITER#int2#0#
CONSTRAINT $100 >
" $0 <=
" AND
EXPLAIN
"
" > 0 = The logwriter waits for more log entries if the first log page
" in the log queue is not full
see Explain
(mandatory, 2 byte integer)
iv###GRP Caches
xo,nx#MAXDATACACHE#int4#5000#
CALC MAXUSERTASKS $10 *
IF $200 >=
CALC $200
Used for the calculation of DATA_CACHE_PAGES
m#DATA_CACHE_PAGES#int4#5000#
IF MAXDATACACHE >
CALC MAXDATACACHE
IF MAXDATAPAGES <
CALC MAXDATAPAGES
IF DATA_CACHE_PAGES $10 / $10 * <>
CALC DATA_CACHE_PAGES $10 / $1 + $10 *
EXPLAIN
"
" The value for DATA_CACHE_PAGES depends on the database size, the number
" of concurrent users, and the database applications in use.
"
" Use the database monitoring to obtain information about the
" data cache hit rate.
"
" The lower and upper limits are:
" 200 <= DATA_CACHE_PAGES <= MAXDATAPAGES <= 2147483640
"
" DATA_CACHE_PAGES >= MAXUSERTASKS * 10
Size of the data cache ( in 4 KB pages )
(mandatory, 4 byte integer)
xo,nx#MAXPROCPAGES#int4#130#
CALC MAXUSERTASKS $4 / $1 + $10 *
IF $20 >=
CALC $20
Used for the calculation of PROC_DATA_PAGES
m,ac#PROC_DATA_PAGES#int4#130#
CONSTRAINT
" PROC_DATA_PAGES $10 / $10 * =
" $20 <=
" AND
EXPLAIN
"
" The main memory space for DB procedure executions is allocated
" out of this cache.
" The allocation unit is 10 pages (or 40 KB) per active DB procedure.
"
" The lower and upper limits are:
"
" 20 <= PROC_DATA_PAGES <= 2147483640
"
" DEFAULT CALCULATION
"
" PROC_DATA_PAGES >= (MAXUSERTASKS DIV 4 + 1) * 10
" (can be overridden)
"
CALC MAXPROCPAGES
Size of the proc data cache ( in 4 KB pages )
(mandatory, 4 byte integer)
m,hi,nc#PROC_CODE_PAGES#int4#1#
IF $1 <>
FORCE $1
CONSTRAINT
" $1 =
PROC_CODE_PAGES must be set to 1
(mandatory, 4 byte integer)
m#TEMP_CACHE_PAGES#int4#30#
IF $30 >
CALC $30
EXPLAIN
"
" If the TEMP_CACHE_PAGES limit is reached or if no more free memory
" (RAM + swap) is available, the kernel will use the DATA_CACHE_PAGES.
" This will decrease the performance, because permanent objects
" will be displaced.
"
" Use the database monitoring to obtain information about the
" temp cache hit rate.
"
" The lower and upper limits are:
" 30 <= TEMP_CACHE_PAGES <= 2147483647
"
Number of 4 KB blocks to be allocated in main memory when a UKP/UKT
needs temporary cache for temporary objects like result tables.
(mandatory, 4 byte integer)
m,od#CATALOG_CACHE_PAGS#int4#32#
IF MAXUSERTASKS $1 + $16 * >
FORCE MAXUSERTASKS $1 + $16 *
EXPLAIN
"
" The catalog cache is allocated in the memory for
" session-specific parse and catalog information.
"
" The lower and upper limits are:
" (MAXUSERTASKS + 1) * 16 <= CATALOG_CACHE_PAGS <= 2147483647
"
" DEFAULT CALCULATION
" CATALOG_CACHE_PAGS := (MAXUSERTASKS + 1) * 16
" (can be overridden)
"
" Use the database monitoring to obtain information about the
" catalog cache hit rate.
"
Size of memory supply for the allocation of the catalog caches of all
user tasks in 4 KB pages
(mandatory, 4 byte integer)
m,hi,nc#KERNEL_ALLOC_POOL#int4#0#
CALC PROC_DATA_PAGES TEMP_CACHE_PAGES + CATALOG_CACHE_PAGS +
EXPLAIN
"
" KERNEL_ALLOC_POOL := CALC PROC_DATA_PAGES
" + TEMP_CACHE_PAGES
" + CATALOG_CACHE_PAGS
"
see Explain
(mandatory, 4 byte integer)
m,hi#DISTRIB_DESC_CACHE#int4#100#
CALC MAXUSERTASKS MAXSERVERTASKS + $2 + MAXSERVERDB $2 * +
EXPLAIN
"
" Commands to local or remote server tasks are administered by
" descriptors. These descriptors inform about the following:
" the sender and receiver, which commands are still to be sent,
" which commands are being processed by a local server task,
" which tasks are waiting for a response, which tasks have not yet
" fetched the response.
"
" This parameter is used in three situations:
" - in a distributed environment
" - for a parallel SAVE
" - for a parallel RESTORE
"
" DISTRIB_DESC_CACHE := MAXUSERTASKS + MAXSERVERTASKS + 2
" + MAXSERVERDB * 2
"
Number of message descriptors to be allocated for the message
descriptor cache
(mandatory, 4 byte integer)
m,hi,nx,nc#DISTR_CMD_CACHE#int2#
CALC MAXSERVERTASKS $2 + MAXSERVERDB $2 * +
IF $1000 <
CALC $1000
Used for the calculation of DISTRIB_CMD_CACHE
m,hi#DISTRIB_CMD_CACHE#int2#10#
IF DISTR_CMD_CACHE >
FORCE DISTR_CMD_CACHE
CONSTRAINT
" $1 <=
" $1000 >=
" AND
EXPLAIN
"
" The size of a message buffer is 8280 bytes.
"
" A command to be sent is temporarily stored in the command cache
" until it can be sent by the sender. Receiving commands are also kept
" in the command cache until they can be fetched by their task.
"
" This parameter is used in three situations:
" - in a distributed environment
" - for a parallel SAVE
" - for a parallel RESTORE
"
" DEFAULT CALCULATION
" DISTRIB_CMD_CACHE := MAXSERVERTASKS + 2 + MAXSERVERDB * 2
" if possible
" (can be overridden)
"
" The lower and upper limits are:
" 1 <= DISTRIB_CMD_CACHE <= 100
"
Number of message buffers to be allocated for the message
buffer cache
(mandatory, 2 byte integer)
m#LOG_QUEUE_PAGES#int2#50#
CONSTRAINT
" $1 <=
" $2048 >=
" AND
EXPLAIN
"
" The LOG_QUEUE helps to avoid peak loads and to allow for larger
" blocking factors when writing the log.
"
" Use the database monitoring to obtain information about the number of
" LOG QUEUE OVERFLOWS and LOG QUEUE MAX USED ENTRIES.
"
" The lower and upper limits are:
" 1 <= LOG_QUEUE_PAGES <= 2048
"
Size of the LOG_QUEUE in 4 KB pages
(mandatory, 2 byte integer)
m#LOG_CACHE_PAGES#int2#20#
CONSTRAINT
" $3 <=
" $255 >=
" AND
EXPLAIN
"
" The LOG_CACHE is a main memory area for the caching of log pages
" to accelerate ROLLBACKs.
"
" The lower and upper limits are:
" 3 <= LOG_CACHE_PAGES <= 255
"
" Use the database monitoring to obtain information about the
" log cache hit rate.
"
Size of the LOG_CACHE in 4 KB pages
(mandatory, 2 byte integer)
m,hi#LOG_MAX_COPY_PAGES#int4#0#
To reduce the checkpoint wait time the open transactions
are copied behind the checkpoint.
The parameter specifies the maximum number of log pages per checkpoint
containing copied transactions.
(mandatory, 4 byte integer)
hi,m#FBM_CACHE_PAGES#int2#
CALC MAXDATAPAGES $16320 / MAXDATADEVSPACES +
EXPLAIN
"
" The FBM administers the physical blocks of the data devspaces.
" There is one FBM for each DATA DEVSPACE.
"
" FBM_CACHE_PAGES are computed by:
"
" (MAXDATAPAGES / 16320) + MAXDATADEVSPACES - 3
"
Number of 4 KB blocks to be allocated in main memory for
the Free Block Management Cache.
(mandatory, 2 byte integer)
m,hi#_SVP_1_CONV_FLUSH#c8#NO#
CONSTRAINT $YES =
" $NO =
" OR
EXPLAIN
"
" _SVP_1_CONV_FLUSH 'YES' or 'NO'
"
" 'YES' means: flush the converter cache before savepoint
"
" 'NO' means: don't flush the converter cache before savepoint
"
This parameter specifies whether or not the converter cache should be
flushed before the savepoint
(mandatory, char(8))
m#CONV_CACHE_PAGES#int4#100#
IF DATA_CACHE_PAGES $5 / >
FORCE DATA_CACHE_PAGES $5 /
IF MAXDATAPAGES $170 / MAXDATAPAGES $680 / + $2 + <
FORCE MAXDATAPAGES $170 / MAXDATAPAGES $680 / + $2 +
CONSTRAINT $23 <=
EXPLAIN
"
" The converter converts a logical page number into
" a physical block address on the secondary storage.
"
" Every access to a data page on secondary storage (I/O) runs
" through the converter. If the converter cache is too small, it can
" happen that a page for the converter must be caught from the
" secondary storage.
"
" The size of the converter cache depends on the size of the
" data cache. A huge data cache needs a huge converter cache.
" The size of the converter cache is important for the performance.
"
" Use the database monitoring to obtain information about the
" converter cache hit rate.
"
" The lower and upper limits are:
"
" 23 <= CONV_CACHE_PAGES
" CONV_CACHE_PAGES <= MAXDATAPAGES DIV 170 + 1 +
" MAXDATAPAGES DIV 680 + 1
"
" CONV_CACHE_PAGES => DATA_CACHE_PAGES / 5 if possible
"
Size of the converter cache ( in 4 KB pages )
In the converter, data pages are assigned to addresses on data devspaces.
(mandatory, 2 byte integer)
hi,m#USM_CACHE_PAGES#int2#4#
EXPLAIN
"
" The USM controls the user specific TEMPLIMIT/PERMLIMIT.
Number of 4 KB blocks to be allocated in main memory for the User Storage
Management Cache
(mandatory, 2 byte integer)
nx,nc,xo#MINPNOPOOLSIZE#int4#
IF DATA_CACHE_PAGES < $500
CALC $500 $20 *
ELSIF DATA_CACHE_PAGES > $100000
CALC $100000 $20 *
ELSE
CALC DATA_CACHE_PAGES $20 *
m#PNOPOOLSIZE#int4#10000#
IF MINPNOPOOLSIZE >
FORCE MINPNOPOOLSIZE
IF MAXDATAPAGES <
FORCE MAXDATAPAGES
EXPLAIN
"
" MINPNOPOOLSIZE <= PNOPOOLSIZE < MAXDATAPAGES
"
" IF DATA_CACHE_PAGES < 500
" THEN
" MINPNOPOOLSIZE := 500 * 20
" ELSE
" IF DATA_CACHE_PAGES > 100000
" THEN
" MINPNOPOOLSIZE := 100000 * 20
" ELSE
" MINPNOPOOLSIZE := DATA_CACHE_PAGES * 20
Size of the main memory pool that serves to accelerate the search
for free data pages
(mandatory, 4 byte integer)
iv###ENDGRP
xo,nx#SAVE_QUEUE_SIZE#int2#
IF MAXDATADEVSPACES > MAXBACKUPDEVS
CALC MAXDATADEVSPACES $2 *
ELSE
CALC MAXBACKUPDEVS $2 *
EXPLAIN
"
" IF MAXDATADEVSPACES > MAXBACKUPDEVS
" CALC MAXDATADEVSPACES * 2
" ELSE
" CALC MAXBACKUPDEVS * 2
"
" (queue factor is 2.)
Variable for SHAREDDYNDATA
xo,nx#SAVE_POOL_PAGES#int4#
CALC SAVE_QUEUE_SIZE $1 + $16 * $1 +
EXPLAIN
"
" CALC (SAVE_QUEUE_SIZE + 1) * 16 + 1
"
" (16 = max pages per block)
" (+1 = restart record )
Variable for SHAREDDYNPOOL
xo,nx#SAVE_TASK_LIST#int4#
CALC MAXBACKUPDEVS MAXDATADEVSPACES + $16 *
EXPLAIN
"
" CALC (MAXBACKUPDEVS + MAXDATADEVSPACES) * 16
xo,nx#SAVE_TAPE_LIST#int4#
CALC MAXBACKUPDEVS $624 *
EXPLAIN
"
" CALC MAXBACKUPDEVS * 624
xo,nx#SAVE_DEVSP_LIST#int4#
CALC MAXDATADEVSPACES $56 *
EXPLAIN
"
" CALC MAXDATADEVSPACES * 56
xo,nx#SAVE_SRR_QUEUE#int4#
CALC SAVE_QUEUE_SIZE $1 + $16 *
EXPLAIN
"
" CALC (SAVE_QUEUE_SIZE + 1) * 16
xo,nx#SAVE_GLOB#int4#
CALC SAVE_TASK_LIST SAVE_TAPE_LIST +
" SAVE_DEVSP_LIST SAVE_SRR_QUEUE + +
EXPLAIN
"
" CALC SAVE_TASK_LIST + SAVE_TAPE_LIST
" + SAVE_DEVSP_LIST + SAVE_SRR_QUEUE
xo,nx#B10_PNO_POOL#int4#
CALC
" PNOPOOLSIZE $4 *
xo,nx#HEADLISTSIZE#int4#
IF DATA_CACHE_PAGES DATA_CACHE_REGIONS / < $2500
CALC $10000 $8 * DATA_CACHE_REGIONS *
ELSIF DATA_CACHE_PAGES DATA_CACHE_REGIONS / > $500000
CALC $2000000 $8 * DATA_CACHE_REGIONS *
ELSE
CALC DATA_CACHE_PAGES $4 * $8 *
EXPLAIN
"
" IF DATA_CACHE_PAGES < 2500
" THEN
" HEADLISTSIZE := 10000 * 8
" ELSE
" IF DATA_CACHE_PAGES > 500000
" THEN
" HEADLISTSIZE := 2000000 * 8
" ELSE
" HEADLISTSIZE := DATA_CACHE_PAGES * 4 * 8
xo,nx#CONVHEADLISTSIZE#int4#
IF CONV_CACHE_PAGES < $1000
CALC $4000 $1 + $8 *
ELSIF CONV_CACHE_PAGES > $500000
CALC $2000000 $1 + $8 *
ELSE
CALC CONV_CACHE_PAGES $4 * $1 + $8 *
EXPLAIN
"
" IF CONV_CACHE_PAGES < 1000
" THEN
" CONVHEADLISTSIZE := 4000 * 8
" ELSE
" IF CONV_CACHE_PAGES > 500000
" THEN
" CONVHEADLISTSIZE := 2000000 * 8
" ELSE
" CONVHEADLISTSIZE := CONV_CACHE_PAGES * 4 * 8
m,hi,nc#SHAREDDYNDATA#int4#
CALC FBM_CACHE_PAGES USM_CACHE_PAGES + CONV_CACHE_PAGES +
" DATA_CACHE_PAGES + LOG_QUEUE_PAGES + LOG_CACHE_PAGES +
" NUM_BUFREADER $8 * +
" SAVE_POOL_PAGES + $8 + MAXUSERTASKS + $1 + PROC_CODE_PAGES +
EXPLAIN
"
" SHAREDDYNDATA :=
"
" FBM_CACHE_PAGES + USM_CACHE_PAGES + CONV_CACHE_PAGES
" + DATA_CACHE_PAGES + LOG_QUEUE_PAGES + LOG_CACHE_PAGES
" + NUM_BUFREADER * 8
" + SAVE_POOL_PAGES + 8 + MAXUSERTASKS + 1 + PROC_CODE_PAGES
Size of the storage space, in 4 KB pages
This space is reserved for the dynamic global data, such as
the data cache, the lock list and the log buffer.
Out of this space, the kernel allocates pages using VNEWBUF.
(mandatory, 4 byte integer)
xo,nx#TREEHASHLIST#int4#0#
CALC
" DATA_CACHE_PAGES $10 * TREE_REGIONS / $200 +
IF $2000000 <
CALC $2000000
xo,nx#TREELOCKSIZE#int4#0#
CALC
" TREEHASHLIST $4 *
" MAXUSERTASKS MAXSERVERTASKS $2 + + $2 * $44 *
"+ TREE_REGIONS *
EXPLAIN
" Storage for the BD treelocklist, including hash, lock and
" request list.
xo,nx#CACHESIZEINFOSIZE#int4#0#
CALC
" MAXUSERTASKS $1 + $4 *
" MAXUSERTASKS $1 + $24 *
"+
xo,nx#FBM_SIZES#int4#0#
CALC
" $60
" MAXDATADEVSPACES $1 + $52 * +
" FBM_CACHE_PAGES +
xo,nx#DISTRIB_DESC_SIZE#int4#0#
CALC
" DISTRIB_DESC_CACHE $40 *
xo,nx#DISTRIB_CMD_SIZES#int4#0#
CALC
" DISTRIB_CMD_CACHE $32 *
" DISTRIB_CMD_CACHE $8280 * +
xo,nx#DISTRIB_TASK_SIZES#int4#0#
CALC
" MAXUSERTASKS MAXSERVERTASKS $2 + +
" MAXUSERTASKS MAXSERVERTASKS $2 + + $2 / +
" $32 *
" MAXSERVERTASKS $24 * +
xo,nx#DISTRIB_SITE_SIZE#int4#0#
CALC
" MAXSERVERDB $120 *
xo,nx#USM_SIZE#int4#0#
CALC
" USM_CACHE_PAGES $8 *
xo,nx#CONV_CTRL_SIZE#int4#0#
CALC
" MAXUSERTASKS MAXSERVERTASKS $8 + + $16 *
" CONV_CACHE_PAGES $40 *
" +
xo,nx#TEMPIO_CTRL_SIZE#int4#0#
CALC
" MAXUSERTASKS $1 + $8 *
xo,nx#B20_SVP_ROOT_FREE#int4#0#
IF PNOPOOLSIZE < $10000
CALC $1000 $12 *
ELSIF PNOPOOLSIZE > $200000
CALC $20000 $12 *
ELSE
CALC PNOPOOLSIZE $10 / $12 *
xo,nx#B20_SVP_PNO_FREE#int4#0#
IF PNOPOOLSIZE < $10000
CALC $10000 $12 *
ELSIF PNOPOOLSIZE > $200000
CALC $200000 $12 *
ELSE
CALC PNOPOOLSIZE $12 *
xo,nx#DATAC_CTRL_SIZE#int4#0#
CALC
" DATA_CACHE_PAGES $10 / $4 *
" MAXUSERTASKS MAXSERVERTASKS $8 + + $16 * DATA_CACHE_REGIONS *
" DATA_CACHE_PAGES $64 *
"B20_SVP_PNO_FREE
"B20_SVP_ROOT_FREE
"+ + + +
xo,nx#LOCK_LIST_SIZE#int4#0#
CALC
" MAXLOCKS $2 * $56 *
" MAXTRANS $120 *
" +
xo,nx#LOG_QUEUE_SIZE#int4#0#
CALC
" MAXUSERTASKS MAXSERVERTASKS $2 + + $8 *
m,hi,nc#SHAREDDYNPOOL#int4#
CALC
" CACHESIZEINFOSIZE FBM_SIZES + DISTRIB_DESC_SIZE +
" DISTRIB_CMD_SIZES + DISTRIB_TASK_SIZES + DISTRIB_SITE_SIZE +
" B10_PNO_POOL + USM_SIZE + CONVHEADLISTSIZE +
" CONV_CTRL_SIZE + TEMPIO_CTRL_SIZE + HEADLISTSIZE +
" DATAC_CTRL_SIZE + TREELOCKSIZE + LOCK_LIST_SIZE +
" LOG_QUEUE_SIZE + SAVE_GLOB +
" $1024 /
" $3 +
EXPLAIN
"
" SHAREDDYNPOOL :=
"
" ((CONV_CACHE_PAGES + ISM_CACHE_PAGES + USM_CACHE_PAGES) * 8 +
" (MAXUSERTASKS + 1) * 8 + (DATA_CACHE_PAGES * 80) +
" (DATA_CACHE_PAGES / 10) * 4 +
" HEADLISTSIZE + TREELOCKSIZE + (PNOPOOLSIZE * 4) +
" (MAXUSERTASKS + 1) * 28 +
" (MAXUSERTASKS + MAXSERVERTASKS + 8) * 32 +
" (MAXUSERTASKS + MAXSERVERTASKS + 2) * 84 +
" (MAXLOCKS * 2 * 56) + (MAXTRANS * 120) +
" (DISTRIB_DESC_CACHE * 40) +
" (DISTRIB_CMD_CACHE * 8300) +
" (MAXSERVERTASKS * 24) +
" MAXSERVERDB * 92 +
" SAVE_GLOB
" / 1024 + 3
Size of the storage space, in KB
This space is reserved for the dynamic global data (4 byte integer).
Out of this space, the kernel allocates buffers of various sizes
using VALLOCAT.
(mandatory, 4 byte integer)
iv###GRP HIDDEN Optimizer
hi,m,ac#DISTINCT_OVERHEAD#int4#1#
CONSTRAINT
" $1 <=
" $50 >=
" AND
CALC $1
EXPLAIN
"
" Small values of DISTINCT_OVERHEAD are favorable for OR terms
" that produce different sets of hits.
" Large values of DISTINCT_OVERHEAD are favorable for OR terms
" that produce similar sets of hits.
" The lower and upper limits are:
"
" 1 <= DISTINCT_OVERHEAD <= 50
This parameter modifies the optimization of OR qualifications.
(mandatory, 4 byte integer)
hi,m#ORDERBY_FACTOR#int4#2#
CONSTRAINT
" $1 <=
" $10 >=
" AND
EXPLAIN
"
" Large values of ORDERBY_FACTOR support the usage of an index for
" the processing of ORDER BY. Since it is not necessary to generate the
" complete result set physically, the first hit rows will be produced fast.
" This is only true for simple selects, not for joins.
"
" The lower and upper limits are:
"
" 1 <= ORDERBY_FACTOR <= 10
This parameter modifies the optimization of ORDER BY qualifications.
(mandatory, 4 byte integer)
hi,m,ac#_OPTIM_MAX_MERGE#int4#1000#
IF _OPTIM_MAX_MERGE < $1000
CALC $1000
CONSTRAINT
" $1 <=
EXPLAIN
"
" Strategies merging index lists cause a large internal overhead.
" This overhead consists in the generation of a temporary index.
" While the temporary index is generated, the permanent index is
" locked for other transactions.
"
" To limit the lock time and to minimize the overhead, these strategies
" are only performed when the number of index pages concerned is less
" than equal to _OPTIM_MAX_MERGE.
" The alternative to these strategies is a strategy that only works
" on the base table.
"
" The lower and upper limits are:
"
" 1 <= _OPTIM_MAX_MERGE
"
" Default calculation, can be overridden
"
" IF _OPTIM_MAX_MERGE < 1000
" THEN
" _OPTIM_MAX_MERGE := 1000
This parameter modifies the optimization of Strategies, which merge
index lists
(mandatory, 4 byte integer)
iv###ENDGRP
cl,m,cs#RUNDIRECTORY#c64#
EXPLAIN
"
" The RUNDIRECTORY defines the current directory for kernel tasks
Name of the path where context information, including diagnose
information, is stored for this SERVERDB.
(mandatory, char(64))
iv###GRP Diagnose
m,cs,hi#DIAGFILE #c64#knldiag#
CALC $knldiag
EXPLAIN
"
" In general, this is the name of the diag file.
" The messages are database error and informative messages
" of any priority.
Name of the destination to which all messages will be sent.
(mandatory, char (64))
m,od#DIAGSIZE#int2#100#
CALC $100
CONSTRAINT $100 <=
EXPLAIN
"
" The file is written cyclically.
"
" The lower limit is:
" 100 <= DIAGSIZE
Size (in 4 KB pages) of the diag file where informative messages,
warnings, and error messages of the database kernel are stored.
(mandatory, 2 byte integer)
m,cs,hi#KERNELTRACEFILE#c40#knltrace#
EXPLAIN
"
" Trace entries will be written by the kernel to this file.
"
" The operator user must activate the trace facility using
" the DIAGNOSE VTRACE menu; otherwise no trace will be written.
Name of the kernel trace file
(mandatory, char(40))
m#KERNELTRACESIZE#int2#200#
CONSTRAINT $50 <=
EXPLAIN
"
" The file is written cyclically.
"
" The lower limit is:
" 50 <= KERNELTRACESIZE
Size of the kernel trace file in 4 KB blocks
(mandatory, 2 byte integer)
m,cs,hi#KERNELDUMPFILE#c64#knldump#
EXPLAIN
"
" In the case of a database kernel crash or an emergency shutdown,
" the kernel saves some global data structures like the data cache
" or lock list into the so-called dump file.
"
" Be careful with your memory space! There must be sufficient
" space for the dump file!
Name of the dump host file
(mandatory, char(64))
iv###ENDGRP
fi,hi,cs,an#----------------------------------------------------------#
fi,hi,cs,an#Minimum size of real memory needed for the database kernel#
fi,hi,cs,an#to prevent paging. Memory needs of the OS kernel or#
fi,hi,cs,an#running applications are not considered.#
fi,hi,nx,nc#RAMSIZE_MB#int4#
CALC $4 SHAREDDYNDATA * SHAREDDYNPOOL +
" TEMP_CACHE_PAGES CATALOG_CACHE_PAGS + PROC_DATA_PAGES + $4 * +
" MAXUSERTASKS MAXSERVERTASKS + MAXUSERSTACK * + $5000 +
" $1024 / $1 +