db2CfgSet API - データベース・マネージャーまたはデータベース構成パラメーターの設定
特定のデータベース構成ファイル、
またはデータベース・マネージャー構成ファイルにある個々の項目を変更します。 データベース構成ファイルは、データベースが作成されたすべてのデータベース・パーティションに存在します。
スコープ
デフォルトで、データベース構成ファイルの変更はすべてのデータベース・パーティションに影響を与えます。
許可
データベース構成ファイルの変更の場合は、以下の権限のいずれかが必要です。
- SYSADM
- SYSCTRL
- SYSMAINT
データベース・マネージャー構成ファイルの変更の場合は、以下のものです。
- SYSADM
必要な接続
特定のデータベースの構成パラメーターをオンラインで変更するには、データベースに接続する必要があります。 データベース・マネージャーの構成パラメーターをオンラインで変更するには、インスタンスへのアタッチメントは必要ありません。
API 組み込みファイル
db2ApiDf.h
API およびデータ構造構文
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;
SQL_PDB_NODE_TYPE member;
} 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;
db2CfgSet API パラメーター
- versionNumber
- 入力。 2 番目のパラメーター pParmStructとして渡される構造のバージョンとリリースのレベルを指定します。
- pParmStruct
- 入力。 db2Cfg 構造を指すポインター。
- pSqlca
- 出力。 sqlca 構造を指すポインター。
db2Cfg データ構造パラメーター
- numItems
- 入力。 paramArray 配列内の構成パラメーターの数。 paramArray 内のエレメントの最大数を指定する場合は、この値を db2CfgMaxParam に設定します。
- paramArray
- 入力。 db2CfgParam 構造を指すポインター。
- flags
- 入力。 実行するアクションのタイプを指定します。 有効な値 (include ディレクトリーにある db2ApiDf ヘッダー・ファイルで定義されている値) は、以下のとおりです。
- db2CfgDatabase
- データベース構成ファイルの値を戻すために指定します。
- db2CfgDatabaseManager
- データベース・マネージャー構成ファイルの値を戻すために指定します。
- db2CfgImmediate
- メモリーに保管された構成パラメーターの現行値を戻します。
- db2CfgDelayed
- ディスク上の構成パラメーターの値を入手します。 次回のデータベースまたはインスタンス接続までは、これらの値はメモリー内の現行値にはなりません。
- db2CfgReset
- すべてのデータベース・マネージャー構成パラメーターをデフォルト値にリセットします。
- db2CfgSingleDbpartition
- 特定のデータベース・パーティションのデータベース構成を更新したりリセットしたりする場合は、このフラグを設定し、dbpartitionnum の値を指定します。 これは、パーティション・データベース環境にのみ適用可能であり、その他の環境では無視されます。
- db2CfgSingleMember
- 特定のメンバーでのデータベース構成を更新またはリセットするには、このフラグを設定して、メンバーの値を提供します。 これは、 Db2® pureScale® 環境にのみ適用され、その他の環境では無視されます。
- dbname
- 入力。 データベース名。
- dbpartitionnum
- 入力。 この API が構成値を設定するデータベース・パーティションを指定します。 DBPARTITIONNUM パラメーターは、パーティション・データベース環境でのみ適用可能であり、 Db2 pureScale 環境では 0 でなければなりません。
- メンバー
- 入力。 この API が構成値を設定する メンバー を指定します。 MEMBER パラメーターは、 Db2 pureScale 環境でのみ適用され、その他の環境では無視されます。
db2CfgParam データ構造パラメーター
- トークン
- 入力。 構成パラメーター ID。 db2CfgParam の token エレメントの有効な項目とデータ・タイプは、『構成パラメーターの要約』にリストされています。注: Db2 pureScale 環境での クラスター・キャッシング・ファシリティー 構成パラメーターおよび クラスター・キャッシング・ファシリティー 構造構成パラメーターの取得 (または設定) をサポートするために、追加の db2Cfg トークンが追加されました。
- ptrvalue
- 出力。 構成パラメーターの値。
- flags
- 入力。 要求内の各パラメーターに関する特定の情報を提供します。 有効な値 (include ディレクトリーにある db2ApiDf ヘッダー・ファイルで定義されている値) は、以下のとおりです。
- db2CfgParamAutomatic
- 検索されるパラメーターの値が automatic かどうかを示します。 構成パラメーターが automatic に設定されているかどうかを確認するには、db2ApiDf.h で定義されているフラグと db2CfgParamAutomatic キーワードによって返される値に対してブール AND 演算を実行します。
- db2CfgParamComputed
- 検索されるパラメーターの値が computed かどうかを示します。 構成パラメーターが computed に設定されているかどうかを確認するには、db2ApiDf.h で定義されているフラグと db2CfgParamComputed キーワードによって返される値に対してブール AND 演算を実行します。
- db2CfgParamManual
- 自動または計算されたパラメーターの設定を解除して、パラメーターを現行値に設定するのに使用されます。 ptrvalue フィールドは無視されます。NULL に設定することも可能です。
db2gCfg データ構造固有パラメーター
- dbname_len
- 入力。 dbname パラメーターの長さ (バイト単位)。
db2gCfgParam データ構造固有パラメーター
- ptrvalue_len
- 入力。 ptrvalue パラメーターの長さ (バイト単位)。
使用上の注意
構成パラメーター maxagents と maxcagents は非推奨になりました。 今後のリリースでは、これらの構成パラメーターは完全に除去される予定です。
db2CfgSet API は maxagents と maxcagents 構成パラメーターに対する更新を許容しますが、こうした更新は Db2 によって無視されます。
使用方法のサンプル
ケース 1: MAXAPPLS パラメーターを dbpartitionnum 30 で 50 に設定します。
ケース 2: すべての dbpartitionnum で MAXAPPLS パラメーターを 50 に設定します。
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);
..............
}