JMX in spring 配置

JConsole中的连接:简单的localhost:1099 或 service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi

服务端配置

1. 可以在Java命令行里定义, 如:

-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false  -Dcom.sun.management.jmxremote.port=1099
 

在生产环境,最好再带上密码控制:

-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.password.file=conf\jmxremote.password -Dcom.sun.management.jmxremote.access.file=conf\jmxremote.access
 

 

jmxremote.password与jmxremote.access文件参见showcase/assembly/conf/production目录

         安全原因这两个文件要求只读,在windows下可用此命令设置  cacls jmxremote.password /P your_login_name:R

 

2. 在spring的ApplicationContext中定义

使用MBean方式见ServerConfigMBean与ServerConfig,定义符合XXXMBean接口与XXX实现命名规则的类即可。

        使用annotation方式见TraceMBean,Log4jMBean与QueueHolder:

 

@ManagedResource(objectName = "SpringSide:type=Log4jManagement,name=log4jManagement", description = "Log4j Management Bean")
public class Log4jMBean {	       @ManagedAttribute(description = "Logging level of the root logger")
	public String getRootLoggerLevel() {
		Logger root = Logger.getRootLogger();
		return root.getLevel().toString();
	}  	@ManagedOperation(description = "Set the new logging level to the logger")
	@ManagedOperationParameters( { @ManagedOperationParameter(name = "loggerName", description = "Logger name"),
			@ManagedOperationParameter(name = "newlevel", description = "New level") })
	public void setLoggerLevel(String loggerName, String newLevel) {
		Logger logger = Logger.getLogger(loggerName);
		Level level = Level.toLevel(newLevel);
		logger.setLevel(level);
	}

 

 

使用了Spring的自动导出  <context:mbean-export default-domain="Showcase" registration="replaceExisting" />,快速导出所有用annotation标注的MBean. 另外所有其中接口与实现的命名规则需符合默认的 XXXMBean(接口) 与 XXX(实现)的也被被默认导出.

        使用用annotation可以随意自定义MBean的命名空间,而使用MBean定义时则默认为到Custom, 如果需要改变,则需要在applicationContext.xml放弃快速的JMX namespace方式,改为较长的方式,在xml中定义object name.

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值