1

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;

正常に動作しますが、エラーが発生Undo failed
することがありますこのエラーの原因と修正方法を知っている人はいますか?

4

2 に答える 2

3

エラーコードは次のUndo Failedことを意味します

  1. 1つのリクエストで複数の変数を設定しようとしました
  2. 設定された試行の1つが失敗しました
  3. 操作全体をロールバックしようとしている間(つまり、完了した変更を元に戻す)、別のエラーが原因で元に戻すが完了しませんでした

これは基本的に、元の設定操作がどれだけ完了したかがわからず、一貫性のない状態のままになる可能性があることを示しています。応答に以前の問題を説明する追加のエラーコードが含まれているかどうかを知るために、SNMPエラーレポートの詳細について十分に知りません。

ところで、Googleを使用してこの情報を見つけるのに20秒かかりました。

于 2012-05-13T03:08:10.417 に答える