【问题标题】:SNMP4J : What does "Inconsistent naming used" error mean?SNMP4J:“使用的命名不一致”错误是什么意思?
【发布时间】:2015-10-30 15:52:31
【问题描述】:

我目前正在使用 SNMP4J API 使用 Java 构建 SNMP 代理和管理器。

我创建了一个包含 3 列的 MOTable,然后尝试从客户端发送一个集合以在 MOTable 概念表中创建一个新行。

这是我的客户端代码的摘录,它将变量绑定添加到 PDU,然后将 SNMP SET 发送到代理:

final static OID[] customTable = new OID[]{new OID(".1.3.6.1.2.1.3.1"),
                                           new OID(".1.3.6.1.2.1.3.2"),
                                           new OID(".1.3.6.1.2.1.3.3")};
PDU customTablePDU = new PDU();
customTablePDU.addAll(new VariableBinding[]{new VariableBinding(customTable[0],new OctetString("192.168.1.12")),
            new VariableBinding(customTable[1],new Integer32(0)),
            new VariableBinding(customTable[2],new Integer32(100))});
ResponseEvent customTableResponse = customSnmp.set(customTablePDU, comtarget);

x = 1、2 或 3 的“.1.3.6.1.2.1.3.x”分别是我的表的第 1、2 和 3 列的 OID,分别包含一个 OctetString、Integer32 和第二个 Integer32 .

不幸的是,我在运行客户端时收到以下错误:

你知道这个错误是什么意思以及如何解决它以创建一行吗?

java.lang.Exception:在以下位置生成错误“使用的命名不一致”: 1.3.6.1.2.1.3.1 = 192.168.1.12 在 org.snmp4j.agent.request.SnmpRequest$SnmpSubRequest.requestStatusChanged(SnmpRequest.java:621) 在 org.snmp4j.agent.request.RequestStatus.fireRequestStatusChanged(RequestStatus.java:89) 在 org.snmp4j.agent.request.RequestStatus.setErrorStatus(RequestStatus.java:52) 在 org.snmp4j.agent.mo.DefaultMOTable.prepare(DefaultMOTable.java:601) 在 org.snmp4j.agent.CommandProcessor$SetHandler.prepare(CommandProcessor.java:830) 在 org.snmp4j.agent.CommandProcessor$SetHandler.processPdu(CommandProcessor.java:863) 在 org.snmp4j.agent.CommandProcessor$SetHandler.processPdu(CommandProcessor.java:780) 在 org.snmp4j.agent.CommandProcessor.processRequest(CommandProcessor.java:422) 在 org.snmp4j.agent.CommandProcessor.processRequest(CommandProcessor.java:384) 在 org.snmp4j.agent.CommandProcessor.dispatchCommand(CommandProcessor.java:340) 在 org.snmp4j.agent.CommandProcessor$Command.run(CommandProcessor.java:560) 在 org.snmp4j.agent.CommandProcessor.processPdu(CommandProcessor.java:163) 在 org.snmp4j.MessageDispatcherImpl.fireProcessPdu(MessageDispatcherImpl.java:675) 在 org.snmp4j.MessageDispatcherImpl.dispatchMessage(MessageDispatcherImpl.java:302) 在 org.snmp4j.MessageDispatcherImpl.processMessage(MessageDispatcherImpl.java:373) 在 org.snmp4j.MessageDispatcherImpl.processMessage(MessageDispatcherImpl.java:333) 在 org.snmp4j.transport.AbstractTransportMapping.fireProcessMessage(AbstractTransportMapping.java:76) 在 org.snmp4j.transport.DefaultUdpTransportMapping$ListenThread.run(DefaultUdpTransportMapping.java:423) 在 java.lang.Thread.run(Thread.java:745)

【问题讨论】:

    标签: java snmp mib snmp4j


    【解决方案1】:

    表示指定的对象不存在。您必须检查 PDU 中的错误索引 以找出导致问题的变量 (SNMP varbind)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-30
      • 2015-11-16
      • 1970-01-01
      • 1970-01-01
      • 2019-06-21
      • 2018-02-14
      • 2014-08-21
      • 2017-12-30
      相关资源
      最近更新 更多