Modifies individual entries in a specific database configuration file or a database manager configuration file. A database configuration file resides on every node on which the database has been created.
Modifications to the database configuration file affect all database partitions by default.
To make an online modification of a configuration parameter for a specific database, a connection to the database is required. To make an online modification of a configuration parameter for the database manager, an attachment to an instance is not required.
db2ApiDf.h
SQL_API_RC SQL_API_FN
db2CfgSet (
db2Uint32 versionNumber,
void * pParmStruct,
struct sqlca * pSqlca);
typedef SQL_STRUCTURE db2Cfg
{
db2Uint32 numItems;
struct db2CfgParam *paramArray;
db2Uint32 flags;
char *dbname;
SQL_PDB_NODE_TYPE dbpartitionnum;
} db2Cfg;
typedef SQL_STRUCTURE db2CfgParam
{
db2Uint32 token;
char *ptrvalue;
db2Uint32 flags;
} db2CfgParam;
SQL_API_RC SQL_API_FN
db2gCfgSet (
db2Uint32 versionNumber,
void * pParmStruct,
struct sqlca * pSqlca);
typedef SQL_STRUCTURE db2gCfg
{
db2Uint32 numItems;
struct db2gCfgParam *paramArray;
db2Uint32 flags;
db2Uint32 dbname_len;
char *dbname;
} db2gCfg;
typedef SQL_STRUCTURE db2gCfgParam
{
db2Uint32 token;
db2Uint32 ptrvalue_len;
char *ptrvalue;
db2Uint32 flags;
} db2gCfgParam;
The configuration parameters maxagents and maxcagents are deprecated. In a future release, these configuration parameters may be removed completely.
The db2CfgSet API will tolerate updates to the maxagents and maxcagents configuration parameters, however these updates will be ignored by DB2®.
CASE 1: The MAXAPPLS parameter will be set to 50 at dbpartitionnum 30.
CASE 2: The MAXAPPLS parameter will be set to 50 on all dbpartitionnum.
int updateDbConfig()
{
struct sqlca sqlca = {0};
db2Cfg cfgStruct = {0};
db2CfgParam cfgParameters[2];
char *dbAlias = "SAMPLE";
/* initialize cfgParameters */
cfgParameters[0].flags = 0;
cfgParameters[0].token = SQLF_DBTN_TSM_OWNER;
cfgParameters[0].ptrvalue = (char *)malloc(sizeof(char) * 65);
cfgParameters[1].flags = 0;
cfgParameters[1].token = SQLF_DBTN_MAXAPPLS;
cfgParameters[1].ptrvalue = (char *)malloc(sizeof(sqluint16));
/* set two DB Config. fields */
strcpy(cfgParameters[0].ptrvalue, "tsm_owner");
*(sqluint16 *)(cfgParameters[1].ptrvalue) = 50;
/* initialize cfgStruct to update db cfg on single partition*/
cfgStruct.numItems = 2;
cfgStruct.paramArray = cfgParameters;
cfgStruct.flags = db2CfgDatabase | db2CfgImmediate;
cfgStruct.flags |= db2CfgSingleDbpartition;
cfgStruct.dbname = dbAlias;
cfgStruct.dbpartitionnum = 30;
/* CASE 1: update database configuration */
db2CfgSet(db2Version950, (void *)&cfgStruct, &sqlca);
/* set cfgStruct to update db cfg on all db partitions */
cfgStruct.flags &= ~db2CfgSingleDbpartition;
/* CASE 2: update database configuration */
db2CfgSet(db2Version950, (void *)&cfgStruct, &sqlca);
..............
}