【问题标题】:Undo failed error on set撤消设置失败的错误
【发布时间】:2012-05-12 05:57:23
【问题描述】:

我使用 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
有谁知道这个错误的原因是什么,我该如何解决?

【问题讨论】:

    标签: java snmp snmp4j


    【解决方案1】:

    错误码Undo Failed表示

    1. 您试图在一个请求中设置多个变量
    2. 其中一次设置尝试失败
    3. 在尝试回滚整个操作(即撤消已完成的更改)时,另一个错误阻止完成撤消

    这实质上是在告诉您它不知道原始集合操作完成了多少,并且事情可能会处于不一致的状态。我对 SNMP 错误报告的详细信息知之甚少,无法知道响应是否包含描述早期问题的其他错误代码。

    顺便说一句,使用 Google 查找此信息花了整整 20 秒。

    【讨论】:

      【解决方案2】:

      你修复的希望很小,就像你深入研究 RFC 文档一样,

      http://www.ietf.org/rfc/rfc1448.txt

      在第 25 页上记录了 undoFailed 的原因。

      严格来说这是由 SNMP 代理引起的,只有其供应商才能告诉如何避免。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-05-24
        • 2017-02-23
        • 1970-01-01
        • 2022-06-30
        • 1970-01-01
        • 2013-09-21
        • 1970-01-01
        • 2012-01-25
        相关资源
        最近更新 更多