Notifications in MBean
mayankmit2002 Jan 13, 2009 4:30 AMHi 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...