SNMP Antwort "abwarten"

Fohnbit

Top Contributor
Hallo,

wie soll ich mein Projekt gestalten, damit ich eine Antwort von einem UDp SNMP Befehl verarbeiten und zuteilen kann?

Java:
ublic void snmpSetString(String strOID, String value) {
		host = host + "/" + port;
		Address tHost = GenericAddress.parse(host);
		Snmp snmp;
		try {
			TransportMapping<?> transport = new DefaultUdpTransportMapping();
			snmp = new Snmp(transport);
			transport.listen();
			CommunityTarget target = new CommunityTarget();
			target.setCommunity(new OctetString(community));
			target.setAddress(tHost);
			target.setRetries(2);
			target.setTimeout(5000);
			target.setVersion(SnmpConstants.version1); 
			PDU pdu = new PDU();
		
			pdu.add(new VariableBinding(new OID(strOID), new OctetString(value)));

			pdu.setType(PDU.SET);
			ResponseListener listener = new ResponseListener() {
				public void onResponse(ResponseEvent event) {
					PDU strResponse;
					String result;
					((Snmp) event.getSource()).cancel(event.getRequest(), this);
					strResponse = event.getResponse();
					if (strResponse != null) {
						result = strResponse.getErrorStatusText();
						System.out.println("Set Status is: " + result);
					}
				}
			};
			snmp.send(pdu, target, null, listener);
			// snmp.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

Ich muss mit meiner Main Klasse mehrere Befehle schnell hintereinander absetzen.
Und ich würde gerne auswerten, ob alle Befehle mit "Success" abgearbeitet wurden.

Mein Problem:
Wenn ich das "snmp.close();" ausführen lasse, erhalte ich gar keine Response. Lasse ich diese offen, erhalte ich diese.

Nun müßte ich alles in eine Art Queue legen, wenn dort Befehle existieren, soll ein Consumer diese holen, senden und die Rückmeldung passend zum Befehl an die Mainklasse rückmelden.

Wie baut man solch eine Umgebung auf?

Danke!
 

Ähnliche Java Themen

Neue Themen


Oben