Writing SNMP Manager using SNMP4J

Hello,
I am writing a SNMP Manager that is supposed to do the following:
(1) Send snmp commands to snmp-agents, and handle thier response.
(2) receive snmp traps from snmp-agents.
I am using SNMP4J software package for writing the snmp manager.
I would like to use a SINGLE Snmp object (SNMP4J object) , both
for sending a snmp command and for receiving snmp traps.
SO far, I have written two separate programs:
*** Program 1:
** The first program only listens for Snmp trap-PDUs.
** Its main code is as follows:
     // configure Snmp object
     UdpAddress address = new UdpAddress("127.0.0.1/1990");
     TransportMapping transport = new DefaultUdpTransportMapping(address);
     Snmp snmp = new Snmp(transport);
     transport.listen();
     // handle received traps here
     CommandResponder trapPrinter = new CommandResponder() {
          public synchronized void processPdu(CommandResponderEvent e) {
               PDU command = e.getPdu();
               if (command != null) {
                    System.out.println(command.toString());
     snmp.addCommandResponder(trapPrinter);
*** Program 2:
** The second program sends GET PDUs, and its main code is as follows:
     // configure Snmp object
     UdpAddress targetAddress = new UdpAddress("127.0.0.1/1985");
     CommunityTarget target = new CommunityTarget();
     target.setCommunity(new OctetString("public"));
     target.setAddress(targetAddress);
     target.setRetries(2);
     target.setTimeout(10000); // was 1000 !!!
     target.setVersion(SnmpConstants.version1);
     Snmp snmp = new Snmp(new DefaultUdpTransportMapping());
     snmp.listen();
     // prepare the PDU for sending
     PDU command = new PDU();
     command.setType(PDU.GET);
     command.add(new VariableBinding(new OID("1.3.6.1.4.1.1331.11.5.1.0")));
     // now send the PDU
     ResponseEvent responseEvent = snmp.send(pdu, target);
     if (responseEvent != null)
          // response has arrived. handle it
     else
          System.out.println("null response received...");
I would like to unite these two programs into one, however, I cannot seem to
properly allocate one Snmp object to handle both the sending and receiving of PDUs.
I run two threads: thread-1 that does the listening for snmp traps,
and thread-2 which in charge of sending get/set PDUs.
I allocate the Snmp object in one place as follows:
     TransportMapping transport = new DefaultUdpTransportMapping(new UdpAddress("127.0.0.1/1990"));
     Snmp snmp = new Snmp(transport);
     snmp.listen();
and I transfer it to both threads to be used there.
However, thread-2 sometimes fails to send PDUs using snmp.send(...);
What am I doing wrong?
Can anyone guide me as for how I should allocate the Snmp object so
it is good for both sending PDUs, and for receving traps?
Thanks,
Nefi

Hello,
I am writing a SNMP Manager that is supposed to do the following:
(1) Send snmp commands to snmp-agents, and handle thier response.
(2) receive snmp traps from snmp-agents.
I am using SNMP4J software package for writing the snmp manager.
I would like to use a SINGLE Snmp object (SNMP4J object) , both
for sending a snmp command and for receiving snmp traps.
SO far, I have written two separate programs:
*** Program 1:
** The first program only listens for Snmp trap-PDUs.
** Its main code is as follows:
     // configure Snmp object
     UdpAddress address = new UdpAddress("127.0.0.1/1990");
     TransportMapping transport = new DefaultUdpTransportMapping(address);
     Snmp snmp = new Snmp(transport);
     transport.listen();
     // handle received traps here
     CommandResponder trapPrinter = new CommandResponder() {
          public synchronized void processPdu(CommandResponderEvent e) {
               PDU command = e.getPdu();
               if (command != null) {
                    System.out.println(command.toString());
     snmp.addCommandResponder(trapPrinter);
*** Program 2:
** The second program sends GET PDUs, and its main code is as follows:
     // configure Snmp object
     UdpAddress targetAddress = new UdpAddress("127.0.0.1/1985");
     CommunityTarget target = new CommunityTarget();
     target.setCommunity(new OctetString("public"));
     target.setAddress(targetAddress);
     target.setRetries(2);
     target.setTimeout(10000); // was 1000 !!!
     target.setVersion(SnmpConstants.version1);
     Snmp snmp = new Snmp(new DefaultUdpTransportMapping());
     snmp.listen();
     // prepare the PDU for sending
     PDU command = new PDU();
     command.setType(PDU.GET);
     command.add(new VariableBinding(new OID("1.3.6.1.4.1.1331.11.5.1.0")));
     // now send the PDU
     ResponseEvent responseEvent = snmp.send(pdu, target);
     if (responseEvent != null)
          // response has arrived. handle it
     else
          System.out.println("null response received...");
I would like to unite these two programs into one, however, I cannot seem to
properly allocate one Snmp object to handle both the sending and receiving of PDUs.
I run two threads: thread-1 that does the listening for snmp traps,
and thread-2 which in charge of sending get/set PDUs.
I allocate the Snmp object in one place as follows:
     TransportMapping transport = new DefaultUdpTransportMapping(new UdpAddress("127.0.0.1/1990"));
     Snmp snmp = new Snmp(transport);
     snmp.listen();
and I transfer it to both threads to be used there.
However, thread-2 sometimes fails to send PDUs using snmp.send(...);
What am I doing wrong?
Can anyone guide me as for how I should allocate the Snmp object so
it is good for both sending PDUs, and for receving traps?
Thanks,
Nefi

Similar Messages

  • Ho to decrypt snmp log using Snmp4j

    Hi all
    I have problem with decoding snmp log using my own listener.
    From the sample inside the snmp4j source code, what i can see here is we have to use their listener.
    Because of this, the snmp4j listener cannot bind the port 162 because my program has bound it.
    What is another way for me to get the the real snmp log(not encrypted).
    Below are the code of my snmparser that has problem to bind the port
    public class SnmpParser extends Parser implements CommandResponder {
    private String[] data = (String[]) COLUMN_DEFAULT_VALUE.clone();
    private String strLog = "";
    private String strIP = "";
    private MultiThreadedMessageDispatcher dispatcher;
    private Snmp snmp = null;
    private Address listenAddress;
    private ThreadPool threadPool;
    private int n = 0;
    private long start = -1;
    private ByteBuffer bis = null;
    private TransportMapping transport = null;
    public SnmpParser(String strIP, String strRawlog) {
    this.strIP = strIP;
    strLog = strRawlog;
    private void init() throws UnknownHostException, IOException {
    threadPool = ThreadPool.create("Trap", 2);
    dispatcher =
    new MultiThreadedMessageDispatcher(threadPool,
    new MessageDispatcherImpl());
    listenAddress =
    GenericAddress.parse(System.getProperty("snmp4j.listenAddress",
    "udp:192.168.2.55/162")); //This 162 port caused proggram terminated because cannot bind
    if (listenAddress instanceof UdpAddress) {
    transport = new DefaultUdpTransportMapping((UdpAddress)listenAddress);
    else {
    transport = new DefaultTcpTransportMapping((TcpAddress)listenAddress);
    snmp = new Snmp(dispatcher,transport);
    snmp.getMessageDispatcher().addMessageProcessingModel(new MPv1());
    snmp.getMessageDispatcher().addMessageProcessingModel(new MPv2c());
    snmp.getMessageDispatcher().addMessageProcessingModel(new MPv3());
    USM usm = new USM(SecurityProtocols.getInstance(),
    new OctetString(MPv3.createLocalEngineID()), 0);
    SecurityModels.getInstance().addSecurityModel(usm);
    // snmp.listen();
    public void doConvert() {
    System.out.println("Rawlog : " strLog);
    +//System.out.println("Rawlog(hex) : "+ new OctetString(strLog).toHexString());
    try {
    init();
    snmp.addCommandResponder(this);
    } catch (UnknownHostException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    //fire ProcessMessage
    bis = ByteBuffer.wrap(strLog.getBytes());
    try {
    if(transport!=null) {
    ((DefaultUdpTransportMapping)transport).fireProcessMessage(new UdpAddress(InetAddress.getByName("192.168.2.55"),
    162), bis);
    System.out.println("Firing");
    } else {
    System.out.println("Not firing");
    } catch (UnknownHostException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    public void processPdu(CommandResponderEvent event) {
    System.out.println(event.getPDU());
    System.out.println(event.getPDU().getVariableBindings());
    System.out.println(event.getPDU().getType());
    Below is just my listener code
    public final class UDPListener extends Listener {
    private int iUDPPort = 0;
    private boolean bStop = false;
    private byte[] buffer = null;
    private DatagramSocket dSocket = null;
    private DatagramPacket dPacket = null;
    public UDPListener(int piUDPPort) {
    this.iUDPPort = piUDPPort;
    this.buffer = new byte[1024];
    private boolean exceptionCaught = false;
    public UDPListener(int piUPDPort, int piBufferSize) {
    this.iUDPPort = piUPDPort;
    this.buffer = new byte[piBufferSize];
    public void run() {
    // if UDP listener initialized successfully, proceed with listening
    // or else exit this thread
    if (initUDPListener()) {
    Indefinite loop while bStop remains false. bStop is only set in 2 places.
    1. when stopListener method is called
    *2. when an exception is encountered in the block*
    while (!bStop) {
    try {
    dSocket.receive(dPacket);
    extractLog();
    } catch (Exception e) {
    Signifying exception is caught. Ending loop
    Logger.getLogger(UDPListener.class).error("Error while listening to UDP port: " + iUDPPort, e);
    exceptionCaught = true;
    bStop = true;
    try {
    if (dSocket != null)
    dSocket.close();
    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } finally {
    if (exceptionCaught)
    ListenerThreadReviver.getInstance().reinitListener("UDP", iUDPPort);
    Logger.getLogger(UDPListener.class).debug("UDPListener exiting gracefully");
    private void extractLog() {
    String strLog = "";
    String strDeviceIP = "";
    strLog = new String(dPacket.getData(), 0, dPacket.getLength());
    strDeviceIP = dPacket.getAddress().toString().replace("/", "");
    processLog(strLog, strDeviceIP);
    dPacket.setLength(buffer.length);
    private boolean initUDPListener() {
    try {
    // constructs a datagram socket and binds it to the specified port on the local host machine
    dSocket = new DatagramSocket(iUDPPort);
    // constructs a new datagram packet for receiving packets
    dPacket = new DatagramPacket(buffer, buffer.length);
    catch (SocketException e)
    // if the socket could not be opened, or the socket could not bind to the specified local port.
    e.printStackTrace();
    // attempts to close dSocket if it is open
    if (dSocket != null && !dSocket.isClosed()) {
    dSocket.close();
    // returns false to indicate initialization failure
    return false;
    return true;
    public synchronized void stopListener() {
    bStop = true;
    dSocket.close();
    -----

    instead of using  SNMPv2-SMI::mib-2.16.19.12.0  use the actual OID.
    i believe you can set it like this ipRouteNextHop.0.0.0.0 a X.X.X.X
    http://tools.cisco.com/Support/SNMP/do/BrowseOID.do?objectInput=.1.3.6.1.2.1.4.21.1.7+&translate=Translate&submitValue=SUBMIT

  • RVS4000 remote management using SNMP not Supported over WAN

    I'm trying to mange the RVS4000 router from the WAN side. I just changed the default password and in the firewall setting:
    Block WAN Request is disabled.
    Remote Management is enabled with the default port.
    But I am not able to connect to the router remotely (using its WAN IP address). I can ping its WAN IP address fine from the remote PC. The router functions normally (i.e. PC on the LAN can connect to the Internet) but the remote management via SNMP also does not work. In most cases, the router just does not respond to the TCP SYNC or SNMP request from the WAN. Occassionally, it responds to the TCP SYNC fine but when the remote PC requests the HTTP page, it quickly responds with FIN/ACK.
    In addition, I can connect to its WAN IP address from the LAN side. But it just does not work from the WAN side.
    I tried disabling firewall, IPS, etc, nothing works.
    Message was edited by: Steve DiStefano

    Shoot, I just tried it myself.   Didnt work.   I contacted development team and they told me it wasnt speced to operate for SNMP management (port 161) over the WAN.
    Remote  Mgmt on RVS4000 is limited to WebUI access on RVS4000, and SNMP is only  accessible from LAN side.
    This  product did not have any requirement to be accessed from Internet using  SNMP.
    Very sorry I didnt know this.   Was there a datasheet or paper that indicated this was supported I can correct to prevent this frpom happening to others like us?
    You know, I was thnking that the times I used SNMP on SB Routeres was when I was VPNed into the router, then it works, since it is supported on LANB side.  is that an option for you?
    Tell us about what typs of things you view walking SNMP from the NOC and we'lls ee if there are alternative ways for you to get the same data.
    Steve
    SE Field Channel Sales
    Message was edited by: Steve DiStefano

  • Problem in implementing code using snmp4j.jar

    Hi,
    I am using snmp4j.jar to create a class that will execute SNMP commands such as GET, GETNEXT and GETTABLE.
    The issue I am facing is extremely peculiar. When running the program for the first time, the output is seen correctly. However, in the subsequent executions, the program hangs (at the point where the object of my snmp class is to be created).
    I am unable to understand if some socket/port has been left open in the first run because of which successive executions are not happening. Also, the SNMP session may not be getting closed properly.
    Could someone please help me out with this issue? I am pasting the code snippets here for reference.
    Please do respond with your comments on the same. Thank you.
    import java.io.IOException;
    import java.util.List;
    import java.util.Vector;
    import org.snmp4j.CommunityTarget;
    import org.snmp4j.PDU;
    import org.snmp4j.Snmp;
    import org.snmp4j.event.ResponseEvent;
    import org.snmp4j.mp.SnmpConstants;
    import org.snmp4j.smi.Address;
    import org.snmp4j.smi.GenericAddress;
    import org.snmp4j.smi.OID;
    import org.snmp4j.smi.OctetString;
    import org.snmp4j.smi.VariableBinding;
    import org.snmp4j.transport.DefaultUdpTransportMapping;
    import org.snmp4j.util.DefaultPDUFactory;
    import org.snmp4j.util.TableEvent;
    import org.snmp4j.util.TableUtils;
    public class MySNMP
          *  Class variable declarations
         PDU requestPDU = null;
         Snmp snmp = null;
         CommunityTarget target = null;
         String responseString = null;
          *  Main method; point of execution start.
         public static void main(String[] args) throws IOException
                   snmpUtils obj = new snmpUtils("XX.XX.XX.XX", "public", 1, 1500);
                   String arrGet = obj.snmpGet(".1.3.6.1.2.1.1.1.0");
                   System.out.println("\nGET RESPONSE");
                   System.out.println(arrGet);
                   String arrGetNext = obj.snmpGetNext(".1.3.6.1.2.1.1.1.0");
                   System.out.println("\nGETNEXT RESPONSE");
                   System.out.println(arrGetNext);
                   String[] arr = { ".1.3.6.1.2.1.2.2.1.1.", ".1.3.6.1.2.1.2.2.1.5" };
                   String arrGetTable = obj.snmpGetTable(arr);
                   System.out.println("\nGETTABLE RESPONSE");
                   System.out.println(arrGetTable);
          *  Parameterized constructor
         public MySNMP(String IP, String commString, int version, long timeout)
              // Create an instance of the Snmp class, CommunityTarget class
              try
                   snmp = new Snmp(new DefaultUdpTransportMapping());
              catch (IOException e)
                   e.printStackTrace();
              target = new CommunityTarget();
              Address targetAddress = GenericAddress.parse("udp:" + IP + "/161");
              // Set the address of the target device; This is a mandatory value to be passed by the calling script
              target.setAddress(targetAddress);
               *  Set the version of the target device;
               *  In cases where the version provided is not 1,2 or 3, the default value set is 1 
              if (version == 1)
                   target.setVersion(SnmpConstants.version1);
              else if (version == 2)
                   target.setVersion(SnmpConstants.version2c);
              else if (version == 3)
                   target.setVersion(SnmpConstants.version3);
              // Set the timeout of the target device
              target.setTimeout(timeout);
               *  Set the community string of the target device;
               *  In cases where the community string provided is not null, the default value is set as "public" 
              if (commString == null)
                   target.setCommunity(new OctetString("public"));
              else
                   target.setCommunity(new OctetString(commString));          
          *  SNMP get/getNext operation logic
         public void get(String oid, int pduType) 
              // Create a PDU with the OID and type
              requestPDU = new PDU();
              requestPDU.add(new VariableBinding(new OID(oid)));
              requestPDU.setType(pduType);
              ResponseEvent response = null;
              try
                   // Invoke the listen() method on the Snmp object
                   snmp.listen();
                   // Send the PDU constructed, to the target
                   response = snmp.send(requestPDU, target);
              catch (IOException e)
                   e.printStackTrace();
              // Retrieve the response details and put into an array called "responseArray"
              responseString = new String();
              if (!(response.getResponse() == null))
                   //Extract the response
          *  SNMP GET method API
         public String snmpGet(String oid)
              get(oid, PDU.GET);
              return(responseString);          
          *  SNMP GETNEXT method API
         public String snmpGetNext(String oid) throws IOException
              get(oid, PDU.GETNEXT);
              return(responseString);     
          *  SNMP getTable operation
         public String snmpGetTable(String[] oid)
              // Invoke the listen() method on the Snmp object
              try
                   snmp.listen();
              catch (IOException e)
                   e.printStackTrace();
              // Create a TableUtils
              TableUtils utils = new TableUtils(snmp, new DefaultPDUFactory());
              // Set the lower/upper bounds for the table operation
              OID lowerIndex = null;
              OID upperIndex = null;
              // Create an array of the OID's that need to be checked
              OID[] arr = new OID[oid.length];
              for (int i=0; i<oid.length; i++)
                   arr[i] = new OID(oid);
              // Transfer output to a data structure
              List list = utils.getTable(target, arr, lowerIndex, upperIndex);
              // Dump the response into an array called "responseArray"
              return responseString;

    Hi
    I did some changes in the code and i invoked this for many times it still gives some response to me.
    This program is not hanging.
    import java.io.IOException;
    import java.util.List;
    import org.snmp4j.CommunityTarget;
    import org.snmp4j.PDU;
    import org.snmp4j.Snmp;
    import org.snmp4j.event.ResponseEvent;
    import org.snmp4j.mp.SnmpConstants;
    import org.snmp4j.smi.Address;
    import org.snmp4j.smi.GenericAddress;
    import org.snmp4j.smi.OID;
    import org.snmp4j.smi.OctetString;
    import org.snmp4j.smi.VariableBinding;
    import org.snmp4j.transport.DefaultUdpTransportMapping;
    import org.snmp4j.util.DefaultPDUFactory;
    import org.snmp4j.util.TableUtils;
    public class MySNMP
          *  Class variable declarations
         PDU requestPDU = null;
         Snmp snmp = null;
         CommunityTarget target = null;
         String responseString = null;
         public MySNMP()
          *  Main method; point of execution start.
         public static void main(String[] args) throws IOException
                   //SnmpUtils obj = new SnmpUtils("XX.XX.XX.XX", "public", 1, 1500);
                for(int i = 0; i < 10; i++)
                  MySNMP obj = new MySNMP("MY_IP","public",1,1000);
                   String arrGet = obj.snmpGet(".1.3.6.1.2.1.1.1.0");
                   System.out.println("\nGET RESPONSE");
                   System.out.println(arrGet);
                   String arrGetNext = obj.snmpGetNext(".1.3.6.1.2.1.1.1.0");
                   System.out.println("\nGETNEXT RESPONSE");
                   System.out.println(arrGetNext);
                   String[] arr = { ".1.3.6.1.2.1.2.2.1.1.", ".1.3.6.1.2.1.2.2.1.5" };
                   String arrGetTable = obj.snmpGetTable(arr);
                   System.out.println("\nGETTABLE RESPONSE");
                   System.out.println(arrGetTable);
          *  Parameterized constructor
         public MySNMP(String IP, String commString, int version, long timeout)
              // Create an instance of the Snmp class, CommunityTarget class
              try
                   snmp = new Snmp(new DefaultUdpTransportMapping());
              catch (IOException e)
                   e.printStackTrace();
              target = new CommunityTarget();
              Address targetAddress = GenericAddress.parse("udp:" + IP + "/161");
              // Set the address of the target device; This is a mandatory value to be passed by the calling script
              target.setAddress(targetAddress);
               *  Set the version of the target device;
               *  In cases where the version provided is not 1,2 or 3, the default value set is 1 
              if (version == 1)
                   target.setVersion(SnmpConstants.version1);
              else if (version == 2)
                   target.setVersion(SnmpConstants.version2c);
              else if (version == 3)
                   target.setVersion(SnmpConstants.version3);
              // Set the timeout of the target device
              target.setTimeout(timeout);
               *  Set the community string of the target device;
               *  In cases where the community string provided is not null, the default value is set as "public" 
              if (commString == null)
                   target.setCommunity(new OctetString("public"));
              else
                   target.setCommunity(new OctetString(commString));          
          *  SNMP get/getNext operation logic
         public void get(String oid, int pduType) 
              // Create a PDU with the OID and type
              requestPDU = new PDU();
              requestPDU.add(new VariableBinding(new OID(oid)));
              requestPDU.setType(pduType);
              ResponseEvent response = null;
              try
                   // Invoke the listen() method on the Snmp object
                   snmp.listen();
                   // Send the PDU constructed, to the target
                   response = snmp.send(requestPDU, target);
              catch (IOException e)
                   e.printStackTrace();
              // Retrieve the response details and put into an array called "responseArray"
              PDU responsePdu = response.getResponse();
              if(responsePdu.getErrorStatus() == 0)
                   responseString = responsePdu.toString();
              else
                   System.out.println("ERROR");
              if (!(response.getResponse() == null))
                   //Extract the response
          *  SNMP GET method API
         public String snmpGet(String oid)
              get(oid, PDU.GET);
              return(responseString);          
          *  SNMP GETNEXT method API
         public String snmpGetNext(String oid) throws IOException
              get(oid, PDU.GETNEXT);
              return(responseString);     
          *  SNMP getTable operation
         public String snmpGetTable(String[] oid)
              // Invoke the listen() method on the Snmp object
              try
                   snmp.listen();
              catch (IOException e)
                   e.printStackTrace();
              // Create a TableUtils
              TableUtils utils = new TableUtils(snmp, new DefaultPDUFactory());
              // Set the lower/upper bounds for the table operation
              OID lowerIndex = null;
              OID upperIndex = null;
              // Create an array of the OID's that need to be checked
              OID[] arr = new OID[oid.length];
              for (int i=0; i<oid.length; i++)
                   arr[i] = new OID(oid);
              // Transfer output to a data structure
              List list = utils.getTable(target, arr, lowerIndex, upperIndex);
              // Dump the response into an array called "responseArray"
              return responseString;

  • Sending SNMP traps using JDMK from a SunOS 5.8 workstation

    Hi,
    We are using JDMK 5.1 for sending traps. This works when I run my java application (sending the traps) on my Windows desktop, where I have installed the JDMK.
    I want to run my application on a Sun workstation . For this I copied the JDMK libraries and traps are not received by the SNMP Manager. I would like to know the procedure for using JDMK from Sun OS. Do I have to install the Agent on Sun workstation rather than just copying the libraries?
    Thank you for the help.
    -Rejani

    There is a big difference between an app that isn't sending traps and one that isn't receiving them.
    You aren't eating exceptions in your code are you? If not then that means the traps are being sent. And if so then it means it has nothing to do with your application and probably nothing to do with the box and probably does have something to do with the network.

  • Basic MIB and SNMP understanding using JMX

    Hello
    i am trying to get my head around SNMP using JMX, but i am finding it dificult to know where to start.
    ideally i would love to find some basic code and go through it, so that i can understand it.
    i would love to find some code which just "Gets" one parameter from a mib stored on a seperate PC and displays it on another PC.
    I have looked at advent - to complex for what i want.
    Any help or suggestions - or possibly Code!! would be appreciated.
    Thanks
    Norman

    There is an example code included in the upcoming book "JMX: Managing J2EE with Java Management Extensions" that shows how to retrieve a simple attribute value from an JMX SNMP Adaptor using the Sun JDMK and AdventNet SNMP toolkits. It's a brief introduction to SNMP integration but should get you started.
    http://www.amazon.com/exec/obidos/ASIN/0672322889/104-6670791-7933546
    Unfortunately you still have to wait a week or two to get it.
    Basically the examples show how you can generate the required MBeans from an SNMP MIB definition (in Sun's JDMK this is a tool called MibGen), then register the SNMP Adaptor to the MBean server and associate and register the MBeans that were generated from the MIB to the adaptor. You can then use an SNMP client to connect to the adaptor and manipulate the MBeans through SNMP.
    Hope this is of some help.
    -- Juha

  • Connecting to UCS6120 from Fabric Manager using TACACS

    Standalone Fabric Manager 5.0(4a)
    UCS 1.4(3s)
    I have to log into Fabric Manager using TACACS with SNMPv3 (company network security restriction).
    I launch Fabric Manger using my TACACS account which connects to all the switches in my two fabrics using the same credentials.
    I can connect to all MDS9513, MDS9222i, IBM Bladechassis FC switch modules and all NX5020 switches in the fabrics. Fabric Manager cannot connect to any of the eight UCS6120 switches in the fabrics, returning a status of Unknow User or Password(Server,Client).
    This, I understand, requires the creation of a specific SNMP user, which is fine. However as I am logged into Fabric Manager using a single TACACS account, I cannot supply alternate credentials to a subset of switches in the fabric.
    Is there a work around for this to enable management of the 6120s in FM? or am I missing something.
    Thanks
    Mike Taylor

    Fabric Manager uses the same credentials to access all systems,  these credentials will need to be valid on the UCS platform as well.  Create a local SNMP user on UCS and check.  This needs to be different from any non-snmp authentication accounts on UCS.
    Note that FM cannot manage UCS.  You will be able to view into UCS but not make changes. May not be an issue if UCSM is running end host mode.  To make any changes, you will need to use the UCSM GUI or CLI or other tool for administration.
    Thank You,
    Dan Laden
    PDI Helpdesk
    http://www.cisco.com/go/pdihelpdesk

  • SNMP management client

    We are looking for information on SNMP management client that integrates
    well with Forte. If anybody has done something with SNMP, I would like to
    find out what you are using and how difficult was the process.
    thanks in advance.
    ka
    Kamran Amin
    Framework, Inc.
    303 South Broadway
    Tarrytown, NY 10591
    (914) 631-8953x121
    kamran.aminlendware.com
    http://www.lendware.com/

    Issue resolved.
    If anyone has this problem again, the solution is in two parts:
    (1) SNMPAgents do not respond to incorrectly configured requests so disable the security to permit testing. For the SNMPAgent all useful setting seem to reside in the SimpleAgent.xml file, so find the SNMP "version" and set it to "1". So far I haven't been able to find any documentation for this component.
    File: C:\JavaCAPS51\emanager\server\monitor\snmpagent\config\SnmpAgent.xml
    <properties
    version="3" -- Change to 1, available options (1|2|3)
    />
    All polling requests should work now.
    (2) The "AdventNet SNMP Adaptor 5 MibBrowser" doesn&#8217;t appear to support SNMP v3 security fully, or in a way compatible with the SNMPAgent implementation. The "iReasoning MIB Browser" (Professional Edition only with v3 support) works fine. Judging by the log files the CAPS SNMPAgent uses the iReasoning SNMP API.

  • SNMP Manager/Monitoring

    Hi,
    what do I have to do to use SNMP for Weblogic? Do I need an extra SNMP
    Manager? Which ones would you recommend? What must be the abilities of the
    manager to use it for WebLogic? Must it be able to monitor the weblogic SNMP
    objects? Or can I monitor all the information with my administration server?
    Or can we use both ways? What would be the better one? If I need an extra
    monitor? Which products are useful to monitor WebLogic?
    Thanks,
    Marita

    Anything to do with email receiving from Network Devices is todo with SMTP forwarding.
    Google / Look for SMTP configuration on MDS and hopefully there is alot on Cisco's site.
    One link I found is : http://www.cisco.com/en/US/docs/switches/datacenter/mds9000/sw/4_1/configuration/guides/cli_4_1/call.html#wp1402579
    Regards
    Yasser

  • SNMP Manager

    Hi all,
    Which good (famous) SNMP manager (free and shareware) use to manage not only Cisco devices, but also other vendors?
    Thanks

    I would add:
    Nagios (fault mgmt)
    RANCID (configuration mgmt)
    Cacti (performance mgmt)
    PRTG (performance mgmt - paid version also available)
    All are multivendor but require some more skills from the user to get the product setup and running. Remember - open source is free to acquire, but not free to operate and maintain.

  • "encoding = UTF-8" missing while writing XML file using file Adapter

    Hi,
    We are facing an unique problem writing xml file using file adapter. The file is coming without the encoding part in the header of xml. An excerpt of the file that is getting generated:
    <?xml version="1.0" ?>
    <customerSet>
    <user>
    <externalID>51017</externalID>
    <userInfo>
    <employeeID>51017</employeeID>
    <employeeType>Contractor</employeeType>
    <userName/>
    <firstName>Gail</firstName>
    <lastName>Mikasa</lastName>
    <email>[email protected]</email>
    <costCenter>8506</costCenter>
    <departmentCode/>
    <departmentName>1200 Corp IT Exec 8506</departmentName>
    <businessUnit>1200</businessUnit>
    <jobTitle>HR Analyst 4</jobTitle>
    <managerID>49541</managerID>
    <division>290</division>
    <companyName>HQ-Milpitas, US</companyName>
    <workphone>
    <number/>
    </workphone>
    <mobilePhone>
    <number/>
    </customerSet>
    </user>
    So if you see the header the "encoding=UTF-8" is missing after "version-1.0".
    Do we need to configure any properties in File Adapter?? Or is it the standard way of rendering by the adapter.
    Please advice.
    Thanks in advance!!!

    System.out.println(nodeList.item(0).getFirstChild().getNodeValue());

  • Reading/Writing .xlsx files using Webdynpro for Java

    Dear All
    I have a requirement to read/write excel files in .xlsx format. I am good in doing it with .xls format using jxl.jar. The jxl.jar doesn't support .xlsx format. Kindly help me in understanding how do I need to proceed on reading/writing .xlsx files using Webdynpro for Java.
    Thanks and Regards
    Ramamoorthy D

    i am using jdk 1.6.22 and IBM WebSphere
    when i use poi-3.6-20091214.jar and poi-ooxml-3.6-20091214.jar  to read .xlsx file. but i am getting following errors
    The project was not built since its classpath is incomplete. Cannot find the class
    file for java.lang.Iterable. Fix the classpath then try rebuilding this project.
    This compilation unit indirectly references the missing type java.lang.Iterable
    (typically some required class file is referencing a type outside the classpath)
    how can i resolve it
    here is the code that i have used
    public class HomeAction extends DispatchAction {
         public ActionForward addpage(
                             ActionMapping mapping,
                             ActionForm form,
                             HttpServletRequest request,
                             HttpServletResponse response)
                             throws Exception {     
                             String name = "C:/Documents and Settings/bharath/Desktop/Book1.xlsx";
               FileInputStream fis = null;
               try {
                   Object workbook = null;
                    fis = new FileInputStream(name);
                    XSSFWorkbook wb = new XSSFWorkbook(fis);
                    XSSFSheet sheet = (XSSFSheet) wb.getSheetAt(0);
                    Iterator rows = sheet.rowIterator();
                    int number=sheet.getLastRowNum();
                    System.out.println(" number of rows"+ number);
                    while (rows.hasNext())
                        XSSFRow row = ((XSSFRow) rows.next());
                        Iterator cells = row.cellIterator();
                        while(cells.hasNext())
                    XSSFCell cell = (XSSFCell) cells.next();
                    String Value=cell.getStringCellValue();
                    System.out.println(Value);
               } catch (IOException e) {
                    e.printStackTrace();
               } finally {
                    if (fis != null) {
                         fis.close();
                return mapping.findForward("returnjsp");

  • Need help writing host program using LabView.

    Need help writing host program using LabView.
    Hello,
    I'm designing a HID device, and I want to write a host program using National Instrument's LabView. NI doesn't have any software support for USB, so I'm trying to write a few C dll files and link them to Call Library Functions. NI has some documentation on how to do this, but it's not exactly easy reading.
    I've written a few C console programs (running Win 2K) using the PC host software example for a HID device from John Hyde's book "USB by design", and they run ok. From Hyde's example program, I've written a few functions that use a few API functions each. This makes the main program more streamlined. The functions are; GetHIDPath, OpenHID, GetHIDInfo, Writ
    eHID, ReadHIC, and CloseHID. As I mentioned, my main program runs well with these functions.
    My strategy is to make dll files from these functions and load them into LabView Call Library Functions. However, I'm having a number of subtle problems in trying to do this. The big problem I'm having now are build errors when I try to build to a dll.
    I'm writing this post for a few reasons. First, I'm wondering if there are any LabView programmers who have already written USB HID host programs, and if they could give me some advice. Or, I would be grateful if a LabView or Visual C programmer could help me work out the programming problems that I'm having with my current program. If I get this LabView program working I would be happy to share it. I'm also wondering if there might already be any USB IHD LabView that I could download.
    Any help would be appreciated.
    Regards, George
    George Dorian
    Sutter Instruments
    51 Digital DR.
    Novato, CA 94949
    USA
    [email protected]
    m
    (415) 883-0128
    FAX (415) 883-0572

    George may not answer you.  He hasn't been online here for almost eight years.
    Jim
    You're entirely bonkers. But I'll tell you a secret. All the best people are. ~ Alice

  • Running report in concurrent manager using unix shell script to create PDF

    Hi,
    I need help urgently, we are in the process of migrating from 10.7 to 11i. My problem is we have a report created in 10.7 that is ran through concurrent manager using shell scripts(host) and the output is stored as .pdf, in 10.7, it works perfectly. Now I am also doing it in 11i but it gives some error. The shell script from 10.7 is: r25runm module=$XXX_TOP/srw/test.rdf \
    userid=$1 batch=yes \
    desformat=pdf destype=file \
    desname=$XXX_TOP/outbound/test.pdf
    I change the shell script in 11i as follows:
    ar60runb report=$XXX_TOP/reports/US/test.rdf \
    userid=$1 batch=yes \
    desformat=pdf destype=file \
    desname=$XXX_TOP/outbound/test.pdf
    I checked your metalink, and I am confused which is the right executable I should use, is it ar60runb or ar60run or rwrun60b or rwrun60c or rwrun60b, which is which? how many parameters do I have to include?, some documents are saying I have to use the 4 parameters-orauser/pwd, userid,username, request_id, others one.Which parameter/s go/es with what executable. We are using HP-UX server 64 bit. In 11i, when I run in concurrent manager it gives me an error:The executable file /chdev/fd11/u00/fd11appl/xxx/1.0/bin/test for this concurrent program cannot be executed.
    Contact your system administrator or support representative. Verify that the execution path to the executable file is co.
    I have checked Metalink and follow the directions, created a link fndcpesr, check and set the permissions, etc. Play around with the executables ar60runb or rwrun60 etc., the parameters. The ar60* or rwrun60* executable permissions are -rwxr-xr-x and $XXX_TOP/fnd/../fndcpesr is -rwxr-xr-x. Also, why is ar60* executables located in $FND_TOP/bin, whereas rwrun60* executables are in $ORACLE_HOME/bin? Please help, I need an answer urgently ,I have to complete this task before Tuesday 9/16/2003 for our migration deadline. Thank you very much.

    I have already fixed the problem, TY anyway

  • Order Quote Management using Worklist application

    Hi,
    I am trying to assess the best option to implement a Order Quote Management Use Case.
    Use Case:
    1. User creates a list of items and create an order
    2. User selects 3 (or more) Suppliers and submit the order for a quotation
    3. In parallel the Suppliers receive a notification (by email) and access to the Supplier portal.
    4. Each single Supplier can see the order and add the prices / mark items can not deliver.
    5. Each Supplier re-submits the order to the original user.
    6. User can check all the Suppliers' quotes and select the best one.
    I was thinking to use the Worklist applications and Human Task BPEL to perform it.
    This is what I was thinking:
    a. Extend the Worklist application with a customize a webpage where the user can create a items list for quotation.
    b. When the user submit the order for quotation the page will call a ASYNC BPEL (called OrderQuotation).
    c. The BPEL OrderQuotation process will use Human Task BPEL to start a Human Task in parallel with the Suppliers (Supplier will receive a notification by mail using the notification function as well)
    d. We will expose the Worklist application (using Oracle Portal) to the Supplier
    e. Supplier will login in the Worklist application and claim the task
    f. Supplier will modify the order for quotation with price information and will submit back to the supplier the order now quoted.
    g. User will login in Worklist application and he will see a customized page where all the orders are quoted and compared for each supplier.
    Please, let me know:
    1. if this approach can be achieved using the standard functionalities of Worklist application / Human Task interaction in BPEL.
    2. If yes, which Human Task interaction parametrization I should use
    3. If no, let me know what I have to extend in the worklist to achieve it
    4. Or alternative another possible way to achieve it.
    Regards,
    Danny

    Hi,
    I also face the issue to port Worklist in JSP or portal other than using adf.
    I am using SOA 11.1.1.2 and using BPEL and Human workflow. I did a complete flow from JSP ->BPEL->Human worlist. Whenever i
    submit a form values in JSP, it hits BPEL and i am
    getting proper message list in Human worklist and wherein i can able to assign, escalate and delegate tasks.
    Now i need to customize the worklist in Weblogic Portal 10g or to JSP. My requirement now is to port the Worlist default skins to jsp or Portal.
    I also gone through SOA 11g developers guide and in worklist sections but no idea how to implement.
    If any body knows please advise.
    Thanks..
    -Bharathi

Maybe you are looking for