2012-05-12 5 views
0

私はSNMP4Jを使用して、何らかの値を設定しようとしています。セットでの取り消しに失敗しました

 Variable var = OctetString.fromHexString(v); 
     VariableBinding varBind = new VariableBinding(new OID(o),var); 
     pdu.add(varBind); 
     pdu.setRequestID(new Integer32(1)); 
     pdu.setType(PDU.SET); 
     Snmp snmp = new Snmp(transport); 
     ResponseEvent response = snmp.set(pdu, comtarget); 
     if (response != null){ 
      PDU responsePDU = response.getResponse(); 
      if (responsePDU != null){ 
       int errorStatus = responsePDU.getErrorStatus(); 
       String errorStatusText = responsePDU.getErrorStatusText(); 
       if (errorStatus == PDU.noError) return responsePDU.get(0).getVariable().toString(); 
       else return errorStatusText; 
      }else return "No response"; 
     }else return null; 

ITSは正常に動作しますが、時々私は、いずれかが、私はそれを修正することができますどのようにこのエラーの理由とどのようにエラーUndo failed
を知っていましたか?

答えて

3

エラーコードUndo Failedは、全体の操作をロールバックしようとしたときは、単一​​の要求セットの試みの

  • 一つに複数の変数を設定しようとしました

    1. を失敗したことを意味します(つまり、元に戻します完了した変更)、別のは、元に戻すを完了できませんでした。

    これは基本的にtelです元のセット操作のどれが完了したかわからず、物事が一貫性のない状態になる可能性があります。以前の問題を説明する追加のエラーコードがレスポンスに含まれているかどうかを知るために、SNMPエラー報告の詳細について十分に分かっていません。

    現時点では、Googleを使用してこの情報を見つけるまでに20秒かかりました。 25ページ

  • 0

    あなたがRFCドキュメントに飛び込むかのように修正するために少し希望が、あり、

    http://www.ietf.org/rfc/rfc1448.txt

    はundoFailedの理由が記載されています。

    厳密に言えば、これはSNMPエージェントによって引き起こされ、ベンダーだけがそれを回避する方法を伝えることができます。

    関連する問題