Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何正确更新SNMP4j代理MIB值_Java_Network Programming_Snmp_Snmp4j - Fatal编程技术网

Java 如何正确更新SNMP4j代理MIB值

Java 如何正确更新SNMP4j代理MIB值,java,network-programming,snmp,snmp4j,Java,Network Programming,Snmp,Snmp4j,我正在尝试创建一个SNMP4j代理,但发现很难正确理解这个过程。我已经成功创建了一个可以使用snmpwalk从命令行查询的代理。我遇到的困难是理解如何更新存储在已实现MIB中的值 下面显示了我用于创建MIB的相关代码(我实现了主机资源MIB) 这似乎足以创建可运行的代理。我不明白的是,我应该如何更改MIB中存储的值(例如,如何更改HrSWRunStatus的值)。这里似乎有一些乱七八糟的方法,但它们似乎不适合图书馆的写作方式 我遇到过许多关于使用/重写这些方法的引用 预备 承诺 撤消 清理

我正在尝试创建一个SNMP4j代理,但发现很难正确理解这个过程。我已经成功创建了一个可以使用snmpwalk从命令行查询的代理。我遇到的困难是理解如何更新存储在已实现MIB中的值

下面显示了我用于创建MIB的相关代码(我实现了主机资源MIB)

这似乎足以创建可运行的代理。我不明白的是,我应该如何更改MIB中存储的值(例如,如何更改HrSWRunStatus的值)。这里似乎有一些乱七八糟的方法,但它们似乎不适合图书馆的写作方式

我遇到过许多关于使用/重写这些方法的引用

  • 预备
  • 承诺
  • 撤消
  • 清理

但找不到任何这样做的例子。任何帮助都将不胜感激。

受保护的无效注册表管理对象()
中,您需要执行类似于
新建MOMutableColumn(columnId、smicConstants.SYNTAX\u INTEGER、moacessImpl.ACCESS\u READ\u WRITE、null)的操作HrSWRunStatus编码>。看看SNMP4J代理源代码的
TestAgent.java
示例

        agent = new Agent("0.0.0.0/" + port);
        agent.start();
        agent.unregisterManagedObject(agent.getSnmpv2MIB());
        modules = new Modules(DefaultMOFactory.getInstance());
        HrSWRunEntryRow thisRow = modules.getHostResourcesMib().getHrSWRunEntry()
                .createRow(oidHrSWRunEntry);

        final OID ashEnterpriseMIB = new OID(".1.3.6.1.4.1.49266.0"); 

        thisRow.setHrSWRunIndex(new Integer32(1));
        thisRow.setHrSWRunName(new OctetString("RunnableAgent"));
        thisRow.setHrSWRunID(ashEnterpriseMIB);
        thisRow.setHrSWRunPath(new OctetString("All is good in the world")); // Max 128 characters
        thisRow.setHrSWRunParameters(new OctetString("Everything is working")); // Max 128 characters
        thisRow.setHrSWRunType(new Integer32(HrSWRunTypeEnum.application));
        thisRow.setHrSWRunStatus(new Integer32(HrSWRunStatusEnum.running));

        modules.getHostResourcesMib().getHrSWRunEntry().addRow(thisRow);

        agent.registerManagedObject(modules.getHostResourcesMib());