dbModel.access 表

dbModel.access 表用于配置数据库访问。

下表显示了 dbModel.access 数据库表的模式。

表 1。 dbModel.访问 数据库表模式

列名

约束

数据类型

描述

EnumGroupFilter NOT NULL 文本 列示枚举组,这些枚举组包含可以在 dbModel.entityMap 表中定义的实体映射中使用的枚举。 这些枚举在 NCIM 拓扑数据库中的 enumerations 表中定义。
TransactionLength NOT NULL 整数 在拓扑上载期间,落实前要在单个事务中执行的 SQL 语句数。
WebTopDataSource NOT NULL 文本 要使用的 Webtop 数据源的名称。 此值可以与 ObjectServer 名称不同。
DomainHost   文本 Topoviz 所连接的主机名。 这在 ServiceData.cfg 配置文件中 ncp_config 的条目中设置。 除非您需要覆盖此值,否则此字段应该保留为空。
DomainPort   整数 Topoviz 所连接的端口。 这在 ServiceData.cfg 配置文件中 ncp_config 的条目中设置。 除非您需要覆盖此值,否则此字段应该保留为空。

示例:使用枚举组过滤器和实体映射

在 workingEntities.finalEntity 表中,OSPF 接口类型存储在 m_OspfIfState 枚举列表中,该列表包含在 m_ExtraInfo 字段中。 m_OspfIfState 字段的值是单个整数,例如 3m_OspfIfState 对应于 NCIM 拓扑数据库中的 ospfIfStateospfIfState 的枚举针对 NCIM 数据库中 enumerations 表中的 enumGroup ospfIfType 进行定义,如以下示例输出所示:

> select * from enumerations where enumGroup = 'ospfIfType';
> go
+------------+---------+-------------------+-----------------+
| ENUMGROUP  | ENUMKEY | ENUMVALUE         | ENUMDESCRIPTION |
+------------+---------+-------------------+-----------------+
| ospfIfType | 1       | broadcast         |                 |
| ospfIfType | 2       | nbma              |                 |
| ospfIfType | 3       | pointToPoint      |                 |
| ospfIfType | 5       | pointToMultipoint |                 |
+------------+---------+-------------------+-----------------+

以下 insert 语句示例包含要下载的枚举中的 ospfIfType(在此处以粗体显示):

insert into dbModel.access
(
    EnumGroupFilter,
    TransactionLength,
    WebTopDataSource
)
values
(
    "enumGroup in ('ASN' , 'sysServices', 'ifAdminStatus', 'ifOperStatus', 
    'sysServices',  'ifType', 'ifOperStatusToOperationalStatus',
    'entPhysicalClass', 'cefcFRUPowerAdminStatus', 'cefcFRUPowerOperStatus', 
    'TruthValue','TruthValueString', 'entSensorType', 'entSensorScale', 
    'entSensorStatus', 'cefcModuleAdminStatus', 'cefcModuleOperStatus', 
    'ipForwarding', 'cefcPowerRedundancyMode', 'EntityType', 'ospfIfState', 
    'ospfIfType', 'dot3StatsDuplexStatus', 'accessProtocol', 'cdmDuplex', 
    'OperationalStatusEnum')",
    500,
    "NCOMS"
);

对 dbModel.entityMap 数据库执行的以下 insert 语句示例显示了 workingEntities.finalEntity 表中的 m_ospfIfType(以粗体显示)映射到 NCIM 拓扑数据库中 ospfEndPoint 表中的 ospfIfType 列。

insert into dbModel.entityMap
(
    EntityFilter,
    TableName,
    FieldMap,
    StitcherDefined
)
values
(
    "m_ObjectId = 'OSPF_PROTOCOL_ENDPOINT'",
    'ospfEndPoint',
    {
        entityId         = "eval(int,  '&m_EntityId')",
        areaId           = "eval(text, '&m_ExtraInfo->m_AreaId')",
        ospfIfAdminStat  = "eval(int,  '&m_ExtraInfo->m_OspfIfAdminStat')",
        ospfIfState      = "eval(text, 'LOOKUP(&m_ExtraInfo->m_OspfIfState, &&ospfIfState)')",
        ospfIfType  = "eval(text, 'LOOKUP(&m_ExtraInfo->m_OspfIfType, &&ospfIfType)')",
        defaultCost      = "eval(int,  '&m_ExtraInfo->m_Cost')"
    },
    1
);

由于已下载 ospfIfType 的枚举,因此 workingEntities.finalEntity 表中 ospfIfType 的整数值映射到 NCIM 拓扑数据库中的记录中的有意义字符串。 例如,接口类型的值存储为 pointToPoint,而不是存储为 3