[jboss-user] [Management, JMX/JBoss] - Notifications in MBean

mayankmit2002 do-not-reply at jboss.com
Tue Jan 13 04:30:03 EST 2009


Hi All,
  I'm facing a unique problem, Basically i'm trying to send & recieve notifications from and within multiple MBean's. 
  For this, i tried a lot and even follow the steps specified on wiki ( http://www.jboss.org/community/docs/DOC-9713) . but failed to listen anything. 
I'm using JDK 1.6.0_03 and JBoss 4.2.3. The code is 


  | package com.aa.trial.mbean;
  | 
  | 
  | import java.util.Date;
  | 
  | import javax.management.Notification;
  | import javax.management.NotificationListener;
  | import javax.management.ObjectName;
  | 
  | import org.apache.log4j.Logger;
  | import org.jboss.annotation.ejb.Management;
  | import org.jboss.annotation.ejb.Service;
  | import org.jboss.monitor.services.NotificationListenerMBean;
  | import org.jboss.system.ListenerServiceMBeanSupport;
  | import org.jboss.system.ServiceMBeanSupport;
  | import org.jboss.varia.scheduler.Schedulable;
  | 
  | 
  | /**
  |  * TODO: Documentation to be done for type 'Trial'..
  |  * 
  |  * @author maym
  |  */
  | @Service(objectName = "com.aa.trial.mbean:service=TrialMBeanService")
  | @Management(TrialMBean.class)
  | public class TrialMBeanService
  |     extends ListenerServiceMBeanSupport
  |     implements TrialMBean, NotificationListenerMBean
  | {
  | 
  | 
  |     private static Logger aLogger = null;
  |     private ObjectName anObjectName = null;
  | 
  |     static
  |     {
  |         aLogger = Logger.getLogger(TrialMBeanService.class);
  |     }
  | 
  | 
  |     /**
  |      * TODO: Documentation to be done for constructor 'TrialMBeanService', by 'maym'..
  |      */
  |     public TrialMBeanService()
  |     {
  | 
  |     }
  | 
  | 
  |     /**
  |      * @see com.aa.trial.mbean.TrialMBean#test()
  |      */
  |     @Override
  |     public void test ()
  |     {
  |         System.out.println("Hello !!!!!!!!!!!!!!!!!!!!!!! ");
  | 
  |     }
  | 
  | 
  |     /**
  |      * @see org.jboss.system.ServiceMBeanSupport#startService()
  |      */
  |     @Override
  |     protected void startService ()
  |         throws Exception
  |     {
  |         // TODO Auto-generated method stub
  |         super.subscribe(true);
  |     }
  | 
  | 
  |     /**
  |      * @see org.jboss.system.ListenerServiceMBeanSupport#handleNotification2(javax.management.Notification, java.lang.Object)
  |      */
  |     @Override
  |     public void handleNotification2 (Notification anNotification, Object anHandback)
  |     {
  |         // TODO Auto-generated method stub
  |         log.debug("Notification Recieved!!!");
  |         test();
  |     }
  | 
  | 
  |     /**
  |      * @see org.jboss.system.ServiceMBeanSupport#stopService()
  |      */
  |     @Override
  |     protected void stopService ()
  |         throws Exception
  |     {
  |         // TODO Auto-generated method stub
  |         super.unsubscribe();
  |     }
  | 
  | 
  |     /**
  |      * @see org.jboss.monitor.services.NotificationListenerMBean#getDynamicSubscriptions()
  |      */
  |     @Override
  |     public boolean getDynamicSubscriptions ()
  |     {
  |         // TODO Auto-generated method stub
  |         return true;
  |     }
  | 
  | 
  |     /**
  |      * @see org.jboss.monitor.services.NotificationListenerMBean#getLogLevel()
  |      */
  |     @Override
  |     public String getLogLevel ()
  |     {
  |         // TODO Auto-generated method stub
  |         return "DEBUG";
  |     }
  | 
  | 
  |     /**
  |      * @see org.jboss.monitor.services.NotificationListenerMBean#getNotificationCount()
  |      */
  |     @Override
  |     public long getNotificationCount ()
  |     {
  |         // TODO Auto-generated method stub
  |         return super.getNextNotificationSequenceNumber() - 1;
  | 
  |     }
  | 
  | 
  |     /**
  |      * @see org.jboss.monitor.services.NotificationListenerMBean#getNotificationListener()
  |      */
  |     @Override
  |     public ObjectName getNotificationListener ()
  |     {
  |         return anObjectName;
  |     }
  | 
  | 
  |     /**
  |      * @see org.jboss.monitor.services.NotificationListenerMBean#setDynamicSubscriptions(boolean)
  |      */
  |     @Override
  |     public void setDynamicSubscriptions (boolean anArg0)
  |     {
  | 
  | 
  |     }
  | 
  | 
  |     /**
  |      * @see org.jboss.monitor.services.NotificationListenerMBean#setLogLevel(java.lang.String)
  |      */
  |     @Override
  |     public void setLogLevel (String anArg0)
  |     {
  |         // TODO Auto-generated method stub
  | 
  |     }
  | 
  |     /**
  |      * @see org.jboss.monitor.services.NotificationListenerMBean#setNotificationListener(javax.management.ObjectName)
  |      */
  |     @Override
  |     public void setNotificationListener (ObjectName anArg0)
  |     {
  |         try
  |         {
  |             this.anObjectName = anArg0;
  |             getServer().addNotificationListener(anArg0, this, null, null);
  |         }
  |         catch (Exception exception)
  |         {
  |             exception.printStackTrace();
  |         }
  |     }
  | }
  | 
MBean Interface is 

  | package com.aa.trial.mbean;
  | 
  | import org.jboss.annotation.ejb.Management;
  | import org.jboss.system.ListenerServiceMBean;
  | import org.jboss.system.ServiceMBean;
  | 
  | 
  | /**
  |  * Trial MBean
  |  * 
  |  * @author maym
  |  */
  | @Management
  | public interface TrialMBean
  |     extends ListenerServiceMBean
  | {   
  |     /**
  |      * 
  |      * TODO: Documentation to be done for method 'test', by 'maym'..
  |      *
  |      */
  |     public void test ();
  | }
  | 
and, jboss-service.xml is

<?xml version="1.0" encoding="UTF-8"?>
  | <server>
  |     <mbean code="com.aa.trial.mbean.TrialMBeanService" name="com.aa.trial.mbean:service=TrialMBeanService">
  |       <attribute name="SubscriptionList">      
  |         <subscription-list>
  |         	<mbean name="*:service=invoker,*" handback="anObject"></mbean>
  |         	<mbean name="jboss.monitor:*">
  |         		<notification type="JBOSS_MONITOR_NOTIFICATION"></notification>
  |         	</mbean>
  |         	<mbean name="JMImplementation:type=MBeanServerDelegate">
  |         		<notification type="JMX.mbean.registered"></notification>
  |         	</mbean>
  |         </subscription-list>
  |       </attribute>
  |     </mbean>
  |   </server>

Plz. help me to find out the problem...

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4201271#4201271

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4201271



More information about the jboss-user mailing list