snmp_open_table(Tab :: table(), Snmp :: snmp_struct()) -> ok
Mnesia 表和 SNMP 表之间可以建立直接的一对一映射。许多电信应用程序都是通过 SNMP 协议进行控制和监视的。 Mnesia 和 SNMP 之间的这种连接使得实现这种映射变得简单方便。
参数 SnmpStruct
是 SNMP 信息列表。目前,唯一需要的信息是有关表中键类型的信息。 Mnesia 无法处理多个键,但许多 SNMP 表都有多个键。因此,使用以下约定:如果表有多个键,则这些键必须始终存储为键的元组。有关键类型的信息被指定为说明类型的原子元组。唯一重要的类型是 fix_string
。这意味着字符串具有固定的大小。
例如,以下命令会导致表 person
作为 SNMP 表进行排序:
mnesia:snmp_open_table(person, [{key, string}])
考虑以下公司员工表的架构。每个员工都通过部门编号和姓名进行识别。另一个表列存储电话号码:
mnesia:create_table(employee,
[{snmp, [{key, {integer, string}}]},
{attributes, record_info(fields, employees)}]),
相应的 SNMP 表将包含三列: department
、 name
和 telno
。
一个选项是让表列通过 SNMP 协议不可见。这些列必须是表的最后一列。在前面的示例中,SNMP 表只能包含department
和name
列。然后,应用程序可以在内部使用telno
列,但 SNMP 管理器将看不到它。
在 SNMP 监控的表中,所有元素都必须是整数、字符串或整数列表。
当表是 SNMP 排序的时,修改的成本比平常更高,O(logN)。此外,还会使用更多内存。
请注意,Mnesia 中仅实现了字典顺序的 SNMP 排序,而不是实际的 SNMP 监控。
相关用法
- erlang snoc(Q1 :: queue(Item), Item)用法及代码示例
- erlang sin用法及代码示例
- erlang str用法及代码示例
- erlang substr用法及代码示例
- erlang sort用法及代码示例
- erlang sublist用法及代码示例
- erlang sum用法及代码示例
- erlang split_binary用法及代码示例
- erlang self用法及代码示例
- erlang spawn用法及代码示例
- erlang spawn on Node用法及代码示例
- erlang spawnlink用法及代码示例
- erlang safe_fixtable(Table, Fix)用法及代码示例
- erlang select(Table, MatchSpec)用法及代码示例
- erlang select_replace(Table, MatchSpec)用法及代码示例
- erlang select_reverse(Continuation)用法及代码示例
- erlang split(Filename)用法及代码示例
- erlang setelement(Index, Tuple1, Value)用法及代码示例
- erlang size(Item)用法及代码示例
- erlang spawn(Module, Function, Args)用法及代码示例
- erlang split_binary(Bin, Pos)用法及代码示例
- erlang statistics(Item :: garbage_collection)用法及代码示例
- erlang statistics(Item :: microstate_accounting)用法及代码示例
- erlang statistics(Item :: reductions)用法及代码示例
注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 snmp_open_table(Tab :: table(), Snmp :: snmp_struct()) -> ok。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。