When it receives a responder's activation or deactivation message, the discovery monitor sends notification objects of the DiscoveryResponderNotification class. This notification contains the new state of the discovery responder (ONLINE or OFFLINE) and a DiscoveryResponse object with information from the agent where the responder is located.
The listener could use this information to update a list of agents in the network. In our example, the listener is the agent application itself, and the handler method only prints out the information in the notification.
public void handleNotification( javax.management.Notification notification, java.lang.Object handback) { // We know we will only receive this subclass, so we can do the cast DiscoveryResponderNotification discoveryNotif = (DiscoveryResponderNotification) notification; echo("\n>>> RECEIVED Discovery Notification FROM JDMK agent on host \"" + discoveryNotif.getEventInfo().getHost() + "\""); if ( discoveryNotif.getState().intValue() == DiscoveryMonitor.ONLINE ) { echo("\t DiscoveryResponder state = ONLINE"); } else { echo("\t DiscoveryResponder state = OFFLINE"); } DiscoveryResponse info = (DiscoveryResponse) discoveryNotif.getEventInfo(); // internal method for displaying the discovery response information printDiscoveryResponse(info); } |