Невозможно зарегистрировать OID в фиктивном агенте SNMP4J - PullRequest
4 голосов
/ 29 мая 2019

Я пытаюсь смоделировать 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 = ложь]

...