我使用SNMP4J并尝试设置一些值。
Variable var = OctetString.fromHexString(v);
VariableBinding varBind = new VariableBinding(new OID(o),var);
pdu.add(varBind);
pdu.setRequestID(new Integer32(1));
pdu.setType(PDU.SET);
Snmp snmp = new Snmp(transport);
ResponseEvent response = snmp.set(pdu, comtarget);
if (response != null){
PDU responsePDU = response.getResponse();
if (responsePDU != null){
int errorStatus = responsePDU.getErrorStatus();
String errorStatusText = responsePDU.getErrorStatusText();
if (errorStatus == PDU.noError) return responsePDU.get(0).getVariable().toString();
else return errorStatusText;
}else return "No response";
}else return null;
它的工作正常,但有时我得到错误Undo failed
有谁知道这个错误的原因是什么,我该如何解决?
答案 0 :(得分:3)
错误代码Undo Failed
表示
这基本上告诉你它不知道原始集合操作的完成程度,并且事情可能会处于不一致状态。我不太了解SNMP错误报告详细信息,以了解响应是否包含描述早期问题的其他错误代码。
顺便说一下,使用谷歌花了20秒才找到这些信息。答案 1 :(得分:0)
您没有希望修复,就像您深入了解RFC文档一样,
http://www.ietf.org/rfc/rfc1448.txt
在第25页上,记录了undoFailed的原因。
严格来说,这是由SNMP代理引起的,只有它的供应商可以说明如何避免它。