SNMP4J: что означает ошибка «Несовместимое имя»?

В настоящее время я работаю над проектом создания агента и менеджера SNMP с Java с использованием API SNMP4J.

Я создал MOTable с 3 столбцами, а затем попытался отправить набор от клиента, чтобы создать новую строку в концептуальной таблице 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);

".1.3.6.1.2.1.3.x" с x = 1, 2 или 3 - это соответственно OID столбцов 1, 2 и 3 моей таблицы, которые соответственно содержат 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) в o rg.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)


person rBenks93    schedule 30.10.2015    source источник


Ответы (1)


Это означает, что указанный объект не существует. Вы должны проверить индекс ошибки в PDU, чтобы выяснить, какая переменная (SNMP varbind) вызвала проблему.

person Andrew Komiagin    schedule 31.10.2015