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 パラメーターの長さ (バイト単位)。

使用上の注意

構成パラメーター maxagentsmaxcagents は非推奨になりました。 今後のリリースでは、これらの構成パラメーターは完全に除去される予定です。

db2CfgSet API は maxagentsmaxcagents 構成パラメーターに対する更新を許容しますが、こうした更新は 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);
    ..............
}