[SNMP4J] Several Questions from a New User Creating an Agent in snmp4j

Jason Jeffords jason.jeffords at comcast.net
Fri Mar 17 04:31:28 CET 2006


Thanks Frank,

This is very helpful.  I will try your suggestions and see how far I get.

Best Regards,

Jason

> -----Original Message-----
> From: Frank Fock [mailto:fock at agentpp.com]
> Sent: Thursday, March 16, 2006 6:52 PM
> To: Jason Jeffords
> Cc: snmp4j at agentpp.org
> Subject: Re: [SNMP4J] Several Questions from a New User Creating an Agent
> in snmp4j
> 
> Hi Jason,
> 
> Jason Jeffords wrote:
> > All,
> >
> > I am trying to determine the best way to do the following:
> >
> > 1) set the value of previously created MIB objects from within the Agent
> >    itself
> >    - is there a direct call to change the value given an OID?
> >      Or
> 
> Yes and no. Each ManagedObject implementation may have its
> own method to manipulate data. The MOScalar has the setValue
> method and MOTable the MOTableModel, for example.
> 
> >    - should I form a PDU and send it into the Agent code even though I
> am
> >      in the local process?
> 
> No.
> 
> > 2) If I form the PDU and send it into the local Agent I would like to
> use
> >    the OID values in the MIB generated by the AgentPro2 tool (generating
> >    snmp4j code).  However, all constants in the generated MIB are
> private by
> >
> >    default.  How can I reuse these definitions?
> 
> Make then public. You can change the Velocity
> template used by AgenPro. Version 2.5 of AgenPro
> will use a template that generates public constants.
> 
> > 3) Is there any way to register for notification of committed object
> changes
> >    from the SNMP layer?  I see the validate and counter change events
> but
> >    don't see a way to register for changes when they are actually
> committed.
> >
> 
> MOChangeListener provides such a concept for DefaultMOTable.
> 
> >    For instance, I don't want to register for validation only to have
> the
> >    commit fail and get rolled back.  I need to know when the set is
> >    successful (so I can notify other modules and apply the changes to
> >    hardware).
> 
> For tables, I would recommend using the MOTableRowEvent
> to apply committed changes atomically.
> 
> >
> > My architecture looks like the following:
> >
> >  CLI      HTTP      SNMP
> >    |       |         |
> >   SHARED MANAGED OBJECTS
> >            |
> >  HARDWARE ABSTRATION LAYER
> >
> >
> > My goal is to have changes from each of the upper layer protocols
> manipulate
> > the same shared managed objects, which in turn will get/set from the
> > hardware abstraction layer.
> >
> > Does anyone know the best way to accomplish this?
> 
> You may use the SNMP4J classes to hold the data and provide
> interfaces to CLI and HTTP by your own. You may also use
> a third party representation like MBeans and provide a
> (generic) mapping to SNMP4J-Agent.
> 
> Best regards,
> Frank
> 
> --
> AGENT++
> http://www.agentpp.com
> http://www.mibexplorer.com
> http://www.mibdesigner.com




More information about the SNMP4J mailing list