現在選択されているデータベースが関与しているパーティション定義のリストを戻します。
構文
ESS_FUNC_M EssPartitionGetList (
hCtx, pSelectPartition, pusCount, ppPartition
);
| パラメータ | データ型 | 説明 |
|---|---|---|
hCtx |
ESS_HCTX_T |
APIコンテキスト・ハンドル。 |
pSelectPartition |
ESS_PARTSLCT_T |
パーティションの選択条件。 |
pusCount |
ESS_PUSHORT_T |
戻されるパーティションの数。 |
ppPartition |
ESS_PART_INFO_T |
パーティション情報構造体において割り当てられた配列へのポインタ。 |
戻り値
正常終了の場合は0が戻され、失敗した場合はエラー・コードが戻されます。
例
ESS_FUNC_M ESS_PartitionGetList(ESS_HCTX_T hCtx, ESS_HINST_T hInst)
{
ESS_FUNC_M sts = ESS_STS_NOERR;
ESS_USHORT_T op_types = 0;
ESS_USHORT_T dir_types = 0;
ESS_USHORT_T meta_dir_types = 0;
ESS_USHORT_T count, i;
ESS_PPART_INFO_T partitionp = NULL;
ESS_PARTSLCT_T SelectPartition;
memset(&Selectpartition, 0, sizeof(ESS_PARTSLCT_T));
op_types = ESS_PARTITION_OP_REPLICATED |
ESS_PARTITION_OP_LINKED |
ESS_PARTITION_OP_TRANSPARENT;
dir_types = ESS_PARTITION_DATA_SOURCE | ESS_PARTITION_DATA_TARGET;
meta_dir_types = ESS_PARTITION_OTL_SOURCE | ESS_PARTITION_OTL_TARGET;
SelectPartition.usOperationTypes = op_types;
SelectPartition.usDirectionTypes = dir_types;
SelectPartition.usMetaDirectionTypes = meta_dir_types;
sts = EssPartitionGetList(hCtx, &SelectPartition, &count, &Partitionp);
printf("EssPartitionGetList sts: %ld\n",sts);
if (!sts)
{
printf("\n# Partitions matching input criteria: %d\n\n", (int)count);
for (i = 0; i < count; i++)
{
ESS_PART_INFO_T *info = &partitionp[i];
printf("%2d: %s %s %s: Host=%s App=%s Db=%s\n", i+1,
info->OperationType==ESS_PARTITION_OP_REPLICATED ? "Replication" :
info->OperationType==ESS_PARTITION_OP_LINKED ? "Link" :
info->OperationType==ESS_PARTITION_OP_TRANSPARENT ? "Transparent" : "Unknown",
info->DataDirection==ESS_PARTITION_DATA_SOURCE ? "Source" :
info->DataDirection==ESS_PARTITION_DATA_TARGET ? "Target" :"Unknown",
info->MetaDirection==ESS_PARTITION_OTL_SOURCE ? "(Outline Change Source)":
info->MetaDirection==ESS_PARTITION_OTL_TARGET ? "(Outline Change Target)" :"(Unknown Outline Change Type)",
info->SvrName, info->AppName, info->DbName);
printf(" Outline last changed: %s\n",
info->LastMetaUpdateTime==0 ? "Never\n"
: ctime(&info->LastMetaUpdateTime));
if (info->OperationType==ESS_PARTITION_OP_REPLICATED &&
info->DataDirection==ESS_PARTITION_DATA_TARGET)
{
printf(" Last replicated: %s %s\n",
info->LastRefreshTime==0 ? "Never\n"
: ctime(&info->LastRefreshTime),
info->PartitionUpdatable ? "Locally updatable" :
"Not locally updatable");
}
else if (info->OperationType==ESS_PARTITION_OP_REPLICATED &&
info->DataDirection==ESS_PARTITION_DATA_SOURCE)
{
printf(" Last updated: %s %s\n\n",
info->LastUpdateTime==0 ? "Never\n"
: ctime(&info->LastUpdateTime),
info->IncrRefreshAllowed ? "Incrementally replicatable" :
"Not incrementally replicatable");
}
}#/* end for */
}#/* end if */
if (partitionp) EssFree(hInst, partitionp);
return(sts);
}
関連トピック