Hi,
I'm trying to fetch the contents of an SNMP table but I only get the first row. However, specifying the OID of a single cell in the second row does successfully return the correct value of that cell. Any idea on why that would happen?
On the table param I use
<SNMP>
<Enabled>true</Enabled>
<OID type="complete" options="instance;multipleGetNext">1.3.6.1.4.1.<vendor-OID>.12.10.3</OID>
</SNMP>
and on the columns I add the SNMP tag as well like this on the first column:
<SNMP>
<Enabled>true</Enabled>
<OID type="complete">1.3.6.1.4.1.<vendor-OID>.12.10.3.1.1</OID>
</SNMP>
and finally the Group is defined as:
<Group id="6">
...
<Type>poll</Type>
<Content>
<Param>1030</Param>
</Content>
</Group>
This problem was due to a bug in the device firmware and after getting an update from the manufacturer.
After a firmware upgrade, following Mieke's instructions worked perfectly.
Hi Robin,
I can see a mistake in your definition.
You use multipleGetNext polling method in combo with the instance option. This means:
- Advised to leave the Table OID value empty. = to avoid duplicate Get requests for the index.
- Do not add the SNMP definition in the column used as index. = this is filled in by the instance option.
- Add SNMP definitions to all other columns
<Param id="300" trending="false">
<Name>atTable</Name>
<Description>Address Translation Table</Description>
<Type>array</Type>
<ArrayOptions index="0">...</ArrayOptions>
<Information>...</Information>
<Interprete>...</Interprete>
<SNMP>
<Enabled>true</Enabled>
<OID type="complete"
options=";instance;multiplegetnext"></OID>
</SNMP>
<Display>...</Display>
<Measurement>...</Measurement>
</Param>
<Param id="301" trending="false">
<Name>atIndex</Name>
<Description>Index (Address Translation)</Description>
<Information>...</Information>
<Type>read</Type>
<Interprete>...</Interprete>
<Display>...</Display>
<Measurement>...</Measurement>
</Param>
In case you want to use the Get next + multiple get method with the instance option:
- Leave the Table OID value empty
- the options attribute on the Table OID should only contain ;instance
- Do not add the SNMP definition in the column used as index. = this is filled in by the instance option.
- Add SNMP definitions to all other columns
<SNMP>
<Enabled>true</Enabled>
<OID type="complete"
options=";instance"></OID>
</SNMP>
Also don't forget that the ColumnOptions type of the table param should be "snmp"
<Param id="150" trending="false">
<Name>ifTable</Name>
<Description>Interfaces</Description>
<Type>array</Type>
<ArrayOptions index="0" options=";naming=/152">
<ColumnOption idx="0" pid="151" type="snmp" options="" />
<ColumnOption idx="1" pid="152" type="snmp" options="" />
<ColumnOption idx="2" pid="153" type="snmp" options="" />
<ColumnOption idx="3" pid="154" type="snmp" options="" />
</ArrayOptions>
Hi Robin,
Since you're using a wildcard, have you tried by specifying an ID as mentioned in the Docs?
Hi Robin,
Can you try other table retrieval methods? We have table retrieval methods as below:
- GetNext
- GetNext + MultipleGet
- GetNext + MultipleGet by row
- MultipleGetNext
- MultipleGetBulk
- Comparison
You may refer to the DataMiner Docs link for more information on the table retrieval method.
Hi Jeeva. I did use that page when troubleshooting, I should have mentioned that in my initial post. All of the alternatives result in just one row being fetched except “multipleGetBulk” which returns nothing which is expected as devices use SNMPv1.
Also, unrelated but I get the “Unknown or malformed SNMP OID option ‘multipleget’.”-warning from the DIS plugin when using “GetNext + MultipleGet by Row”.
Sorry for being unclear. The asterisk was just a placeholder for the vendor OID, not a wildcard.