有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

集合上的java撤消失败错误

我使用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
有人知道这个错误的原因是什么吗?我如何修复它


共 (2) 个答案

  1. # 1 楼答案

    您几乎没有希望修复,就好像您深入到RFC文档中一样

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

    第25页记录了撤销失败的原因

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

  2. # 2 楼答案

    错误代码Undo Failed表示

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

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

    顺便说一句,用谷歌搜索这些信息花了整整20秒