JMX (Java Management eXtension) integration.
Monitoring Your MINA Services and Sessions
Monitoring an IoService
acceptor = new SocketAcceptor();
try
{
IoServiceManager iosm = new IoServiceManager(acceptor);
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
ObjectName name = new ObjectName( "com.acme.test:type=IoServiceManager,name=MyMINAServer" );
mbs.registerMBean( iosm, name );
}
catch( JMException e )
{
logger.error( "JMX Exception: ", e );
}
Monitoring an IoSession
Each session is registered to MBean server individually.
acceptor.addListener( new IoServiceListener()
{
public void serviceActivated( IoService service, SocketAddress serviceAddress, IoHandler handler, IoServiceConfig config )
{
}
public void serviceDeactivated( IoService service, SocketAddress serviceAddress, IoHandler handler, IoServiceConfig config )
{
}
public void sessionCreated( IoSession session )
{
try
{
IoSessionManager sessMgr = new IoSessionManager( session );
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
ObjectName name = new ObjectName( "com.acme.test.session:type=IoSessionManager,name=" + session.getRemoteAddress().toString().replace( ':', '/' ) );
mbs.registerMBean( sessMgr, name );
}
catch( JMException e )
{
logger.error( "JMX Exception: ", e );
}
}
public void sessionDestroyed( IoSession session )
{
try
{
ObjectName name = new ObjectName( "com.acme.test.session:type=IoSessionManager,name=" + session.getRemoteAddress().toString().replace( ':', '/' ) );
ManagementFactory.getPlatformMBeanServer().unregisterMBean( name );
}
catch( JMException e )
{
logger.error( "JMX Exception: ", e );
}
}
});
|