Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
    private static class AcknowledgementListener implements NotificationListener {
        private volatile long lastAcknowledgement;
        
        @Override
        public void handleNotification(Notification notification, Object handback) {
            if (notification instanceof AcknowledgementNotification) {
                AcknowledgementNotification ack = (AcknowledgementNotification)notification;
                lastAcknowledgement = ack.getMessageNumber();
            }
        }
    } 
        // initialize client
    ...
        // attach to JMX bean for notifications
        //  NOTE: you must have sent at least one message to initialize RM before executing this code
        Endpoint ep = ClientProxy.getClient(client).getEndpoint();
        InstrumentationManager im = bus.getExtension(InstrumentationManager.class);
        MBeanServer mbs = im.getMBeanServer();
        RMManager clientManager = bus.getExtension(RMManager.class);
        ObjectName name = RMUtils.getManagedObjectName(clientManager, ep);
        System.out.println("Looking for endpoint name " + name);
        AcknowledgementListener listener = new AcknowledgementListener();
        mbs.addNotificationListener(name, listener, null, null);
        
        // send messages using RM with acknowledgement status reported to listener
    ...