[SNMP4J] SNMP4J set question
Mauricio Reyes
maure5 at hotmail.com
Mon Mar 28 05:40:32 CEST 2005
Hello,
I am trying to do a set operation from within the code, but I'm getting this
error message:
C:\Documents and Settings\Test\Desktop\tmp\snmp4jset>java -classpath
.;./SNMP4J.
jar;./log4j-1.2.7.jar SNMP4JSet
log4j:WARN No appenders could be found for logger
(org.snmp4j.security.Salt).
log4j:WARN Please initialize the log4j system properly.
org.snmp4j.MessageException: Message processing model 3 returned error: 1404
at
org.snmp4j.MessageDispatcherImpl.sendPdu(MessageDispatcherImpl.java:3
77)
at org.snmp4j.Snmp.sendMessage(Snmp.java:859)
at org.snmp4j.Snmp.processReport(Snmp.java:1129)
at org.snmp4j.Snmp.processPdu(Snmp.java:1073)
at
org.snmp4j.MessageDispatcherImpl.fireProcessPdu(MessageDispatcherImpl
.java:508)
at
org.snmp4j.MessageDispatcherImpl.dispatchMessage(MessageDispatcherImp
l.java:244)
at
org.snmp4j.MessageDispatcherImpl.processMessage(MessageDispatcherImpl
.java:285)
at
org.snmp4j.transport.DefaultUdpTransportMapping$ListenThread.run(Defa
ultUdpTransportMapping.java:221)
org.snmp4j.MessageException: Message processing model 3 returned error: 1404
at
org.snmp4j.MessageDispatcherImpl.sendPdu(MessageDispatcherImpl.java:3
77)
at org.snmp4j.Snmp.sendMessage(Snmp.java:859)
at org.snmp4j.Snmp$PendingRequest.run(Snmp.java:1289)
at java.util.TimerThread.mainLoop(Timer.java:432)
at java.util.TimerThread.run(Timer.java:382)
SET sent succesfully
C:\Documents and Settings\Test\Desktop\tmp\snmp4jset>
And the request is not sent.
I'm doing this within the code:
import org.snmp4j.*;
import org.snmp4j.mp.*;
import org.snmp4j.security.*;
import org.snmp4j.smi.*;
import org.snmp4j.transport.*;
import org.snmp4j.util.*;
import org.snmp4j.event.ResponseEvent;
public class SNMP4JSet
{
public SNMP4JSet()
{
}
public static void main(String[] args)
{
try
{
int pduType = PDU.SET;
SNMP4JSet set=new SNMP4JSet();
Address targetAddress = GenericAddress.parse("127.0.0.1/161");
TransportMapping transport = new DefaultUdpTransportMapping();
Snmp snmp = new Snmp(transport);
MPv3 mpv3 =
(MPv3)snmp.getMessageProcessingModel(MessageProcessingModel.MPv3);
USM usm = new USM(SecurityProtocols.getInstance(),new
OctetString(mpv3.createLocalEngineID()), 0);
SecurityModels.getInstance().addSecurityModel(usm);
transport.listen();
// add user to the USM
snmp.getUSM().addUser(new OctetString("martest"),
new UsmUser(new OctetString("martest"),
AuthMD5.ID,
new OctetString("marprueba"),
PrivDES.ID,
new OctetString("marprueba")));
// create the target
UserTarget target = new UserTarget();
target.setAddress(targetAddress);
target.setRetries(1);
target.setTimeout(5000);
target.setVersion(SnmpConstants.version3);
target.setSecurityLevel(SecurityLevel.AUTH_PRIV);
target.setSecurityName(new OctetString("marprueba"));
// create the PDU
PDU pdu = new ScopedPDU();
VariableBinding vb = new VariableBinding(new
OID("1.3.6.1.4.1.1.1.1.10.0"));
Variable variable;
variable = new Integer32(Integer.parseInt("27"));
vb.setVariable(variable);
pdu.add(vb);
pdu.setType(PDU.SET);
// send the PDU
ResponseEvent response;
response = snmp.send(pdu, target);
if(pduType == PDU.SET)
{
System.out.println(PDU.getTypeString(pduType) + " sent
succesfully");
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
I don't know what I'm doing wrong. I must be missing something as it works
fine with the tool provided. I'm trying to send the set operation to a
net-snmp agent.
Thanks a lot for your collaboration.
Mauricio
_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE!
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
More information about the SNMP4J
mailing list