home *** CD-ROM | disk | FTP | other *** search
/ PC Treasures, Inc. / pctreasures.mdf / WINDOWS / adabas / f_0001 / env / xparam.hlp < prev   
Text File  |  1999-12-10  |  40KB  |  1,712 lines

  1. iv###prdjffir    11         1998-05-06
  2. iv###KERNEL 11.02.00          DATE 1999-12-03
  3.  
  4. il#PRINTERNAME#c18#
  5.  
  6. hi,m,ac#NUM_BUFREADER#int4#1#
  7. CONSTRAINT
  8. " $0 <=
  9. " $64 >=
  10. " AND
  11.  
  12. This parameter describes the number of bufreader awake
  13. to flush the DATA_CACHE
  14.  
  15. (mandatory, 4 byte integer)
  16.  
  17. hi,m,ac#BR_SLEEPTIME#int4#10#
  18. CONSTRAINT
  19. " $1 <=
  20. " $100000 >=
  21. " AND
  22.  
  23. This parameter describes the sleeptime before the bufreader awake to
  24. flush the DATA_CACHE
  25.  
  26. (mandatory, 4 byte integer)
  27.  
  28. hi,m,ac#BR_IF_IOCNT_LT#int4#300#
  29. CONSTRAINT
  30. " $0 <=
  31. " $100000 >=
  32. " AND
  33. IF MAXDATADEVSPACES = $1
  34. CALC BR_SLEEPTIME $30 *
  35. IF MAXDATADEVSPACES > $1
  36. CALC MAXDATADEVSPACES $1 - BR_SLEEPTIME * $30 *
  37. EXPLAIN
  38. "
  39. " If the bufreader awaken, it should only flush the buffer,
  40. " if the difference of the DATA IO COUNT between the BR_SLEEPTIME
  41. " is lower then this parameter.
  42.  
  43. see Explain
  44.  
  45. (mandatory, 4 byte integer)
  46.  
  47.  
  48.  
  49. m,hi#DATA_CACHE_REGIONS#int2#8#
  50. CONSTRAINT
  51. " $1 <=
  52. " $64 >=
  53. " AND
  54. EXPLAIN
  55. "
  56. " DATA_CACHE_REGIONS help to improve simultaneity when working on
  57. " the data cache.
  58. " Data cache data striping takes place on the data cache regions.
  59. "
  60. " The lower and upper limits are:
  61. "     1 <= DATA_CACHE_REGIONS <= 64
  62.  
  63. Number of autonomous units into which the data cache will be broken up.
  64.  
  65. (mandatory, 2 byte integer)
  66.  
  67. m,hi#TREE_REGIONS#int2#8#
  68. CONSTRAINT
  69. " $1 <=
  70. " $64 >=
  71. " AND
  72. EXPLAIN
  73. "
  74. " TREE_REGIONS help to improve simultaneity when working with the
  75. " lock manager administering access to B* tree nodes.
  76. "
  77. " The lower and upper limits are:
  78. "     1 <= TREE_REGIONS <= 64
  79.  
  80. Number of autonomous units for checking lock collisions on B* trees
  81.  
  82. (mandatory, 2 byte integer)
  83.  
  84.  
  85. m,hi,nx,nc#TASKSALL#int2#1024#
  86.  
  87. Maximum number of tasks (user + server) per ADABAS kernel
  88.  
  89. (mandatory, 2 byte integer)
  90.  
  91. m,hi,nx,nc#MAXTASKS#int2#350#
  92.  
  93. Maximum number of tasks (user + server) per UKP/UKT
  94.  
  95. (mandatory, 2 byte integer)
  96.  
  97. m,hi,nx,nc#MAXUKPS#int2#32#
  98.  
  99. Maximum number of UKPs/UKTs
  100.  
  101. (mandatory, 2 byte integer)
  102.  
  103. m#SERVERDB#c18#
  104.  
  105. Logical name of the ADABAS database
  106.  
  107. (mandatory, char(8))
  108.  
  109.  
  110. iv###GRP HIDDEN KernelDevices
  111. cl,m,cs#SYSDEVSPACE#c40#sys.dev#
  112.  
  113. Path name of the SYSTEM DEVSPACE.
  114.  
  115. This name must be identical to the name of the
  116. SYSTEM DEVSPACE to be specified when
  117. configuring the database with UTILITY.
  118.  
  119. Before starting the database, the devspaces must exist!
  120. All devspace names are relative to the RUNDIRECTORY.
  121.  
  122. Example:
  123. If you name your system devspace "../SYS", then a system devspace
  124. called "SYS" will be expected in the directory prior to
  125. the RUNDIRECTORY.
  126.  
  127. (mandatory, char(40))
  128.  
  129. cl,cs#MIRR_SYSDEVSPACE#c40#
  130.  
  131. Path name of the mirrored SYSTEM DEVSPACE
  132.  
  133. Before starting the database, the devspaces must exist!
  134. All devspace names are relative to the RUNDIRECTORY.
  135.  
  136. (char(40))
  137.  
  138. cl,m,cs#TRANSACTION_LOG#c40#log.dev#
  139.  
  140. Path name of the TRANSACTION LOG DEVSPACE
  141.  
  142. This parameter must get the name to be specified
  143. for the TRANSACTION LOG when configuring the
  144. database with UTILITY.
  145.  
  146. Before starting the database, the devspaces must exist!
  147. All devspace names are relative to the RUNDIRECTORY.
  148.  
  149. Example:
  150. If you name this log devspace "../TRANSLOG", then a devspace
  151. called "TRANSLOG" will be expected in the directory prior to
  152. the RUNDIRECTRY.
  153.  
  154. (mandatory, char(40))
  155.  
  156. cl,cs#ARCHIVE_LOG#c40#
  157.  
  158. Path name of an ARCHIVE LOG DEVSPACE
  159.  
  160. This parameter must get the name to be specified
  161. for the first ARCHIVE LOG when configuring the
  162. database with UTILITY.
  163.  
  164. Before starting the database, the devspaces must exist!
  165. All devspace names are relative to the RUNDIRECTORY.
  166.  
  167. Example:
  168. If you name this log devspace "../ARCHLOG1", then a devspace
  169. called "ARCHLOG1" will be expected in the directory prior to
  170. the RUNDIRECTRY.
  171.  
  172. (mandatory, char(40))
  173.  
  174. cl,cs#MIRR_ARCHIVE_LOG#c40#
  175.  
  176. Path name of a mirrored ARCHIVE LOG DEVSPACE
  177.  
  178. Before starting the database, the devspaces must exist!
  179. All devspace names are relative to the RUNDIRECTORY.
  180.  
  181. (char(40))
  182.  
  183. iv###ENDGRP
  184. iv###GRP HIDDEN ControlUser
  185. m#CONTROLUSERID#c18#
  186.  
  187. Name of the CONTROL user
  188. The CONTROLUSER is authorized to use the component CONTROL.
  189.  
  190. (mandatory, char(18))
  191.  
  192. m#CONTROLPASSWORD#crypt#
  193.  
  194. The password of the CONTROLUSER
  195.  
  196. (mandatory, char(18))
  197.  
  198. iv###ENDGRP
  199. iv###GRP Limits
  200. m#MAXDEVSPACES#int2#3#
  201. CONSTRAINT $3 <=
  202. " $145 >=
  203. " AND
  204. EXPLAIN
  205. "
  206. " MAXDEVSPACES is the sum of all system, data, and log devspaces
  207. " including the mirrored devspaces.
  208. " The devspace processes/threads are only started when the corresponding
  209. " devspaces are being attached.
  210. "
  211. " The lower and upper limits are:
  212. "
  213. " 3 <= MAXDEVSPACES <= 145
  214.  
  215. Number of structures to be created for devspace processes/threads.
  216.  
  217. (mandatory, 2 byte integer)
  218.  
  219. m#MAXDATADEVSPACES#int2#1#
  220. CONSTRAINT $1 <=
  221. " $64 >=
  222. " AND
  223. " MAXDEVSPACES $2 - >=
  224. " AND
  225. EXPLAIN
  226. "
  227. " MAXDATADEVSPACES should be greater than the number of data devspaces
  228. " being used in order to be able to add at least one data devspace
  229. " using CONTROL --> ADD DATADEVSPACE while the database is operative.
  230. "
  231. " Data striping takes place on the data devspaces.
  232. "
  233. " The lower and upper limits are:
  234. "
  235. " 1 <= MAXDATADEVSPACES <= 64
  236. " and
  237. " MAXDATADEVSPACES <= MAXDEVSPACES - 2
  238.  
  239. User-defined upper limit of the number of data devspaces.
  240.  
  241. (mandatory, 2 byte integer)
  242.  
  243.  
  244. m#MAXSERVERDB#int2#1#
  245. CONSTRAINT
  246. " $1 <=
  247. " $2048 >=
  248. " AND
  249. EXPLAIN
  250. "
  251. " For a stand-alone configuration, set MAXSERVERDB to 1.
  252. "
  253. " For a distributed configuration consisting of N SERVERDBs
  254. " set MAXSERVERDB to N, where 2 <= N <= 2048.
  255.  
  256. Number of SERVERDBs in a distributed configuration,
  257. for a stand-alone configuration, set MAXSERVERDB = 1 .
  258.  
  259. (mandatory, 2 byte integer)
  260.  
  261. m#MAXBACKUPDEVS#int2#2#
  262. CONSTRAINT
  263. " $1 <=
  264. " $16 >=
  265. " AND
  266. EXPLAIN
  267. "
  268. " The lower and upper limits are:
  269. " 1 <= MAXBACKUPDEVS <= 16
  270. "
  271. "
  272.  
  273. Maximum number of backup devices (e.g. tape drives) used in
  274. parallel for SAVE/RESTORE.
  275.  
  276. (mandatory, 2 byte integer)
  277.  
  278. m,hi#ASYNIO_BLOCK_COUNT#int2#8#
  279. CONSTRAINT
  280. " $4 <=
  281. " $16 >=
  282. " AND
  283. EXPLAIN
  284. "
  285. "  4 <= ASYNIO_BLOCK_COUNT <= 16
  286.  
  287. This block count (in 4 KB pages) is the size for
  288. one asynchronous I/O access.
  289.  
  290. In the case of a SAVE/RESTORE DATA QUICK command, the ASYNIO_BLOCK_COUNT
  291. defines the size of one buffer of the save restore region queue.
  292. The block count must be the same for SAVE and RESTORE.
  293.  
  294. (mandatory, 2 byte integer)
  295.  
  296. hi,xo,nx#MAXDISTRIBSERVER#int2#3#
  297.  
  298. m,hi,nx,nc#MAXSERV#int2#
  299. CALC MAXBACKUPDEVS MAXDATADEVSPACES + DATA_CACHE_REGIONS +
  300. " MAXSERVERDB $2 * +
  301. IF TASKSALL MAXUSERTASKS - <
  302. CALC TASKSALL MAXUSERTASKS -
  303. IF MAXDISTRIBSERVER >
  304. CALC MAXDISTRIBSERVER
  305.  
  306. Used for the calculation of MAXSERVERTASKS
  307.  
  308. m#MAXSERVERTASKS#int2#6#
  309. IF MAXSERV >
  310. CALC MAXSERV
  311. IF MAXSERVERDB = $1
  312. FORCE MAXSERV
  313. EXPLAIN
  314. "
  315. " MAXSERVERTASKS should not be configured greater than is actually
  316. " required, because this parameter has great influence on the usage
  317. " of address space.
  318. "
  319. " The lower and upper limits are:
  320. " MAXBACKUPDEVS + MAXDATADEVSPACES * 2 + MAXSERVERDB * 2 <= MAXSERVERTASKS
  321. " MAXSERVERTASKS <= 1024 - MAXUSERTASKS
  322. "
  323. " For a stand-alone configuration ( MAXSERVERDB = 1)
  324. " MAXSERVERTASKS is set to MAXBACKUPDEVS + MAXDATADEVSPACES * 2 + 2
  325. "
  326.  
  327. Maximum number of server tasks for servicing distributed
  328. ADABAS requests and for parallel SAVE/RESTORE.
  329.  
  330. (mandatory, 2 byte integer)
  331.  
  332. xo,nx#MAXUSER#int2#1#
  333.  
  334.  
  335.  
  336.  
  337. m#MAXUSERTASKS#int2#50#
  338. IF MAXUSER <> $1
  339. CALC MAXUSER
  340. CONSTRAINT $1 <=
  341. " TASKSALL MAXSERVERTASKS - >=
  342. " AND
  343. EXPLAIN
  344. "
  345. " MAXUSERTASKS should not be configured greater than is actually
  346. " required, because this parameter has great influence on the usage
  347. " of address space.
  348. "
  349. " The lower and upper limits are:
  350. " 1 <= MAXUSERTASKS <= 1024 - MAXSERVERTASKS
  351. "
  352.  
  353. Maximum number of simultaneously active users (database sessions)
  354.  
  355. (mandatory, 2 byte integer)
  356.  
  357.  
  358. m#MAXLOCKS#int4#2500#
  359. CONSTRAINT $500 <=
  360. " $2325000 >=
  361. " AND
  362. IF MAXUSERTASKS MAXSERVERDB * MAXSERVERTASKS + $10 / $1 + $50 * >
  363. CALC MAXUSERTASKS MAXSERVERDB * MAXSERVERTASKS + $10 / $1 + $50 *
  364. EXPLAIN
  365. "
  366. " A suitable value depends on the used application, the number of
  367. " users and the isolation level.
  368. "
  369. " Use the database monitoring to obtain information about the number
  370. " of LOCK LIST MAX USED ENTRIES, LOCK LIST ESCALATIONS,
  371. " LOCK LIST AVG USED ENTRIES.
  372. "
  373. " The lower and upper limits are:
  374. " 500 <= MAXLOCKS <= 2325000
  375. " ((MAXUSERTASKS * MAXSERVERDB + MAXSERVERTASKS) DIV 10 + 1) * 50
  376. " <= MAXLOCKS
  377. "
  378.  
  379. Maximum number of guaranteed, simultaneous row locks or row lock requests
  380.  
  381. (mandatory, 4 byte integer)
  382.  
  383. iv### Comment:
  384.  
  385.    There should be 10 LOCK entries per transaction
  386.  
  387.  
  388.  
  389.  
  390. hi,m#MAXTRANS#int4#3#
  391. IF MAXUSERTASKS MAXSERVERDB  * $1 + $1 + MAXSERVERTASKS + >
  392. CALC MAXUSERTASKS MAXSERVERDB * $1 + $1 + MAXSERVERTASKS +
  393. EXPLAIN
  394. "
  395. " MAXTRANS >= MAXUSERTASKS + 1 + 1
  396. "
  397.  
  398. Maximum number of concurrent transactions
  399.  
  400. (mandatory, 4 byte integer)
  401.  
  402. iv### Comment: Number of transactions
  403.  
  404. Stand alone:
  405.       Minimum    MAXUSERTASKS + 1<util> + 1<ROLLBACK>
  406.       Maximum    MAXUSERTASKS + 1<util> + 1<ROLLBACK>
  407.  
  408. Distribution:
  409.       Minimum    MAXUSERTASKS + 1<util> + 1<ROLLBACK> + MAXSERVERTASKS
  410.       Maximum    MAXUSERTASKS + 1<util> + 1<ROLLBACK> + MAXSERVERTASKS
  411.                          + (MAXSERVERDB - 1) * MAXUSERTASKS(Pending Tr.)
  412.  
  413.  
  414. m#MAXDATAPAGES#int4#10000#
  415. CONSTRAINT $3000 <=
  416. " $2147483647 >=
  417. " AND
  418. EXPLAIN
  419. "
  420. " MAXDATAPAGES determines the converter size (system devspace part)
  421. "
  422. " MAXDATAPAGES should be greater than the sum of the sizes of the
  423. " data devspaces being used in order to be able to add at least one
  424. " data devspace using CONTROL --> ADD DATADEVSPACE
  425. " while the database is operative.
  426. "
  427. " The lower and upper limits are:
  428. "     3000 <= MAXDATAPAGES <= 2147483647
  429. "
  430.  
  431. Combined size of all DATA DEVSPACEs (in 4 KB pages) including
  432. a safety factor
  433.  
  434. (mandatory, 4 byte integer)
  435.  
  436. m,hi#_NET_MINTIMEOUT#int4#0#
  437.  
  438. Minimum value in seconds for the non-configurable, internal timeouts
  439. occurring during communication within a distributed database
  440.  
  441. (mandatory, 4 byte integer)
  442.  
  443. m,hi#MAXIOTHREADS#int2#2#
  444. CONSTRAINT $10 >=
  445. " $1 <=
  446. " AND
  447. EXPLAIN
  448. "
  449. " These I/O processes/threads execute asynchronous I/O.
  450. "
  451. " MAXIOTHREADS is significant for I/O performance.
  452. "
  453. " The lower and upper limits are:
  454. " 1 <= MAXIOTHREADS <= 10
  455.  
  456. Number of I/O processes/threads per system and data devspace
  457.  
  458. (mandatory, 2 byte integer)
  459.  
  460.  
  461. m,hi#ALLOW_SINGLE_IO#c8#YES#
  462. CONSTRAINT $yes =
  463. " $YES =
  464. " $no =
  465. " $NO =
  466. " OR
  467. " OR
  468. " OR
  469. EXPLAIN
  470. "
  471. " 'YES' means: If a UKP/UKT has nothing to do as I/O, I/O will
  472. "               be made by itself
  473. " 'NO'  means: Any I/O will be made via I/O processes/threads
  474.  
  475. see Explain
  476.  
  477. (mandatory, char(8))
  478.  
  479. hi#IO_THREAD_QUEUE#int2#2#
  480. EXPLAIN
  481. "
  482. " As soon as >= IO_THREAD_QUEUE requests are in the queue of an
  483. " I/O process/thread, the attempt is made to assign each additional
  484. " I/O request to another I/O process/thread.
  485. "
  486. " To be able to use IO_THREAD_QUEUE, MAXIOTHREADS must be greater
  487. " than 1.
  488. "
  489. " The lower and upper limits are:
  490. "     0 <= IO_THREAD_QUEUE
  491.  
  492. This parameter defines the usage level of the I/O queues from which a
  493. request is assigned to another I/O process/thread.
  494.  
  495. (2 byte integer)
  496.  
  497. m#MAXCPU#int2#1#
  498. CONSTRAINT
  499. " $1 <=
  500. " MAXUKPS >=
  501. " AND
  502. EXPLAIN
  503. "
  504. " The value of MAXCPU has a great influence on the distribution of
  505. " the database kernel tasks to operating system processes (UKPs)/
  506. " threads (UKTs).
  507. "
  508. " Depending on whether the computer is only used as database server,
  509. " MAXCPU should correspond to the actual number of CPUs of the machine;
  510. " otherwise, the CPUs to be used by applications must be subtracted.
  511. "
  512. " The lower and upper limits are:
  513. " 1 <= MAXCPU <= 32
  514.  
  515. Number of CPUs this SERVERDB is allowed to exploit on this system.
  516. ( MAXCPU <= actual number of CPUs )
  517.  
  518. (mandatory, 2 byte integer)
  519.  
  520. nx,xo#UKPS#int2#
  521. CALC MAXUSERTASKS $1 - MAXTASKS / $1 + $2 +
  522. IF MAXCPU $2 + >
  523. CALC MAXCPU $2 +
  524. IF MAXUKPS <
  525. CALC MAXUKPS
  526.  
  527. Used for the calculation of US
  528.  
  529. nx,xo#US#int2#
  530. CALC MAXUSERTASKS $1 - UKPS $2 - / $1 +
  531.  
  532. Used for the calculation of TASKCLUSTER
  533.  
  534. hi,m#MAXUSERSTACK#int2#200#
  535. IF $200 >
  536. FORCE $200
  537. CONSTRAINT $200 <=
  538. " $250 >=
  539. " AND
  540. EXPLAIN
  541. "
  542. " The lower and upper limits are:
  543. "     200 <= MAXUSERSTACK <= 250
  544. "
  545. " MAXUSERSTACK should be set to 200.
  546.  
  547. Maximum size in KB of a task stack
  548.  
  549. (mandatory, 2 byte integer)
  550.  
  551. hi,m#DEFAULT_LRU#c8#YES#
  552. CONSTRAINT $yes =
  553. " $YES =
  554. " $no =
  555. " $NO =
  556. " OR
  557. " OR
  558. " OR
  559. EXPLAIN
  560. "
  561. " 'YES' means: The last part of the DATA CACHE will be used for scans.
  562. " 'NO'  means: The complete DATA CACHE will be used for scans.
  563. "              This setting is advantageous if small tables are to
  564. "              be kept completely in the data cache.
  565.  
  566. The parameter specifies whether scans are to be favored in the data cache
  567.  
  568. (mandatory, char(8))
  569.  
  570. iv###ENDGRP
  571. m,hi#REMOTE_ACCESS#c8#NO#
  572. CONSTRAINT $yes =
  573. " $YES =
  574. " $no =
  575. " $NO =
  576. " OR
  577. " OR
  578. " OR
  579. IF MAXSERVERDB <> $1
  580. FORCE $YES
  581. EXPLAIN
  582. "
  583. " 'YES' means: Applications from other hosts will use the NETWORK processes.
  584. " 'NO'  means: Applications from other hosts will use the XSERVER.
  585. "
  586. " For a distributed configuration REMOTE_ACCESS must be set to 'YES'.
  587.  
  588. see Explain
  589.  
  590. (mandatory, char(8))
  591.  
  592.  
  593. hi,m,cs,ac#TASKCLUSTER#c64#bw;2000*sv,br;l1;l2;sn,rc,ut;ti,30000*us;compress#
  594. IF $1 = MAXCPU
  595. " $allinone <>
  596. " $ALLINONE <>
  597. " AND
  598. " AND
  599. CALC
  600. " $bw;2000*sv,br;l1;l2;sn,rc,ut;ti,30000*us;compress
  601. IF $1 < MAXCPU
  602. CALC
  603. " $bw;2000*sv,br;l1;l2;sn,rc,ut;ti, US $*us;equalize +
  604. EXPLAIN
  605. "
  606. " Abbreviations of the database kernel tasks:
  607. " ti = timeout     l1 = logwriter1   l2 = logwriter2
  608. " bw = bufwriter   br = bufreader    sn = sender
  609. " rc = receiver    ut = utility      sv = server   us = user
  610. " The last piece of information on the line defines the strategy for the
  611. " distribution of the database kernel tasks to the processes/threads
  612. " during the runtime of the database kernel.
  613. " 'compress' means: Every process/thread is filled up to its capacity.
  614. " 'equalize' means: The tasks are distributed to all processes/threads.
  615. " 'allinone' means: There is an internal tasking in exactly one
  616. "                   process/thread.
  617.  
  618. Specifies the distribution of database kernel tasks to operating
  619. system processes/threads.
  620.  
  621.   (mandatory, char(64))
  622.  
  623. hi,m#DISPATCHER_STRAT#int2#2#
  624. CONSTRAINT $3 >
  625. " $0 <=
  626. " AND
  627. EXPLAIN
  628. "
  629. " 1 = FAVOR_LONG
  630. "     started SQL statements will come faster to the command end;
  631. "     new SQL statements will be started after a while.
  632. "
  633. " 2 = FAVOR_SHORT
  634. "     SQL statements needing a long time will need more time;
  635. "     SQL statements needing a short time will need less time.
  636. "
  637. " 0 = the dispatcher decides between strategy 1 and 2 by itself
  638. "     ( dynamically )
  639.  
  640. This parameter modifies the search strategy of the dispatcher
  641. to find a runnable task.
  642.  
  643. (2 byte integer)
  644.  
  645.  
  646.  
  647. ac,m,hi#EXCL_QUE_WHEN_PRIO#c8#NO#
  648. CONSTRAINT $yes =
  649. " $YES =
  650. " $no =
  651. " $NO =
  652. " OR
  653. " OR
  654. " OR
  655. IF MAXCPU > $1
  656. CALC $YES
  657. ELSE
  658. CALC $NO
  659. EXPLAIN
  660. "
  661. " This parameter specifies whether or not a priority task that does
  662. " not obtain a critical region at once is to be favored when another
  663. " task frees this region.
  664. "
  665. " EXCL_QUE_WHEN_PRIO = 'YES' oder 'NO'
  666. "
  667. " 'YES' means: If a priority task tries to obtain a region used by
  668. "              another task (collision), the priority task will add
  669. "              itself to a special queue in order to obtain the region
  670. "              as soon as the other task frees the region.
  671. "
  672. " 'NO'  means: see parameter LOOP_REGION_COLL
  673. "
  674. " Default calculation, can be overridden
  675. " IF MAXCPU > 1
  676. " THEN
  677. "       EXCL_QUE_WHEN_PRIO := 'YES'
  678. " ELSE
  679. "       EXCL_QUE_WHEN_PRIO := 'NO'
  680.  
  681. see Explain
  682.  
  683. (mandatory, char(8))
  684.  
  685. ac,m,hi#REG_DIRTY_READ#c8#NO#
  686. CONSTRAINT $yes =
  687. " $YES =
  688. " $no =
  689. " $NO =
  690. " OR
  691. " OR
  692. " OR
  693. IF MAXCPU > $1
  694. CALC $YES
  695. ELSE
  696. CALC $NO
  697. EXPLAIN
  698. "
  699. " REG_DIRTY_READ = 'YES' oder 'NO'
  700. "
  701. " 'YES' means: Collision test with dirty read before test and set operator
  702. " 'NO'  means: Collision test with test and set operator
  703. "
  704. " Default calculation, can be overridden
  705. " IF MAXCPU > 1
  706. " THEN
  707. "       REG_DIRTY_READ := 'YES'
  708. " ELSE
  709. "       REG_DIRTY_READ := 'NO'
  710.  
  711. This parameter modifies the collision test of a task when entering a
  712. critical region
  713.  
  714. (mandatory, char(8))
  715.  
  716.  
  717. ac,m,hi#ENDEXCL_BUSY_WAIT#c8#NO#
  718. CONSTRAINT $yes =
  719. " $YES =
  720. " $no =
  721. " $NO =
  722. " OR
  723. " OR
  724. " OR
  725. IF MAXCPU > $1
  726. CALC $YES
  727. ELSE
  728. CALC $NO
  729. EXPLAIN
  730. "
  731. " This parameter specifies whether BUSY WAITING is to be performed
  732. " after a failed test and set when exiting from a critical region.
  733. "
  734. " ENDEXCL_BUSY_WAIT = 'YES' oder 'NO'
  735. "
  736. " 'YES' means: BUSY WAITING if test and set (to free the region) failed
  737. " 'NO'  means: RESCHEDULE   if test and set (to free the region) failed
  738. "
  739. " Default calculation, can be overridden
  740. " IF MAXCPU > 1
  741. " THEN
  742. "       ENDEXCL_BUSY_WAIT := 'YES'
  743. " ELSE
  744. "       ENDEXCL_BUSY_WAIT := 'NO'
  745.  
  746. see Explain
  747.  
  748. (mandatory, char(8))
  749.  
  750.  
  751. hi,m,ac#DISP_LOOPS_BEF_SL#int4#1#
  752. CONSTRAINT $1 <=
  753. " $10000 >=
  754. " AND
  755. EXPLAIN
  756. "
  757. " This parameter describes the maximum number of dispatcher loops
  758. " to search its queues for a new task.
  759. " When this number is reached, this UKP/UKT voluntarily interrupts
  760. " itself using the semop systemcall.
  761. "
  762. " The lower and upper limits are:
  763. "     1 <= DISP_LOOPS_BEF_SL <= 10000
  764.  
  765. see Explain
  766.  
  767. (mandatory, 4 byte integer)
  768.  
  769. ac,m,hi#DYN_DISP_QUE_SRCH#c8#NO#
  770. CONSTRAINT $yes =
  771. " $YES =
  772. " $no =
  773. " $NO =
  774. " OR
  775. " OR
  776. " OR
  777. IF MAXCPU > $1
  778. CALC $YES
  779. ELSE
  780. CALC $NO
  781. EXPLAIN
  782. "
  783. " DYN_DISP_QUE_SRCH = 'YES' oder 'NO'
  784. "
  785. " 'YES' means: A message is signalled to another UKP/UKT to interrupt
  786. "              the running task in favor of a priority task.
  787. " 'NO'  means: This parameter has no effect.
  788. "
  789. " Default calculation, can be overridden
  790. " IF MAXCPU > 1
  791. " THEN
  792. "       DYN_DISP_QUE_SRCH := 'YES'
  793. " ELSE
  794. "       DYN_DISP_QUE_SRCH := 'NO'
  795.  
  796. see Explain
  797.  
  798. (mandatory, char(8))
  799.  
  800.  
  801. hi,m,ac#LOOP_REGION_COLL#int4#0#
  802. CONSTRAINT $0 <=
  803. IF $1 = MAXCPU
  804. CALC $0
  805. IF $1 < MAXCPU
  806. CALC MAXCPU $1000 *
  807. EXPLAIN
  808. "
  809. " This parameter describes the maximum number of attempts made to
  810. " obtain a region used by another task ( collision ).
  811. " If the attempt fails, the UKP/UKT falls asleep (semop).
  812. "
  813. " Set this parameter to a value > 0 ONLY for MULTIPROCESSOR computers.
  814. "
  815. " Default calculation, can be overridden
  816. "    IF MAXCPU = 1
  817. "    THEN
  818. "       LOOP_REGION_COLL := 0
  819. "    ELSIF MAXCPU > 1
  820. "       LOOP_REGION_COLL := MAXCPU * 1000
  821.  
  822. see Explain
  823.  
  824. (mandatory, 4 byte integer)
  825.  
  826. hi,m,ac#REG_LOCK_SLICE#int4#3000#
  827. CONSTRAINT
  828. " $1 <=
  829. " $10000 >=
  830. " AND
  831. EXPLAIN
  832. "
  833. " This parameter describes the maximum number of times the task can
  834. " try to get a region without being interrupted by another task in
  835. " this UKP/UKT. When this number is reached, the task voluntarily
  836. " interrupts itself and goes to dispatch.
  837. "
  838. " The lower and upper limits are:
  839. " 1 <= REG_LOCK_SLICE <= 10000
  840.  
  841. see Explain
  842.  
  843. (mandatory, 4 byte integer)
  844.  
  845. hi,ac,m#PRIO_TASK#int2#75#
  846. IF $1 = MAXCPU
  847. CALC $75
  848. ELSE
  849. CALC $79
  850. CONSTRAINT $256 >=
  851. " $0 <=
  852. " AND
  853. "
  854. EXPLAIN
  855. "   0: No priority will be given to any task.
  856. "   1: Priority relative to COMMANDS will be given to tasks
  857. "      WITHIN ONE UKP.
  858. "   2: Priority relative to COMMANDS will also be given to tasks of
  859. "      OTHER UKPs.
  860. "   4: Priority relative to UKP <-> UKP communication will be given
  861. "      to tasks.
  862. "   8: Priority tasks will be put to the first place when enqueuing in
  863. "      the COM, REX and RAV queue.
  864. "  64: PRIO 2 ALLOWED
  865. " 128: Priority relative to the COMMIT command will be given to tasks.
  866. "
  867. " Default calculation, can be overridden
  868. "    IF MAXCPU = 1
  869. "    THEN
  870. "       PRIO_TASK := 75
  871. "    ELSE
  872. "       PRIO_TASK := 79
  873.  
  874. PRIO_TASK specifies in which way priority will be given to tasks and/or
  875. commands. The value of PRIO_TASK is the sum of desired priorities.
  876.  
  877.  
  878. (mandatory, char(8))
  879.  
  880. hi,m,cs#DELAY_COMMIT#c8#no#
  881. CONSTRAINT $no =
  882. " $yes =
  883. " OR
  884. EXPLAIN
  885. "
  886. " DELAY_COMMIT = 'yes' oder 'no'
  887. "
  888. " 'yes' means: The task will wait for some time after releasing the locks
  889. "              when executing the commit statement.
  890. "              In this way, the probability of group commits will be
  891. "              increased.
  892. " 'no'  means: This parameter has no effect.
  893.  
  894. see Explain
  895.  
  896. (mandatory, char(8))
  897.  
  898. hi,m#DELAY_LOGWRITER#int2#0#
  899. CONSTRAINT $100 >
  900. " $0 <=
  901. " AND
  902. EXPLAIN
  903. "
  904. " > 0 = The logwriter waits for more log entries if the first log page
  905. "       in the log queue is not full
  906.  
  907. see Explain
  908.  
  909. (mandatory, 2 byte integer)
  910.  
  911. iv###GRP Caches
  912. xo,nx#MAXDATACACHE#int4#5000#
  913. CALC MAXUSERTASKS $10 *
  914. IF $200 >=
  915. CALC $200
  916.  
  917. Used for the calculation of DATA_CACHE_PAGES
  918.  
  919. m#DATA_CACHE_PAGES#int4#5000#
  920. IF MAXDATACACHE >
  921. CALC MAXDATACACHE
  922. IF MAXDATAPAGES <
  923. CALC MAXDATAPAGES
  924. IF DATA_CACHE_PAGES $10 / $10 * <>
  925. CALC DATA_CACHE_PAGES $10 / $1 + $10 *
  926. EXPLAIN
  927. "
  928. " The value for DATA_CACHE_PAGES depends on the database size, the number
  929. " of concurrent users, and the database applications in use.
  930. "
  931. " Use the database monitoring to obtain information about the
  932. " data cache hit rate.
  933. "
  934. " The lower and upper limits are:
  935. "     200 <= DATA_CACHE_PAGES <= MAXDATAPAGES <= 2147483640
  936. "
  937. "     DATA_CACHE_PAGES >= MAXUSERTASKS * 10
  938.  
  939. Size of the data cache ( in 4 KB pages )
  940.  
  941. (mandatory, 4 byte integer)
  942.  
  943. xo,nx#MAXPROCPAGES#int4#130#
  944. CALC MAXUSERTASKS $4 / $1 + $10 *
  945. IF $20 >=
  946. CALC $20
  947.  
  948. Used for the calculation of PROC_DATA_PAGES
  949.  
  950. m,ac#PROC_DATA_PAGES#int4#130#
  951. CONSTRAINT
  952. " PROC_DATA_PAGES  $10 / $10 * =
  953. " $20 <=
  954. " AND
  955. EXPLAIN
  956. "
  957. "  The main memory space for DB procedure executions is allocated
  958. "  out of this cache.
  959. "  The allocation unit is 10 pages (or 40 KB) per active DB procedure.
  960. "
  961. "  The lower and upper limits are:
  962. "
  963. "  20 <= PROC_DATA_PAGES <= 2147483640
  964. "
  965. "  DEFAULT CALCULATION
  966. "
  967. "  PROC_DATA_PAGES >= (MAXUSERTASKS DIV 4 + 1) * 10
  968. "  (can be overridden)
  969. "
  970. CALC MAXPROCPAGES
  971.  
  972. Size of the proc data cache ( in 4 KB pages )
  973.  
  974. (mandatory, 4 byte integer)
  975.  
  976. m,hi,nc#PROC_CODE_PAGES#int4#1#
  977. IF $1 <>
  978. FORCE $1
  979. CONSTRAINT
  980. " $1 =
  981.  
  982. PROC_CODE_PAGES must be set to 1
  983.  
  984. (mandatory, 4 byte integer)
  985.  
  986. m#TEMP_CACHE_PAGES#int4#30#
  987. IF $30 >
  988. CALC $30
  989. EXPLAIN
  990. "
  991. " If the TEMP_CACHE_PAGES limit is reached or if no more free memory
  992. " (RAM + swap) is available, the kernel will use the DATA_CACHE_PAGES.
  993. " This will decrease the performance, because permanent objects
  994. " will be displaced.
  995. "
  996. " Use the database monitoring to obtain information about the
  997. " temp cache hit rate.
  998. "
  999. " The lower and upper limits are:
  1000. " 30 <= TEMP_CACHE_PAGES <= 2147483647
  1001. "
  1002.  
  1003. Number of 4 KB blocks to be allocated in main memory when a UKP/UKT
  1004. needs temporary cache for temporary objects like result tables.
  1005.  
  1006.  
  1007. (mandatory, 4 byte integer)
  1008.  
  1009. m,od#CATALOG_CACHE_PAGS#int4#32#
  1010. IF MAXUSERTASKS $1 + $16 * >
  1011. FORCE MAXUSERTASKS $1 + $16 *
  1012. EXPLAIN
  1013. "
  1014. "  The catalog cache is allocated in the memory for
  1015. "  session-specific parse and catalog information.
  1016. "
  1017. "  The lower and upper limits are:
  1018. "  (MAXUSERTASKS + 1) * 16 <= CATALOG_CACHE_PAGS <= 2147483647
  1019. "
  1020. "  DEFAULT CALCULATION
  1021. "  CATALOG_CACHE_PAGS := (MAXUSERTASKS + 1) * 16
  1022. "  (can be overridden)
  1023. "
  1024. "  Use the database monitoring to obtain information about the
  1025. "  catalog cache hit rate.
  1026. "
  1027.  
  1028. Size of memory supply for the allocation of the catalog caches of all
  1029. user tasks in 4 KB pages
  1030.  
  1031. (mandatory, 4 byte integer)
  1032.  
  1033.  
  1034. m,hi,nc#KERNEL_ALLOC_POOL#int4#0#
  1035. CALC PROC_DATA_PAGES TEMP_CACHE_PAGES + CATALOG_CACHE_PAGS +
  1036. EXPLAIN
  1037. "
  1038. " KERNEL_ALLOC_POOL :=    CALC PROC_DATA_PAGES
  1039. "                       + TEMP_CACHE_PAGES
  1040. "                       + CATALOG_CACHE_PAGS
  1041. "
  1042.  
  1043. see Explain
  1044.  
  1045. (mandatory, 4 byte integer)
  1046.  
  1047. m,hi#DISTRIB_DESC_CACHE#int4#100#
  1048. CALC MAXUSERTASKS MAXSERVERTASKS + $2 + MAXSERVERDB $2 * +
  1049. EXPLAIN
  1050. "
  1051. " Commands to local or remote server tasks are administered by
  1052. " descriptors. These descriptors inform about the following:
  1053. "    the sender and receiver, which commands are still to be sent,
  1054. "    which commands are being processed by a local server task,
  1055. "    which tasks are waiting for a response, which tasks have not yet
  1056. "    fetched the response.
  1057. "
  1058. " This parameter is used in three situations:
  1059. " - in a distributed environment
  1060. " - for a parallel SAVE
  1061. " - for a parallel RESTORE
  1062. "
  1063. " DISTRIB_DESC_CACHE := MAXUSERTASKS + MAXSERVERTASKS + 2
  1064. "                       + MAXSERVERDB * 2
  1065. "
  1066.  
  1067. Number of message descriptors to be allocated for the message
  1068. descriptor cache
  1069.  
  1070. (mandatory, 4 byte integer)
  1071.  
  1072. m,hi,nx,nc#DISTR_CMD_CACHE#int2#
  1073. CALC MAXSERVERTASKS $2 + MAXSERVERDB $2 * +
  1074. IF $1000 <
  1075. CALC $1000
  1076.  
  1077. Used for the calculation of DISTRIB_CMD_CACHE
  1078.  
  1079. m,hi#DISTRIB_CMD_CACHE#int2#10#
  1080. IF DISTR_CMD_CACHE >
  1081. FORCE DISTR_CMD_CACHE
  1082. CONSTRAINT
  1083. " $1 <=
  1084. " $1000 >=
  1085. " AND
  1086. EXPLAIN
  1087. "
  1088. " The size of a message buffer is 8280 bytes.
  1089. "
  1090. " A command to be sent is temporarily stored in the command cache
  1091. " until it can be sent by the sender. Receiving commands are also kept
  1092. " in the command cache until they can be fetched by their task.
  1093. "
  1094. " This parameter is used in three situations:
  1095. " - in a distributed environment
  1096. " - for a parallel SAVE
  1097. " - for a parallel RESTORE
  1098. "
  1099. " DEFAULT CALCULATION
  1100. " DISTRIB_CMD_CACHE := MAXSERVERTASKS + 2 + MAXSERVERDB * 2
  1101. "                      if possible
  1102. " (can be overridden)
  1103. "
  1104. " The lower and upper limits are:
  1105. " 1 <= DISTRIB_CMD_CACHE <= 100
  1106. "
  1107.  
  1108. Number of message buffers to be allocated for the message
  1109. buffer cache
  1110.  
  1111. (mandatory, 2 byte integer)
  1112.  
  1113. m#LOG_QUEUE_PAGES#int2#50#
  1114. CONSTRAINT
  1115. " $1 <=
  1116. " $2048 >=
  1117. " AND
  1118. EXPLAIN
  1119. "
  1120. " The LOG_QUEUE helps to avoid peak loads and to allow for larger
  1121. " blocking factors when writing the log.
  1122. "
  1123. " Use the database monitoring to obtain information about the number of
  1124. " LOG QUEUE OVERFLOWS and LOG QUEUE MAX USED ENTRIES.
  1125. "
  1126. " The lower and upper limits are:
  1127. " 1 <= LOG_QUEUE_PAGES <= 2048
  1128. "
  1129.  
  1130. Size of the LOG_QUEUE in 4 KB pages
  1131.  
  1132. (mandatory, 2 byte integer)
  1133.  
  1134. m#LOG_CACHE_PAGES#int2#20#
  1135. CONSTRAINT
  1136. " $3 <=
  1137. " $255 >=
  1138. " AND
  1139. EXPLAIN
  1140. "
  1141. " The LOG_CACHE is a main memory area for the caching of log pages
  1142. " to accelerate ROLLBACKs.
  1143. "
  1144. " The lower and upper limits are:
  1145. " 3 <= LOG_CACHE_PAGES <= 255
  1146. "
  1147. " Use the database monitoring to obtain information about the
  1148. " log cache hit rate.
  1149. "
  1150.  
  1151. Size of the LOG_CACHE in 4 KB pages
  1152.  
  1153. (mandatory, 2 byte integer)
  1154.  
  1155. m,hi#LOG_MAX_COPY_PAGES#int4#0#
  1156.  
  1157. To reduce the checkpoint wait time the open transactions
  1158. are copied behind the checkpoint.
  1159. The parameter specifies the maximum number of log pages per checkpoint
  1160. containing copied transactions.
  1161.  
  1162. (mandatory, 4 byte integer)
  1163.  
  1164. hi,m#FBM_CACHE_PAGES#int2#
  1165. CALC MAXDATAPAGES $16320 / MAXDATADEVSPACES +
  1166. EXPLAIN
  1167. "
  1168. " The FBM administers the physical blocks of the data devspaces.
  1169. " There is one FBM for each DATA DEVSPACE.
  1170. "
  1171. " FBM_CACHE_PAGES are computed by:
  1172. "
  1173. " (MAXDATAPAGES / 16320) + MAXDATADEVSPACES - 3
  1174. "
  1175.  
  1176. Number of 4 KB blocks to be allocated in main memory for
  1177. the Free Block Management Cache.
  1178.  
  1179. (mandatory, 2 byte integer)
  1180.  
  1181.  
  1182. m,hi#_SVP_1_CONV_FLUSH#c8#NO#
  1183. CONSTRAINT $YES =
  1184. " $NO =
  1185. " OR
  1186. EXPLAIN
  1187. "
  1188. " _SVP_1_CONV_FLUSH 'YES' or 'NO'
  1189. "
  1190. " 'YES' means: flush the converter cache before savepoint
  1191. "
  1192. " 'NO'  means: don't flush the converter cache before savepoint
  1193. "
  1194.  
  1195. This parameter specifies whether or not the converter cache should be
  1196. flushed before the savepoint
  1197.  
  1198. (mandatory, char(8))
  1199.  
  1200. m#CONV_CACHE_PAGES#int4#100#
  1201. IF DATA_CACHE_PAGES $5 / >
  1202. FORCE DATA_CACHE_PAGES $5 /
  1203. IF MAXDATAPAGES $170 / MAXDATAPAGES $680 / + $2 + <
  1204. FORCE MAXDATAPAGES $170 / MAXDATAPAGES $680 / + $2 +
  1205. CONSTRAINT $23 <=
  1206. EXPLAIN
  1207. "
  1208. " The converter converts a logical page number into
  1209. " a physical block address on the secondary storage.
  1210. "
  1211. " Every access to a data page on secondary storage (I/O) runs
  1212. " through the converter. If the converter cache is too small, it can
  1213. " happen that a page for the converter must be caught from the
  1214. " secondary storage.
  1215. "
  1216. " The size of the converter cache depends on the size of the
  1217. " data cache. A huge data cache needs a huge converter cache.
  1218. " The size of the converter cache is important for the performance.
  1219. "
  1220. " Use the database monitoring to obtain information about the
  1221. " converter cache hit rate.
  1222. "
  1223. " The lower and upper limits are:
  1224. "
  1225. " 23 <= CONV_CACHE_PAGES
  1226. " CONV_CACHE_PAGES <= MAXDATAPAGES DIV 170 + 1 +
  1227. "                     MAXDATAPAGES DIV 680 + 1
  1228. "
  1229. " CONV_CACHE_PAGES => DATA_CACHE_PAGES / 5 if possible
  1230. "
  1231.  
  1232. Size of the converter cache ( in 4 KB pages )
  1233. In the converter, data pages are assigned to addresses on data devspaces.
  1234.  
  1235. (mandatory, 2 byte integer)
  1236.  
  1237. hi,m#USM_CACHE_PAGES#int2#4#
  1238. EXPLAIN
  1239. "
  1240. " The USM controls the user specific TEMPLIMIT/PERMLIMIT.
  1241.  
  1242. Number of 4 KB blocks to be allocated in main memory for the User Storage
  1243. Management Cache
  1244.  
  1245. (mandatory, 2 byte integer)
  1246.  
  1247. nx,nc,xo#MINPNOPOOLSIZE#int4#
  1248. IF DATA_CACHE_PAGES < $500
  1249. CALC $500 $20 *
  1250. ELSIF DATA_CACHE_PAGES > $100000
  1251. CALC $100000 $20 *
  1252. ELSE
  1253. CALC DATA_CACHE_PAGES $20 *
  1254.  
  1255. m#PNOPOOLSIZE#int4#10000#
  1256. IF MINPNOPOOLSIZE >
  1257. FORCE MINPNOPOOLSIZE
  1258. IF MAXDATAPAGES <
  1259. FORCE MAXDATAPAGES
  1260. EXPLAIN
  1261. "
  1262. " MINPNOPOOLSIZE <= PNOPOOLSIZE < MAXDATAPAGES
  1263. "
  1264. " IF DATA_CACHE_PAGES < 500
  1265. " THEN
  1266. "     MINPNOPOOLSIZE := 500 * 20
  1267. " ELSE
  1268. "     IF DATA_CACHE_PAGES > 100000
  1269. "     THEN
  1270. "         MINPNOPOOLSIZE := 100000 * 20
  1271. "     ELSE
  1272. "         MINPNOPOOLSIZE := DATA_CACHE_PAGES * 20
  1273.  
  1274. Size of the main memory pool that serves to accelerate the search
  1275. for free data pages
  1276.  
  1277. (mandatory, 4 byte integer)
  1278.  
  1279. iv###ENDGRP
  1280.  
  1281. xo,nx#SAVE_QUEUE_SIZE#int2#
  1282. IF MAXDATADEVSPACES > MAXBACKUPDEVS
  1283. CALC MAXDATADEVSPACES $2 *
  1284. ELSE
  1285. CALC MAXBACKUPDEVS $2 *
  1286. EXPLAIN
  1287. "
  1288. " IF MAXDATADEVSPACES > MAXBACKUPDEVS
  1289. " CALC MAXDATADEVSPACES * 2
  1290. " ELSE
  1291. " CALC MAXBACKUPDEVS * 2
  1292. "
  1293. " (queue factor is 2.)
  1294.  
  1295.    Variable for SHAREDDYNDATA
  1296.  
  1297. xo,nx#SAVE_POOL_PAGES#int4#
  1298. CALC SAVE_QUEUE_SIZE $1 + $16 * $1 +
  1299. EXPLAIN
  1300. "
  1301. "   CALC (SAVE_QUEUE_SIZE + 1) * 16 + 1
  1302. "
  1303. "   (16 = max pages per block)
  1304. "   (+1 = restart record     )
  1305.  
  1306.    Variable for SHAREDDYNPOOL
  1307.  
  1308. xo,nx#SAVE_TASK_LIST#int4#
  1309. CALC MAXBACKUPDEVS MAXDATADEVSPACES + $16 *
  1310. EXPLAIN
  1311. "
  1312. "   CALC (MAXBACKUPDEVS + MAXDATADEVSPACES) * 16
  1313.  
  1314. xo,nx#SAVE_TAPE_LIST#int4#
  1315. CALC MAXBACKUPDEVS $624 *
  1316. EXPLAIN
  1317. "
  1318. "   CALC MAXBACKUPDEVS * 624
  1319.  
  1320. xo,nx#SAVE_DEVSP_LIST#int4#
  1321. CALC MAXDATADEVSPACES $56 *
  1322. EXPLAIN
  1323. "
  1324. "   CALC MAXDATADEVSPACES * 56
  1325.  
  1326. xo,nx#SAVE_SRR_QUEUE#int4#
  1327. CALC SAVE_QUEUE_SIZE $1 + $16 *
  1328. EXPLAIN
  1329. "
  1330. "   CALC (SAVE_QUEUE_SIZE + 1) * 16
  1331.  
  1332. xo,nx#SAVE_GLOB#int4#
  1333. CALC SAVE_TASK_LIST  SAVE_TAPE_LIST +
  1334. "    SAVE_DEVSP_LIST SAVE_SRR_QUEUE + +
  1335. EXPLAIN
  1336. "
  1337. "   CALC SAVE_TASK_LIST  + SAVE_TAPE_LIST
  1338. "      + SAVE_DEVSP_LIST + SAVE_SRR_QUEUE
  1339.  
  1340. xo,nx#B10_PNO_POOL#int4#
  1341. CALC
  1342. " PNOPOOLSIZE $4 *
  1343.  
  1344. xo,nx#HEADLISTSIZE#int4#
  1345. IF DATA_CACHE_PAGES DATA_CACHE_REGIONS / < $2500
  1346. CALC $10000 $8 * DATA_CACHE_REGIONS *
  1347. ELSIF DATA_CACHE_PAGES DATA_CACHE_REGIONS / > $500000
  1348. CALC $2000000 $8 * DATA_CACHE_REGIONS *
  1349. ELSE
  1350. CALC DATA_CACHE_PAGES $4 * $8 *
  1351.  
  1352. EXPLAIN
  1353. "
  1354. " IF DATA_CACHE_PAGES < 2500
  1355. " THEN
  1356. "     HEADLISTSIZE := 10000 * 8
  1357. " ELSE
  1358. "     IF DATA_CACHE_PAGES > 500000
  1359. "     THEN
  1360. "         HEADLISTSIZE := 2000000 * 8
  1361. "     ELSE
  1362. "         HEADLISTSIZE := DATA_CACHE_PAGES * 4 * 8
  1363.  
  1364. xo,nx#CONVHEADLISTSIZE#int4#
  1365. IF CONV_CACHE_PAGES < $1000
  1366. CALC $4000 $1 + $8 *
  1367. ELSIF CONV_CACHE_PAGES > $500000
  1368. CALC $2000000 $1 + $8 *
  1369. ELSE
  1370. CALC CONV_CACHE_PAGES $4 * $1 + $8 *
  1371. EXPLAIN
  1372. "
  1373. " IF CONV_CACHE_PAGES < 1000
  1374. " THEN
  1375. "     CONVHEADLISTSIZE := 4000 * 8
  1376. " ELSE
  1377. "     IF CONV_CACHE_PAGES > 500000
  1378. "     THEN
  1379. "         CONVHEADLISTSIZE := 2000000 * 8
  1380. "     ELSE
  1381. "         CONVHEADLISTSIZE := CONV_CACHE_PAGES * 4 * 8
  1382.  
  1383.  
  1384. m,hi,nc#SHAREDDYNDATA#int4#
  1385. CALC FBM_CACHE_PAGES USM_CACHE_PAGES + CONV_CACHE_PAGES +
  1386. " DATA_CACHE_PAGES + LOG_QUEUE_PAGES + LOG_CACHE_PAGES +
  1387. " NUM_BUFREADER $8 * +
  1388. " SAVE_POOL_PAGES + $8 + MAXUSERTASKS + $1 + PROC_CODE_PAGES +
  1389. EXPLAIN
  1390. "
  1391. " SHAREDDYNDATA :=
  1392. "
  1393. " FBM_CACHE_PAGES + USM_CACHE_PAGES + CONV_CACHE_PAGES
  1394. " + DATA_CACHE_PAGES + LOG_QUEUE_PAGES + LOG_CACHE_PAGES
  1395. " + NUM_BUFREADER * 8
  1396. " + SAVE_POOL_PAGES + 8 + MAXUSERTASKS + 1 + PROC_CODE_PAGES
  1397.  
  1398. Size of the storage space, in 4 KB pages
  1399.  
  1400. This space is reserved for the dynamic global data, such as
  1401. the data cache, the lock list and the log buffer.
  1402.  
  1403. Out of this space, the kernel allocates pages using VNEWBUF.
  1404.  
  1405. (mandatory, 4 byte integer)
  1406.  
  1407. xo,nx#TREEHASHLIST#int4#0#
  1408. CALC
  1409. " DATA_CACHE_PAGES $10 * TREE_REGIONS /  $200 +
  1410. IF $2000000 <
  1411. CALC $2000000
  1412.  
  1413. xo,nx#TREELOCKSIZE#int4#0#
  1414. CALC
  1415. " TREEHASHLIST $4 *
  1416. " MAXUSERTASKS MAXSERVERTASKS $2 + + $2 * $44 *
  1417. "+ TREE_REGIONS *
  1418.  
  1419.  
  1420. EXPLAIN
  1421. " Storage for the BD treelocklist, including hash, lock and
  1422. " request list.
  1423.  
  1424. xo,nx#CACHESIZEINFOSIZE#int4#0#
  1425. CALC
  1426. " MAXUSERTASKS $1 + $4 *
  1427. " MAXUSERTASKS $1 + $24 *
  1428. "+
  1429.  
  1430. xo,nx#FBM_SIZES#int4#0#
  1431. CALC
  1432. " $60
  1433. " MAXDATADEVSPACES $1 + $52 * +
  1434. " FBM_CACHE_PAGES +
  1435.  
  1436. xo,nx#DISTRIB_DESC_SIZE#int4#0#
  1437. CALC
  1438. " DISTRIB_DESC_CACHE $40 *
  1439.  
  1440. xo,nx#DISTRIB_CMD_SIZES#int4#0#
  1441. CALC
  1442. " DISTRIB_CMD_CACHE $32 *
  1443. " DISTRIB_CMD_CACHE $8280 * +
  1444.  
  1445. xo,nx#DISTRIB_TASK_SIZES#int4#0#
  1446. CALC
  1447. " MAXUSERTASKS MAXSERVERTASKS $2 + +
  1448. " MAXUSERTASKS MAXSERVERTASKS $2 + + $2 / +
  1449. " $32 *
  1450. " MAXSERVERTASKS $24 * +
  1451.  
  1452. xo,nx#DISTRIB_SITE_SIZE#int4#0#
  1453. CALC
  1454. " MAXSERVERDB $120 *
  1455.  
  1456. xo,nx#USM_SIZE#int4#0#
  1457. CALC
  1458. " USM_CACHE_PAGES $8 *
  1459.  
  1460. xo,nx#CONV_CTRL_SIZE#int4#0#
  1461. CALC
  1462. " MAXUSERTASKS MAXSERVERTASKS $8 + + $16 *
  1463. " CONV_CACHE_PAGES $40 *
  1464. " +
  1465.  
  1466. xo,nx#TEMPIO_CTRL_SIZE#int4#0#
  1467. CALC
  1468. " MAXUSERTASKS $1 + $8 *
  1469.  
  1470. xo,nx#B20_SVP_ROOT_FREE#int4#0#
  1471. IF PNOPOOLSIZE  < $10000
  1472. CALC $1000 $12 *
  1473. ELSIF PNOPOOLSIZE  > $200000
  1474. CALC $20000 $12 *
  1475. ELSE
  1476. CALC PNOPOOLSIZE $10 / $12 *
  1477.  
  1478. xo,nx#B20_SVP_PNO_FREE#int4#0#
  1479. IF PNOPOOLSIZE  < $10000
  1480. CALC $10000 $12 *
  1481. ELSIF PNOPOOLSIZE  > $200000
  1482. CALC $200000 $12 *
  1483. ELSE
  1484. CALC PNOPOOLSIZE  $12 *
  1485.  
  1486. xo,nx#DATAC_CTRL_SIZE#int4#0#
  1487. CALC
  1488. " DATA_CACHE_PAGES $10 / $4 *
  1489. " MAXUSERTASKS MAXSERVERTASKS $8 + + $16 * DATA_CACHE_REGIONS *
  1490. " DATA_CACHE_PAGES $64 *
  1491. "B20_SVP_PNO_FREE
  1492. "B20_SVP_ROOT_FREE
  1493. "+ + + +
  1494.  
  1495. xo,nx#LOCK_LIST_SIZE#int4#0#
  1496. CALC
  1497. " MAXLOCKS $2 * $56 *
  1498. " MAXTRANS $120 *
  1499. " +
  1500.  
  1501. xo,nx#LOG_QUEUE_SIZE#int4#0#
  1502. CALC
  1503. " MAXUSERTASKS MAXSERVERTASKS $2 + + $8 *
  1504.  
  1505. m,hi,nc#SHAREDDYNPOOL#int4#
  1506. CALC
  1507. " CACHESIZEINFOSIZE FBM_SIZES + DISTRIB_DESC_SIZE +
  1508. " DISTRIB_CMD_SIZES + DISTRIB_TASK_SIZES + DISTRIB_SITE_SIZE +
  1509. " B10_PNO_POOL + USM_SIZE + CONVHEADLISTSIZE +
  1510. " CONV_CTRL_SIZE + TEMPIO_CTRL_SIZE + HEADLISTSIZE +
  1511. " DATAC_CTRL_SIZE + TREELOCKSIZE + LOCK_LIST_SIZE +
  1512. " LOG_QUEUE_SIZE + SAVE_GLOB +
  1513. " $1024 /
  1514. " $3 +
  1515. EXPLAIN
  1516. "
  1517. " SHAREDDYNPOOL :=
  1518. "
  1519. " ((CONV_CACHE_PAGES + ISM_CACHE_PAGES + USM_CACHE_PAGES) * 8 +
  1520. " (MAXUSERTASKS + 1) * 8 + (DATA_CACHE_PAGES * 80) +
  1521. " (DATA_CACHE_PAGES / 10) * 4 +
  1522. "  HEADLISTSIZE + TREELOCKSIZE + (PNOPOOLSIZE * 4) +
  1523. " (MAXUSERTASKS + 1) * 28 +
  1524. " (MAXUSERTASKS + MAXSERVERTASKS + 8) * 32 +
  1525. " (MAXUSERTASKS + MAXSERVERTASKS + 2) * 84 +
  1526. " (MAXLOCKS * 2 * 56) + (MAXTRANS * 120) +
  1527. " (DISTRIB_DESC_CACHE * 40) +
  1528. " (DISTRIB_CMD_CACHE * 8300) +
  1529. " (MAXSERVERTASKS * 24) +
  1530. " MAXSERVERDB * 92 +
  1531. " SAVE_GLOB
  1532. " / 1024 + 3
  1533.  
  1534. Size of the storage space, in KB
  1535.  
  1536. This space is reserved for the dynamic global data (4 byte integer).
  1537. Out of this space, the kernel allocates buffers of various sizes
  1538. using VALLOCAT.
  1539.  
  1540. (mandatory, 4 byte integer)
  1541.  
  1542. iv###GRP HIDDEN Optimizer
  1543. hi,m,ac#DISTINCT_OVERHEAD#int4#1#
  1544. CONSTRAINT
  1545. " $1 <=
  1546. " $50 >=
  1547. " AND
  1548. CALC $1
  1549. EXPLAIN
  1550. "
  1551. " Small values of DISTINCT_OVERHEAD are favorable for OR terms
  1552. " that produce different sets of hits.
  1553. " Large values of DISTINCT_OVERHEAD are favorable for OR terms
  1554. " that produce similar sets of hits.
  1555. " The lower and upper limits are:
  1556. "
  1557. " 1 <= DISTINCT_OVERHEAD <= 50
  1558.  
  1559. This parameter modifies the optimization of OR qualifications.
  1560.  
  1561. (mandatory, 4 byte integer)
  1562.  
  1563.  
  1564. hi,m#ORDERBY_FACTOR#int4#2#
  1565. CONSTRAINT
  1566. " $1 <=
  1567. " $10 >=
  1568. " AND
  1569. EXPLAIN
  1570. "
  1571. " Large values of ORDERBY_FACTOR support the usage of an index for
  1572. " the processing of ORDER BY. Since it is not necessary to generate the
  1573. " complete result set physically, the first hit rows will be produced fast.
  1574. " This is only true for simple selects, not for joins.
  1575. "
  1576. " The lower and upper limits are:
  1577. "
  1578. " 1 <= ORDERBY_FACTOR <= 10
  1579.  
  1580. This parameter modifies the optimization of ORDER BY qualifications.
  1581.  
  1582. (mandatory, 4 byte integer)
  1583.  
  1584.  
  1585. hi,m,ac#_OPTIM_MAX_MERGE#int4#1000#
  1586. IF _OPTIM_MAX_MERGE < $1000
  1587. CALC $1000
  1588. CONSTRAINT
  1589. " $1 <=
  1590.  
  1591. EXPLAIN
  1592. "
  1593. " Strategies merging index lists cause a large internal overhead.
  1594. " This overhead consists in the generation of a temporary index.
  1595. " While the temporary index is generated, the permanent index is
  1596. " locked for other transactions.
  1597. "
  1598. " To limit the lock time and to minimize the overhead, these strategies
  1599. " are only performed when the number of index pages concerned is less
  1600. " than equal to _OPTIM_MAX_MERGE.
  1601. " The alternative to these strategies is a strategy that only works
  1602. " on the base table.
  1603. "
  1604. " The lower and upper limits are:
  1605. "
  1606. "     1 <= _OPTIM_MAX_MERGE
  1607. "
  1608. " Default calculation, can be overridden
  1609. "
  1610. " IF _OPTIM_MAX_MERGE < 1000
  1611. " THEN
  1612. "     _OPTIM_MAX_MERGE := 1000
  1613.  
  1614. This parameter modifies the optimization of Strategies, which merge
  1615. index lists
  1616.  
  1617. (mandatory, 4 byte integer)
  1618.  
  1619.  
  1620. iv###ENDGRP
  1621. cl,m,cs#RUNDIRECTORY#c64#
  1622. EXPLAIN
  1623. "
  1624. " The RUNDIRECTORY defines the current directory for kernel tasks
  1625.  
  1626. Name of the path where context information, including diagnose
  1627. information, is stored for this SERVERDB.
  1628.  
  1629. (mandatory, char(64))
  1630.  
  1631. iv###GRP Diagnose
  1632.  
  1633.  
  1634. m,cs,hi#DIAGFILE          #c64#knldiag#
  1635. CALC $knldiag
  1636. EXPLAIN
  1637. "
  1638. " In general, this is the name of the diag file.
  1639. " The messages are database error and informative messages
  1640. " of any priority.
  1641.  
  1642. Name of the destination to which all messages will be sent.
  1643.  
  1644. (mandatory, char (64))
  1645.  
  1646. m,od#DIAGSIZE#int2#100#
  1647. CALC $100
  1648. CONSTRAINT $100 <=
  1649. EXPLAIN
  1650. "
  1651. " The file is written cyclically.
  1652. "
  1653. " The lower limit is:
  1654. "     100 <= DIAGSIZE
  1655.  
  1656. Size (in 4 KB pages) of the diag file where informative messages,
  1657. warnings, and error messages of the database kernel are stored.
  1658.  
  1659. (mandatory, 2 byte integer)
  1660.  
  1661. m,cs,hi#KERNELTRACEFILE#c40#knltrace#
  1662. EXPLAIN
  1663. "
  1664. " Trace entries will be written by the kernel to this file.
  1665. "
  1666. " The operator user must activate the trace facility using
  1667. " the DIAGNOSE VTRACE menu; otherwise no trace will be written.
  1668.  
  1669. Name of the kernel trace file
  1670.  
  1671. (mandatory, char(40))
  1672.  
  1673. m#KERNELTRACESIZE#int2#200#
  1674. CONSTRAINT $50 <=
  1675. EXPLAIN
  1676. "
  1677. " The file is written cyclically.
  1678. "
  1679. " The lower limit is:
  1680. "     50 <= KERNELTRACESIZE
  1681.  
  1682. Size of the kernel trace file in 4 KB blocks
  1683.  
  1684. (mandatory, 2 byte integer)
  1685.  
  1686. m,cs,hi#KERNELDUMPFILE#c64#knldump#
  1687. EXPLAIN
  1688. "
  1689. " In the case of a database kernel crash or an emergency shutdown,
  1690. " the kernel saves some global data structures like the data cache
  1691. " or lock list into the so-called dump file.
  1692. "
  1693. " Be careful with your memory space! There must be sufficient
  1694. " space for the dump file!
  1695.  
  1696. Name of the dump host file
  1697.  
  1698. (mandatory, char(64))
  1699.  
  1700. iv###ENDGRP
  1701.  
  1702. fi,hi,cs,an#----------------------------------------------------------#
  1703. fi,hi,cs,an#Minimum size of real memory needed for the database kernel#
  1704. fi,hi,cs,an#to prevent paging. Memory needs of the OS kernel or#
  1705. fi,hi,cs,an#running applications are not considered.#
  1706.  
  1707. fi,hi,nx,nc#RAMSIZE_MB#int4#
  1708. CALC $4 SHAREDDYNDATA * SHAREDDYNPOOL +
  1709. " TEMP_CACHE_PAGES CATALOG_CACHE_PAGS + PROC_DATA_PAGES + $4 * +
  1710. " MAXUSERTASKS MAXSERVERTASKS + MAXUSERSTACK * + $5000 +
  1711. " $1024 / $1 +
  1712.