[SNMP4J] [SNMP4j] How to determine the correct maxNumOfRowsPerPDU in tableUtils
Tongjie Li
snow8261 at gmail.com
Sat Apr 5 08:36:56 CEST 2014
Hi Frank
Thanks for your answer.
If we can not know the suitable value of maxRepetitions of getBulk
function, how can we use getBulk in a production environment?
So we have to use getNext instead of getBulk in production? Since we
have a lot of device need to be monitor by snmp, getNext isn't very
efficiency.
I changed pdu.getBulk to pdu.getNext in the example, but I found
the result table size is 1512 records, and it is also less than the getBulk
with maxRepetitions set to 20 which is 1528 records.
public List snmpGetTable(OID[] columnOIDs, OID lowerBoundIndex, OID
upperBoundIndex) throws IOException {
List result = null;
TableUtils tableUtils = new TableUtils(this.snmp, new
DefaultPDUFactory(PDU.GETNEXT));
tableUtils.setMaxNumRowsPerPDU(maxRepetitions);
result = tableUtils.getTable(this.comtarget, columnOIDs,
lowerBoundIndex, upperBoundIndex);
return result;
}
How can we get it right? How to get all rows of a table correctly?
Thank you very much.
Best Regards,
On Thu, Apr 3, 2014 at 10:33 PM, Frank Fock <fock at agentpp.com> wrote:
> Hi,
>
> There is no "correct" maxRepetitions. Any value is "correct".
> The agent decides how many repetitions it will provide based on
> local contraints and measures. Some agent never return more
> than one, others up to the maximum packet size, others by
> timing constraints.
> Thus, you can never know how many repetitions there will be returned.
>
> BTW, OIDs do NOT start with a dot character. Simply
> write
>
> new OID("1.3.6.1.2.1.47.1.1.1.1.1")
>
> Best regards,
> Frank
>
> Am 03.04.2014 07:11, schrieb Tongjie Li:
>
> Hi everybody
>> I was executing a getTable in snmp4j on entitymib. I defined the
>> following columns like following sample code
>>
>> public static OID[] getColumnOIDs() {
>> if (equipmentColumns != null) return equipmentColumns;
>> equipmentColumns = new OID[11];
>> equipmentColumns[0] = new OID(".1.3.6.1.2.1.47.1.1.1.1.1");
>> //entPhysicalIndex
>> equipmentColumns[1] = new OID(".1.3.6.1.2.1.47.1.1.1.1.2");
>> //entPhysicalDescr
>> equipmentColumns[2] = new OID(".1.3.6.1.2.1.47.1.1.1.1.3");
>> //entPhysicalVendorType
>> equipmentColumns[3] = new OID(".1.3.6.1.2.1.47.1.1.1.1.4");
>> //entPhysicalContainedIn
>> equipmentColumns[4] = new OID(".1.3.6.1.2.1.47.1.1.1.1.5");
>> //entPhysicalClass
>> equipmentColumns[5] = new OID(".1.3.6.1.2.1.47.1.1.1.1.6");
>> //entPhysicalParentRelPos
>> equipmentColumns[6] = new OID(".1.3.6.1.2.1.47.1.1.1.1.7");
>> //entPhysicalName
>> equipmentColumns[7] = new OID(".1.3.6.1.2.1.47.1.1.1.1.13");
>> //entPhysicalModelName
>> equipmentColumns[8] = new OID(".1.3.6.1.2.1.47.1.1.1.1.14");
>> //entPhysicalAlias
>> equipmentColumns[9] = new OID(".1.3.6.1.2.1.47.1.1.1.1.16");
>> //entPhysicalFru if is fixed
>> equipmentColumns[10] = new
>> OID(".1.3.6.1.2.1.47.1.1.1.1.11");//entPhysicalSerialNum
>> return equipmentColumns;
>> }
>>
>> when I using it with getTable in the snmp4j with following code (
>> the columnOIDs are equipmentColumns from above example)
>>
>> public List snmpGetTable(OID[] columnOIDs, OID lowerBoundIndex,
>> OID
>> upperBoundIndex) throws IOException {
>> List result = null;
>> TableUtils tableUtils = new TableUtils(this.snmp, new
>> DefaultPDUFactory(PDU.GETBULK));
>> tableUtils.setMaxNumRowsPerPDU(maxRepetitions);
>> result = tableUtils.getTable(this.comtarget, columnOIDs,
>> lowerBoundIndex, upperBoundIndex);
>> return result;
>> }
>>
>> When i test it,I found that setting different maxRepetitions will get
>> different answers. When I set maxRepetitions to 4
>> ,it return total number of 1428 records. When I set maxRepetitions to 10,
>> it return total number of 1518 records. When set to 20,it return total
>> number of 1528 records. It made me very crazy.
>>
>> I want to know why and how to set the right maxRepetitions in order to
>> avoid this. It seems that different types of device need to set different
>> maxRepetitions. Is there a way to calculate the correct maxRepetitions ?
>>
>> Best regards
>>
>>
>>
>>
> --
> ---
> AGENT++
> Maximilian-Kolbe-Str. 10
> 73257 Koengen, Germany
> https://agentpp.com
> Phone: +49 7024 8688230
> Fax: +49 7024 8688231
>
> _______________________________________________
> SNMP4J mailing list
> SNMP4J at agentpp.org
> https://s16675406.onlinehome-server.info/mailman/listinfo/snmp4j
>
--
All the Best!
Li Tongjie
More information about the SNMP4J
mailing list