java - SNMP4J : What does "Inconsistent naming used" error mean?

标签 java snmp mib snmp4j

我目前正在进行一个使用 SNMP4J API 通过 Java 构建 SNMP 代理和管理器的项目。

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

以下是我的客户端代码的摘录,它将变量绑定(bind)添加到 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: Error 'Inconsistent naming used' generated at: 1.3.6.1.2.1.3.1 = 192.168.1.12 at org.snmp4j.agent.request.SnmpRequest$SnmpSubRequest.requestStatusChanged(SnmpRequest.java:621) at org.snmp4j.agent.request.RequestStatus.fireRequestStatusChanged(RequestStatus.java:89) at org.snmp4j.agent.request.RequestStatus.setErrorStatus(RequestStatus.java:52) at org.snmp4j.agent.mo.DefaultMOTable.prepare(DefaultMOTable.java:601) at org.snmp4j.agent.CommandProcessor$SetHandler.prepare(CommandProcessor.java:830) at org.snmp4j.agent.CommandProcessor$SetHandler.processPdu(CommandProcessor.java:863) at org.snmp4j.agent.CommandProcessor$SetHandler.processPdu(CommandProcessor.java:780) at org.snmp4j.agent.CommandProcessor.processRequest(CommandProcessor.java:422) at org.snmp4j.agent.CommandProcessor.processRequest(CommandProcessor.java:384) at org.snmp4j.agent.CommandProcessor.dispatchCommand(CommandProcessor.java:340) at org.snmp4j.agent.CommandProcessor$Command.run(CommandProcessor.java:560) at org.snmp4j.agent.CommandProcessor.processPdu(CommandProcessor.java:163) at org.snmp4j.MessageDispatcherImpl.fireProcessPdu(MessageDispatcherImpl.java:675) at org.snmp4j.MessageDispatcherImpl.dispatchMessage(MessageDispatcherImpl.java:302) at org.snmp4j.MessageDispatcherImpl.processMessage(MessageDispatcherImpl.java:373) at org.snmp4j.MessageDispatcherImpl.processMessage(MessageDispatcherImpl.java:333) at org.snmp4j.transport.AbstractTransportMapping.fireProcessMessage(AbstractTransportMapping.java:76) at org.snmp4j.transport.DefaultUdpTransportMapping$ListenThread.run(DefaultUdpTransportMapping.java:423) at java.lang.Thread.run(Thread.java:745)

最佳答案

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

关于java - SNMP4J : What does "Inconsistent naming used" error mean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33439991/

相关文章:

perl - 在 Perl 中解析 SNMP 结果

snmp - 通过代理删除 snmp 中的用户

networking - 什么叫MIB-Module?

java - 处理 Java ExecutorService 任务的异常

java - 在XJC插件中生成非Schema类/注释

centos - Linux (Centos) 上的 SNMP 未显示平均负载

c# - #SNMP - 如何使用 SharpSNMP 编译 MIB 文件?

snmp - ASN.1 声明中的应用程序标记

java - 计算时间戳之间的年、月、日差异

java - 通过代码链同步