Я пытаюсь смоделировать SNMP-агент для тестирования.Проблема, с которой я сталкиваюсь, заключается в том, что я не могу зарегистрировать некоторые OID, которые должен создать фиктивный агент.В частности: 1.3.6.1.2.1.33.1.3.3.1.4.1 1.3.6.1.2.1.33.1.3.3.1.4.2 1.3.6.1.2.1.33.1.3.3.1.4.3 Эти OID предназначены для входного тока наUPS.
Я попытался добавить 0 к концу OID, что избавляет от исключения, но не работает для моего случая, потому что я издеваюсь над реальной системой, поэтому она должна соответствовать этому.Все остальные OID, которые мне нужно зарегистрировать, работают нормально.
public class mockAgent extends BaseAgent {
public mockAgent(CommandProcessor commandProcessor) {
super(new File("bootCounterFile.txt"), new File("configFile.txt"), commandProcessor);
new CommandProcessor(new OctetString(MPv3.createLocalEngineID()));
}
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
protected void registerManagedObjects() {
getSnmpv2MIB().unregisterMOs(server, getContext(getSnmpv2MIB()));
try{
MOScalar moScalar = null;
moScalar = new MOScalar(new OID("1.3.6.1.2.1.33.1.3.3.1.4.1"),
MOAccessImpl.ACCESS_READ_WRITE, new OctetString("3")); //UPS_INPUT_CURRENT_PHASE_1
server.register(moScalar, null);
moScalar = new MOScalar(new OID("1.3.6.1.2.1.33.1.3.3.1.4.2"),
MOAccessImpl.ACCESS_READ_WRITE, new OctetString("4")); //UPS_INPUT_CURRENT_PHASE_2
server.register(moScalar, null);
moScalar = new MOScalar(new OID("1.3.6.1.2.1.33.1.3.3.1.4.3"),
MOAccessImpl.ACCESS_READ_WRITE, new OctetString("5")); //UPS_INPUT_CURRENT_PHASE_3
server.register(moScalar, null);
}catch(DuplicateRegistrationException e){
System.out.println("failed to register");
System.out.println(e);
}
}
Зарегистрированный MO [MOScalar] в контексте по умолчанию с областью действия org.snmp4j.agent.mo.MOScalar [oid = 1.3.6.1.2.1.33.1.3.3.1.4.1, access = MOAccessImpl {read | write | notify}, value = 3, volatile = false] не удалось зарегистрировать org.snmp4j.agent.DuplicateRegistrationException: org.snmp4j.agent.DefaultMOContextScope [context = null,LowerBound = 1.3.6.1.2.1.33.1.3.3.1.4, lowerIncluded = верно, UpperBound = 1.3.6.1.2.1.33.1.3.3.1.5, upperIncluded = ложь]