2.2.51 Operands related to shared memory

244) SHMMAX maximum-shared-memory-segment-size
~<unsigned integer> (megabytes)
  • 32-bit mode: ((6-2047)) <<200>>
  • 64-bit mode: ((6-4194304)) <<1024>>
Specifies, in megabytes, the maximum segment size for the shared memory for global buffer.
HiRDB allocates shared memory segments for global buffers up to the size specified for this operand. If the total size of the global buffers allocated to RDAREAs on the server machine exceeds the value specified for this operand, multiple shared memory segments are allocated.
When HiRDB starts, HiRDB can allocate a maximum of 16 shared memory segments for global buffers per server. Note that, in the 32-bit mode, the maximum number of shared memory segments that can be allocated when HiRDB starts is the value specified for the pd_max_dbbuff_shm_no operand. You can use the pdls -d mem command to obtain information about the shared memory segments used for global buffers. For details about the pdls -d mem command, see the manual HiRDB Version 9 Command Reference.
Specification guidelines
  • For 32-bit mode
    Normally, this operand does not need to be specified. Specify this operand only if HiRDB startup fails with the KFPH23005-E message (error code 24) issued. For details, see the handling of the KFPH23005-E message.
    If the KFPH23005-E message displays error code 20, take the appropriate action by referencing the manual HiRDB Version 9 Messages.
    If the facility for dynamically changing global buffer is used and the value of the SHMMAX operand is too large, the restart processing might fail because the required area cannot be allocated. To avoid this, specify a value of 50 or smaller in the SHMMAX operand.
  • For 64-bit mode
    If the size of shared memory for global buffers is 16 gigabytes or less, there is no need to specify this operand.
    If the size of shared memory for global buffers is greater than 16 gigabytes, specify the value that satisfies the following condition:
    SHMMAX operand value[Figure] 16 [Figure] size of shared memory for global buffers
Operand rule
If the specified value extends beyond the permitted range, the default value is assumed.
Notes
  • For SHMMAX, specify a value that is larger than the size of the area for managing the shared memory used for the global buffers. If a larger value is not specified, HiRDB cannot be started. For details about the formula for determining the size of the area for managing the shared memory used for the global buffers, see Formula for size of shared memory used by global buffers in the HiRDB Version 9 Installation and Design Guide.
  • If the facility for dynamically changing global buffer is used, the value of the SHMMAX operand can be changed only after normal termination. If the KFPH23005-E message with error code 20 is issued after forced termination or during restart following planned termination, change the specified value by referencing item 3 in the table provided for error code 20 in the KFPH23005-E message in the manual HiRDB Version 9 Messages.
  • If the shared memory is to be allocated to a file under the HiRDB directory, but there is not enough free space on the disk containing the HiRDB directory, an insufficient disk capacity error occurs.
  • If the shared memory is to be allocated to a page file, but the page file capacity is not sufficient, an insufficient page file capacity error occurs.
  • If you use the facility for fixing shared memory pages, specify a value in this operand that is an integral multiple of the page size of a Windows large page. Shared memory pages are fixed in the following cases:
    [Figure]The value fixed is specified in the pd_dbbuff_attribute operand.
    [Figure]A value of 1 or greater is specified in the pd_max_resident_rdarea_no operand.
    If the specified value is not an integral multiple of the page size, HiRDB increases it to the next integral multiple of the page size.
  • If the value of the SHMMAX operand is changed, re-estimate the pd_max_dbbuff_shm_no operand value and the number of resources (amount of shared memory) required for the PDUXPLSHMMAX system environment variable.
Relationship to other operands
This operand is related to the following operands:
  • pd_dbbuff_modify
  • pdbuffer
  • pd_max_add_dbbuff_no
  • pd_max_add_dbbuff_shm_no
  • pd_sysdef_default_option (If v6compatible is specified for HiRDB for 32-bit mode, the default value of the SHMMAX operand is 6.)
  • pd_max_dbbuff_shm_no
  • PDUXPLSHMMAX system environment variable
Effects on individual estimation formulas
If the value of the SHMMAX operand is changed, the following estimation formulas are affected:
HiRDB Version 9 Installation and Design Guide:
  • Memory required by in-memory data processing under Estimating the memory size required for a HiRDB/Single Server
  • Formula for size of shared memory used by global buffers under Estimating the memory size required for a HiRDB/Single Server
  • Memory required by in-memory data processing under Estimating the memory size required for a HiRDB/Parallel Server
  • Formula for size of shared memory used by global buffers under Estimating the memory size required for a HiRDB/Parallel Server
  • HiRDB/Single Server under Determining Environment Variables Related to the Number of Resources
  • HiRDB/Parallel Server under Determining Environment Variables Related to the Number of Resources