Configuration Group Management for DB2¶
This spec talks about how to enable configuration group management for DB2.
Launchpad Blueprint: https://blueprints.launchpad.net/trove/+spec/db2-config-group
Problem Description¶
Trove supports configuration group management but this feature has not been implemented for DB2.
Proposed Change¶
DB2 supports both database manager configuration parameters and database configuration parameters. The database manager configuration parameters apply to an instance whereas the database configuration parameter applies to each database. In this spec, we talk about implementing configuration management for the DB2 database manager.
The database manager configuration parameters are stored in the db2systm file under the sqllib directory. To update the configuration parameters, DB2 recommends using the UPDATE DBM CONFIGURATION and RESET DBM CONFIGURATION commands instead of directly updating the config file. To see a complete list of configuration parameters, check the Appendix section.
Configuration¶
None
Database¶
None
Public API¶
None
Public API Security¶
None
Python API¶
None
CLI (python-troveclient)¶
None
Internal API¶
None
Guest Agent¶
Implement update_overrides and apply_overrides in the manager and service modules.
The following files will be updated:
/opt/stack/trove/trove/guestagent/datastore/experimental/db2/manager.py /opt/stack/trove/trove/guestagent/datastore/experimental/db2/service.py /opt/stack/trove/trove/guestagent/datastore/experimental/db2/system.pyThe following file will be added:
/opt/stack/trove/trove/templates/db2/validation-rules.json
This will fit into the existing configuration manager framework. The existing ‘PropertiesCodec’ implementation will be reused to handle text-file operations. Configuration overrides will be implemented using the ‘ImportStrategy’ of the guestagent configuration manager.
Alternatives¶
None
Dashboard Impact (UX)¶
None
Implementation¶
Assignee(s)¶
Milestones¶
Newton
Work Items¶
Implement configuration-related manager API calls
def update_overrides(self, context, overrides, remove=False) def apply_overrides(self, context, overrides)
Write unit tests/integration tests were applicable
Upgrade Implications¶
None
Dependencies¶
None
Testing¶
Unit and integration tests will be added to test the new functionality
Documentation Impact¶
The documentation will be updated to reflect the new features supported by Trove for DB2.
References¶
Appendix¶
The database manager configuration parameters have been listed below. For a detailed description of each parameter, please refer[1]_. The parameters listed below are the ones that are relevant for the DB2 Express-C version. The link referenced in 1 gives a complete list of parameters for the DB2 enterprise edition:
AGENTPRI
AGENT_STACK_SZ
ALTERNATE_AUTH_ENC
ASLHEAPSZ
AUDIT_BUF_SZ
CATALOG_NOAUTH
CLNT_KRB_PLUGIN
CLNT_PW_PLUGIN
COMM_EXIT_LIST
CUR_EFF_ARCH_LVL
CUR_EFF_CODE_LVL
DFT_ACCOUNT_STR
DFT_MON_BUFPOOL
DFT_MON_LOCK
DFT_MON_SORT
DFT_MON_STMT
DFT_MON_TABLE
DFT_MON_TIMESTAMP
DFT_MON_UOW
DIAGLEVEL
DIAGSIZE
DIR_CACHE
DISCOVER
DISCOVER_INST
FCM_NUM_BUFFERS
FCM_NUM_CHANNELS
FEDERATED
FED_NOAUTH
FENCED_POOL
GROUP_PLUGIN
HEALTH_MON
INDEXREC
INTRA_PARALLEL
JAVA_HEAP_SZ
KEEPFENCED
KEYSTORE_TYPE
LOCAL_GSSPLUGIN
MAX_CONNECTIONS
MAX_COORDAGENTS
MAX_QUERYDEGREE
MON_HEAP_SZ
NOTIFYLEVEL
NUMDB
NUM_INITAGENTS
NUM_INITFENCED
NUM_POOLAGENTS
RESYNC_INTERVAL
RQRIOBLK
SHEAPTHRES
SPM_LOG_FILE_SZ
SPM_MAX_RESYNC
SRVCON_AUTH
SRVCON_GSSPLUGIN_LIST
SRVCON_PW_PLUGIN
SRV_PLUGIN_MODE
SSL_CIPHERSPECS
SSL_CLNT_KEYDB
SSL_CLNT_STASH
SSL_SVCENAME
SSL_SVR_KEYDB
SSL_SVR_LABEL
SSL_SVR_STASH
SSL_VERSIONS
START_STOP_TIME
SYSADM_GROUP
SYSCTRL_GROUP
SYSMAINT_GROUP
SYSMON_GROUP
TM_DATABASE
TP_MON_NAME
TRUST_ALLCLNTS
TRUST_CLNTAUTH
UTIL_IMPACT_LIM
WLM_DISPATCHER
WLM_DISP_CONCUR
WLM_DISP_CPU_SHARES
WLM_DISP_MIN_UTIL
Guest agent controlled parameters:
ALT_DIAGPATH
AUTHENTICATION
DFTDBPATH
DIAGPATH
JDK_PATH
KEYSTORE_LOCATION