ctypes netsnmp与多处理

时间:2012-06-29 01:17:49

标签: python multiprocessing net-snmp

我希望有人能帮忙......

所以......我正在编写一个基于multiprocessing的python netsnmp轮询器(我在收集数据后进行了大量的数据结构操作,因此开销比正常值{{{ 1}})。我找不到一个完整的python接口(具有正常的OID操作,bulkwalk等),所以我决定改正我自己的threading绑定。我使用ctypes来实际执行查询。

当我运行单个线程(我可以查询并获得结果)时,工作正常。但是当我从一个继承的snmp_sess_synch_response()实例中调用我的(python)netsnmp类时;当它到达Process时,线程停止然后返回,返回码为'2',snmp_sess_synch_response()返回'未知错误'。

我能找到的唯一信息是我应该使用来自http://net-snmp.sourceforge.net/docs/README.thread.html的Single API,并且初始MIB构建应该在线程之前。我正在使用Single API,我在生成我的工作人员之前正在构建MIB。

有没有人知道我应该如何进行调试呢?如何使用ctypes处理多线程?为什么使用snmp_errstring()会使我的工作单线程轮询器像这样停止?

我在redhat 6 64-bit和python 2.6.6上使用net-snmp 5.5-41.el6。

1 个答案:

答案 0 :(得分:0)

这是一个没有关闭我的文件句柄的问题,所以一段时间后线程耗尽了所有的句柄,并提示抛出一堆错误。