みなさま、こんばんは。とくしまと申します。
SNMP Library
http://snmplib.rubyforge.org/
を使ってみたのですが、エラーとなり困っています。
下記のコードは正常に動作するのですが、oidの数を増やしていくと、
responseにerror_status=1(tooBig)が返ってきます。
MaxReceiveBytesの設定かとおもいデフォルトから一桁増やして80000に
してみましたが結果は同じでした。
回避方法を知るためにどこでerror_status=1が設定されるのかソースを
追いかけてみたものの(Manager#get_response以降のパケット解析に
ついていけず)私には理解できませんでした。
対象のホストから最大で数百のMIB値を取得したいので、このエラーが
起きないようにしたいと考えています。どのようにしたらよいですか?
試したコードは以下のとおりです。
# oids = ["1.3.6.1.2.1.2.2.1.10.1", "1.3.6.1.2.1.2.2.1.10.2",...]
Manager.open(:Host => 'hoge', :Community => 'foo', :MaxReceiveBytes =>
80000) do |manager|
response = manager.get(oids)
p response
response.each_varbind do |vb|
puts "#{vb.name.to_s} #{vb.value.to_s}"
end
end
p responseの結果:
#<SNMP::Response:0xf01d52 @error_index=0, @request_id=1536997294,
@varbind_list=[], @error_status=1>
環境
jdk1.5.0_16
jruby-1.1.4
snmp-1.0.2
以上
よろしくお願いします。