Java Dynamic Management Kit 4.2 Tutorial

Discovery Responder Notifications

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.


Example 15-5 The Discovery Responder Notification Handler

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);
}