问题描述
我正在尝试通过 snmp4j-agent 监控数据库信息。首先找到了RDBMS-MIB.txt文件,实现了对应的RdbmsMib.java。然后,我按照SampleAgent.java的例子和snmp4j-agent-1.4-InstrumentationGuide.pdf的提示,学习如何通过覆盖MOMutableColumn.java来动态更新表;但在这里我遇到了一些问题:
- 当RdbmsMib.java中创建entry时,会根据对应的MIB文件创建对应的索引定义,但是不知道这些索引的用途;
public class MyMIB
//--AgentGen BEGIN=_EXTENDS
//--AgentGen END
implements MOGroup
//--AgentGen BEGIN=_IMPLEMENTS
//--AgentGen END
{
.
.
.
public static final OID oidTableEntry =
new OID(new int[] { 1,3,6,1,4,99,5,1 });
.
.
.
private void createTableEntry(MOFactory moFactory) {
// Index definition // question 1
.
.
.
// Columns definition
.
.
.
// Table model
tableEntryModel =
moFactory.createTableModel(oidTableEntry,tableEntryIndex,tableEntryColumns);
((MOMutableTableModel)tableEntryModel).setRowFactory(
new TableEntryRowFactory());
tableEntry =
moFactory.createTable(oidTableEntry,tableEntryColumns,tableEntryModel);
//Adding rows
ArrayList<Integer> oidMon1List= new ArrayList<Integer>();
oidRow1List = this.getListFromArray(oidTableEntry.getValue());
oidRow1List.add(1);
ArrayList<Integer> oidMon2List= new ArrayList<Integer>();
oidRow2List = this.getListFromArray(oidTableEntry.getValue());
oidRow2List.add(2);
DefaultMOMutableTableModel model =
(DefaultMOMutableTableModel)tableEntry.getModel();
synchronized(model){
//question 2 : the relationship of new OID("1") and index definition
model.addRow(
model.createRow(
new OID("1"),new Variable[]{
new Integer32(123)
}));
model.addRow(
model.createRow(
new OID("2"),new Variable[]{
new Integer32(456)
}));
}
}
- 如何使用 SNMP4J-AGENT 定义 OID 来实现数据库实例和数据库参数之间的一对多关系?。比如我有一个数据库实例,里面有很多参数名和对应的参数信息(包括参数值和参数描述),类似于RDBMS-MIB.txt rdbmsDbParamTable。但是,我的理解是它们都对应一个OID值,所以我不知道如何区分它们?是否与问题 1 中的索引有关?
paramName paramVal paramComment
-------------------------------
pageSize 20 the page size
-------------------------------
logSize 30 the log size
.
.
.
例如,我有两个数据库实例,db1 和 db2。因此,db1 有 params(pageSize=20,logSize=30,...) 和 db2 有 params(pageSize=40,logSize=50),但在 Rdbms-MIB.txt 中,它们使用一个表条目 OID ...39.1 .3.1,在这种情况下,如何区分它们并定义OID?提前说声谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)