Hi,

How is the variable "id" initialized in row
MOTableRow<Variable> row = moFactory.createRow(new OID(new int[] { id }), initialValues);


I do not see that anywhere.

Please fix your code first, before asking again. Also a simpler
code example would be helpful, which conentrates on the SNMP4J-Agent
code and not your project stuff.

Best regards,
Frank

Am 10.09.2013 12:40, schrieb Sumit Sharma:

Hi All and Frank,

Let me explain you the problem in bit detail.

I have created an SNMP Agent which supports v3 protocol. As you know before start agent we have to register oid and table.

We are registering mo objects (MOScalar and MOTable) to snmp agent using below code.

*server.register(mo, null);*

To create MO table we keep table configuration of table and scalar in json structure. For example we want to register a motable with OID .1.3.6.1.4.1.1.201.6.1 where .1 is table entry id.

where column information is mentioned in json format.

After createTableFromJSON method call (method detail in below email) motable is successfully created and registered in DefautMOServer.

but once agent start and i try to set the value with the help of below code.

        VariableBinding binding = new VariableBinding();

         binding.setOid(new OID(".1.3.6.1.4.1.1.201.6.1.2.1"));

         binding.setVariable(new Counter64(20L);

         server.setValue(server, null, binding);

Ideally 20L should be set for Column id 2 and row id or (Index id) 1 as mentiond and highlighted in blue. but value got copied over to all rows.

Please let me know if i can call you on your number to describe you the problem if i am not able to clarify it with this email.

Thanks in advance for help as i am very much stuck due to this problem. Please help.

*JSON structure for registration*

{

        "tableName": "table1",

        "tableId": ".1.3.6.1.4.1.1.201.6.1",

        indexValues: "1;2;3"

        "columns": [

            {

                "columnName": "column1",

                "columnOID": 1,

                "dataType": 70,

                "accessType": 1,

                "defaultValue":0

            },

            {

                "columnName": "column2",

                "columnOID": 2,

                "dataType": 70,

                "accessType": 1,

                "defaultValue":0

            },

            {

                "columnName": "column3",

                "columnOID": 3,

                "dataType": 70,

                "accessType": 1,

                "defaultValue":0

            },


        ]

    }

*Method for MOTable creation*

*We are using this mofactory in below method *MOFactory moFactory = DefaultMOFactory.getInstance()

public static MOTable<MOTableRow<Variable>, MOColumn<Variable>, MOTableModel<MOTableRow<Variable>>> createTableFromJSON(

        JSONObject data) {

    MOTable table = null;

    if (data != null) {

        MOTableSubIndex[] subIndex = new MOTableSubIndex[] { moFactory

.createSubIndex(null, SMIConstants.SYNTAX_INTEGER, 1, 100) };

        MOTableIndex index = moFactory.createIndex(subIndex, false,

                new MOTableIndexValidator() {

                    public boolean isValidIndex(OID index) {

                        boolean isValidIndex = true;

                        return isValidIndex;

                    }

                });

        Object indexesObj = data.get("indexValues");

        if(indexesObj!=null){

            String indexes = data.getString("indexValues");

            String tableOID = data.getString("tableId");

            JSONArray columnArray = data.getJSONArray("columns");

            int columnSize = columnArray.size();

            MOColumn[] columns = new MOColumn[columnSize];

            Variable[] initialValues = new Variable[columnSize];

            for (int i = 0; i < columnSize; i++) {

                JSONObject columnObject = columnArray.getJSONObject(i);

                columns[i] = moFactory.createColumn(columnObject

.getInt("columnOID"), columnObject.getInt("dataType"),

moFactory.createAccess(columnObject

.getInt("accessType")));

initialValues[i] = getVariable(columnObject.get("defaultValue"));

            }

            MOTableModel tableModel = moFactory.createTableModel(new OID(

                    tableOID), index, columns);

table = moFactory.createTable(new OID(tableOID), index, columns,

                    tableModel);

            String[] indexArrString = indexes.split(";");

            for(String indexStr: indexArrString){

MOTableRow<Variable> row = moFactory.createRow(new OID(new int[] { id }), initialValues);

                table.addRow(row);

            }

        }

        }

    return table;

}

Thanks | Sumit Sharma


------------------------------------------------------------------------






NOTE: This message may contain information that is confidential, proprietary, privileged or otherwise protected by law. The message is intended solely for the named addressee. If received in error, please destroy and notify the sender. Any use of this email is prohibited when received in error. Impetus does not represent, warrant and/or guarantee, that the integrity of this communication has been maintained nor that the communication is free of errors, virus, interception or interference.

--
---
AGENT++
Maximilian-Kolbe-Str. 10
73257 Koengen, Germany
https://agentpp.com
Phone: +49 7024 8688230
Fax:   +49 7024 8688231

_______________________________________________
SNMP4J mailing list
SNMP4J@agentpp.org
http://lists.agentpp.org/mailman/listinfo/snmp4j

Reply via email to