Hi Peter,

There is no such method to add a complete row to a PDU. 
For traps/notifications, it would be against the protocol design.
Traps and notifications should inform about changes but should
not transport (all) the data that changed. 
In a critical situation, the risk is too high that a big PDU could not
be created, send, received and processed properly. Therefore,
the concept of trap-directed-polling is used. Thus, you should
only send a single column that is most critical to know about.
The rest of the columns can then be requested by the
trap receiver if needed.

Best regards,
Frank


> On 01 Apr 2016, at 20:11, Peter S <peterkt2...@yahoo.com> wrote:
> 
> Greetings,
> Thank you for the SNMP4J library.
> I understand with the SNMP protocol there is no concrete implementation of a 
> Table or Row. These concepts are part of the SMI specification, not the 
> protocol.
> 
> However, I was wondering if the SNMP4J Agent API provided a convenience 
> method or API for sending an entire row or even a table of rows in an SNMP 
> trap or notification. I am using the free version of SNMP4J agent, version 
> 2.4.2.  I have functioning code for sending simple scalar notifications. My 
> question concerns sending complex types, like table rows. If such a row can 
> be containing in one UDP message, is there an easy way to just provide this 
> row to the SNMP4J api. Something like the following:
> MOTable<...> table = moFactory.createTable(rootTableOID, indexDef, 
> columns)... build table and rowsScopedPDU pdu = new 
> ScopedPDU()List<VariableBinding> vb = new ArrayList ...vb.add(0, new 
> VariableBinding(SnmpConstants.sysUpTime, sysUpTime));vb.add(1, new 
> VariableBinding(SnmpConstants.snmpTrapOID, notificationRoot));vb.add(2, new 
> VariableBinding(tableRootOID, table);..orvb.add(2, new 
> VariableBinding(tableRootOID, a row in table)...pdu.addAll(vb);
> snmp.notify(pdu, target);
> 
> 
> Alternatively ...
> 
> If there is no such support for this functionality, my approach is to simply 
> add multiple VariableBinding instances for each column instance value to a 
> ScopedPDU instance. Would this be something like the following?
> ScopedPDU pdu = new ScopedPDU()List<VariableBinding> vb = new ArrayList 
> ...vb.add(0, new VariableBinding(SnmpConstants.sysUpTime, 
> sysUpTime));vb.add(1, new VariableBinding(SnmpConstants.snmpTrapOID, 
> notificationRoot));
> ...for each column in a table rowvb.add(columnIndex, new VariableBinding(full 
> columnOID, including instance number, value)pdu.addAll(vb);
> snmp.notify(pdu, target);
> Thank you in advance for your help!
> -Peter
> 
> _______________________________________________
> SNMP4J mailing list
> SNMP4J@agentpp.org
> https://oosnmp.net/mailman/listinfo/snmp4j

_______________________________________________
SNMP4J mailing list
SNMP4J@agentpp.org
https://oosnmp.net/mailman/listinfo/snmp4j

Reply via email to