2012-07-12 68 views
0

有沒有方法在java中測試SNMP連接可用性?我正在使用Ireasoning api。測試SNMP連接可用性

  try { 
      long timeTicks = System.currentTimeMillis(); 
      while (timeTicks > 4294967295L) { timeTicks-= 4294967295L; } 
      SnmpTrap trap = new SnmpTrap(timeTicks, new SnmpOID(oid)); 
      try { 
       InetAddress inet = InetAddress.getByName(agentIp); 
       agentIp = inet.getHostAddress(); 
      } catch (Exception e2) { 
       System.out.println("SendSNMPTrap::sendVersion2c unable to resolve "+agentIp+" to real IP. Exception="+e2.toString()); 
      } 

      trap.addVarBinds(vb.getVarbinds()); 
      SnmpTrapSender.sendTrap(destHost, port, trap, true, community); 
     } catch (Exception e) { 
      logger.error("SendSNMPTrap::sendVersion2c Exception="+e.toString()); 
      result = false; 
     } 

回答

1

測試任何資源的可用性以嘗試使用它的最佳方法。無論如何,你必須處理失敗。爲什麼要編寫相同的代碼兩次?爲什麼試圖預測未來?

+0

另外,爲了使它明確:任何告訴你資源是否可用的測試,可能會在下一秒過時,當你真正嘗試使用它時。 – Miquel 2012-07-12 13:09:15

+0

雖然 – Recct 2012-07-12 13:41:09

+0

可能測試位是他的程序的預期功能「風可以吹一種方式,但實際上將你移動到另一個方向,並且像航行一樣,你可以在錯誤的方向使用風,並且仍然可以到達你想要去的地方。 「 -Pete Seeger在Whole Earth Review中引用,2001年春季。 – 2012-07-12 13:45:04

0

您可以使用INFORM PDU而不是TRAP PDU。通過這種方式,陷阱接收器會向您發送迴應以確認它已收到INFORM。