0

使用net-snmp API和使用mib2c生成骨架代码,是否可以支持延迟初始化表?我的意思是,在直接查询它的任何成员之前,不会初始化该表。这样做的原因是成员数据是从另一台服务器获取的,我希望能够启动 snmpd 守护程序,而无需另一台服务器在线/准备好请求。我想也许用在查询成员时用真实值更新的虚拟数据初始化表,但我不确定这是否是最好的方法。

该表也只有一行条目,因此使用 mib2c.iterate.conf 生成表迭代器并处理所有这些似乎没有必要。我想也许只是实现 MIB 中定义的序列而不是实际的表,但这通常不是我见过的所有示例中的完成方式。我查看了 /mibgroup/examples/delayed_instance.c,但这并不是我想要的。将 mib2c 与 mib2c.create-dataset.conf 配置文件一起使用是我最接近让它轻松工作的方法,但是这个配置文件假定数据是静态的而不是外部的(在我的情况下两者都不是真的),所以它行不通。如果它不容易完成,我可能只会实现序列而不是表格,但我希望有一个简单的方法。提前致谢。

4

1 回答 1

1

迭代器方法可以正常工作。在调用您的 _first 和 _next 例程之前,它不会加载任何数据。因此,您可以在这些例程和 _handler 例程中从远程服务器请求数据。事实上,默认情况下,它根本不缓存数据,因此它会让您查询远程服务器的每个请求。如果表中有大量数据,这可能会很慢,因此在这种情况下建议添加缓存以将数据存储 N 秒。

于 2011-01-25T22:57:49.587 回答