2.2.53 Operands related to shared memory
- 223) SHMMAX maximum-shared-memory-segment-size
- ~<unsigned integer> (megabytes)
- 32-bit mode: ((6-2047))<<100>>
- 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 512 shared memory segments for global buffers per server. 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 KFPH23051-W message.
If the KFPH23005-E message displays error code 20, take the appropriate action by referencing the manual HiRDB Version 9 Messages.
- For 64-bit mode
If the size of shared memory for global buffers is 512 gigabytes or less, there is no need to specify this operand.
If the size of shared memory for global buffers is greater than 512 gigabytes, specify the value that satisfies the following condition:
SHMMAX operand value
512
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 cannot be changed when HiRDB is restarted.
- The number of shared memory segments is restricted by the OS's operating system parameters shmmax, shmmni and shmseg (shminfo_shmmax, shminfo_shmmin and shminfo_shmseg for Solaris, and shmmax, SHMMIN and SHMSEG for Linux). Consequently, when you are allocating multiple shared memory segments for global buffers, you might not be able to allocate shared memory beyond these restrictions. In this case, take the following actions in the order specified:
1. Increase the values of shmmni and shmseg.
2. Set shmmax to a value that is greater than the value of the SHMMAX operand.
3. Re-estimate the number of global buffers to reduce the size of the shared memory used for the global buffer.
For details about the shmmax, shmmni, and shmseg parameters, see the documentation for the applicable OS. For details about how to estimate the values of shmmax, shmmni, and shmseg, see the HiRDB Version 9 Installation and Design Guide.
- 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
- 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 configuration
- Formula for size of shared memory used by global buffers under Estimating the memory size required for a HiRDB single server configuration
- Memory required by in-memory data processing under Estimating the memory size required for a HiRDB parallel server configuration
- Formula for size of shared memory used by global buffers under Estimating the memory size required for a HiRDB parallel server configuration
- Estimating HP-UX OS parameter values
- Estimating Linux kernel parameter values
- Estimating Solaris OS parameter values
- HiRDB single server configuration under Determining Environment Variables Related to the Number of Resources
- HiRDB parallel server configuration under Determining Environment Variables Related to the Number of Resources