Hi Donna,

Use the Snmp.addNotificationListener instead to process
notifcations and traps. For INFORMs, SNMP4J will send
the response, because this is required by the SNMP standard.

Best regards,
Frank

Donna Griffin wrote:
Hi there,

I have created a listener class called trapDump that implements the
commandResponder interface and adds the unimplemented method,
processPDU. However when the class recieves a trap or inform message
it automatically generates a response message to the sender but does
not print the print out statements in the method.

Please find the code attached below@


private void registerForTraps(int port, String community, int version)
        throws IOException
        
        {       
        AbstractTransportMapping transport;
                
                address=GenericAddress.parse("udp:127.0.0.1/" + port);
            if (address instanceof TcpAddress) {
              transport = new DefaultTcpTransportMapping((TcpAddress) address);
            }
            else {
              transport = new DefaultUdpTransportMapping((UdpAddress) address);
            }
            ThreadPool threadPool =
                ThreadPool.create("DispatcherPool", numDispatcherThreads);
            MessageDispatcher mtDispatcher =
                new MultiThreadedMessageDispatcher(threadPool, new
MessageDispatcherImpl());
        
            // add message processing models
            mtDispatcher.addMessageProcessingModel(new MPv1());
            mtDispatcher.addMessageProcessingModel(new MPv2c());
            mtDispatcher.addMessageProcessingModel(new 
MPv3(localEngineID.getValue()));

            // add all security protocols
            SecurityProtocols.getInstance().addDefaultProtocols();

            Snmp snmp = new Snmp(mtDispatcher, transport);
            if (version == SnmpConstants.version3) {
              USM usm = new USM(SecurityProtocols.getInstance(), localEngineID, 
0);
              SecurityModels.getInstance().addSecurityModel(usm);
              if (authoritativeEngineID != null) {
                snmp.setLocalEngine(authoritativeEngineID.getValue(), 0, 0);
              }
              // Add the configured user to the USM
              snmp.getUSM().addUser(new OctetString(securityName), new
UsmUser(new OctetString(securityName),
                                        authType,
                                        new OctetString(authPassword),
                                        privType,
                                        new OctetString(privPassword)));        
    }
            else {
              CommunityTarget target = new CommunityTarget();
              target.setCommunity(new OctetString(community));
              this.target = target;
            }
                
        
            snmp.addCommandResponder(this);
            transport.listen();
            System.out.println("Listening on "+address);      
        }


public void processPdu(CommandResponderEvent arg0) {
                // TODO Auto-generated method stub
                System.out.println("inside processPdu..." + arg0.getPDU());
        }

What I would expect now is that when the agent recieves the trap or
INFORM message the processPDU method would be called but it is not. I
also ran the examples that came with the distribution and the
statements in the processPDU method is not called there either Can you
help me please!

Regards,
Donna
_______________________________________________
SNMP4J mailing list
[email protected]
http://lists.agentpp.org/mailman/listinfo/snmp4j

--
AGENT++
http://www.agentpp.com
http://www.mibexplorer.com
http://www.mibdesigner.com

_______________________________________________
SNMP4J mailing list
[email protected]
http://lists.agentpp.org/mailman/listinfo/snmp4j

Reply via email to