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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。