有使用过JMX实时修改wblogic连接池密码的么?
系统使用jndi通过weblogic81连接池访问数据库。
===========
碰到的问题
===========
由于安全原因,数据库密码会定期修改,这样导致weblogic服务重新启动后无法连接到数据库。
由于部署了weblogic的机器众多,不希望一台台连上去通过console修改密码,而是通过部署在weblogic中的
一个jar包自动获得正确的密码,然后更新weblogic的config.xml文件,同时刷新连接池,使其能够正常工作。
=====
现状
=====
已经能够使用JMX修改连接池密码了(见modifyAdmin方法),但连接池仍无法正常使用。请高手指教,帮顶有分:
===========
碰到的问题
===========
由于安全原因,数据库密码会定期修改,这样导致weblogic服务重新启动后无法连接到数据库。
由于部署了weblogic的机器众多,不希望一台台连上去通过console修改密码,而是通过部署在weblogic中的
一个jar包自动获得正确的密码,然后更新weblogic的config.xml文件,同时刷新连接池,使其能够正常工作。
=====
现状
=====
已经能够使用JMX修改连接池密码了(见modifyAdmin方法),但连接池仍无法正常使用。请高手指教,帮顶有分:
package weblogic;
import java.util.Properties;
import javax.management.InstanceNotFoundException;
import javax.management.InvalidAttributeValueException;
import javax.naming.Context;
import javax.naming.NamingException;
import weblogic.jndi.Environment;
import weblogic.management.MBeanHome;
import weblogic.management.configuration.JDBCConnectionPoolMBean;
/**
* 测试调用weblogic api直接修改config.xml
*
*
*/
public class ConfigOperator {
/**
* @param args
*/
public static void main(String[] args) {
//modifyAdmin("user", "pass");
modifyConfig("user", "pass");
System.out.println("test finished");
}
public static void modifyConfig(String userName, String password) {
try {
String poolName = "MyJDBC Connection Pool";
MBeanHome home = getMBeanHome();
JDBCConnectionPoolMBean mConfigBean = (JDBCConnectionPoolMBean) home
.getConfigurationMBean(poolName, "JDBCConnectionPoolConfig");
Properties nameProperty = new Properties();
nameProperty.setProperty("name", userName);
mConfigBean.setProperties(nameProperty);
mConfigBean.setPassword(password);
System.out.println(mConfigBean.getPassword());
//mConfigBean.setDriverName("helloworld1");
} catch (InvalidAttributeValueException iave) {
System.out.println("Invalid attribute while configuring tracing "
+ iave);
} catch (InstanceNotFoundException infe) {
System.out.println("Instance not found while configuring tracing "
+ infe);
} catch (Exception e) {
System.out.println(e);
}
}
public static void modifyAdmin(String userName, String password) {
try {
String poolName = "MyJDBC Connection Pool";
MBeanHome home = getMBeanHome();
JDBCConnectionPoolMBean mConfigBean = (JDBCConnectionPoolMBean) home
.getAdminMBean(poolName, "JDBCConnectionPool");
Properties nameProperty = new Properties();
nameProperty.setProperty("name", userName);
mConfigBean.setProperties(nameProperty);
mConfigBean.setPassword(password);
//mConfigBean.setDriverName("helloworld1");
} catch (InvalidAttributeValueException iave) {
System.out.println("Invalid attribute while configuring tracing "
+ iave);
} catch (InstanceNotFoundException infe) {
System.out.println("Instance not found while configuring tracing "
+ infe);
} catch (Exception e) {
System.out.println(e);
}
}
private static MBeanHome getMBeanHome() {
String url = "t3://localhost:7001";
String username = "weblogic";
String password = "weblogic";
MBeanHome home = null;
try {
Environment env = new Environment();
env.setProviderUrl(url);
env.setSecurityPrincipal(username);
env.setSecurityCredentials(password);
Context ctx = env.getInitialContext();
home = (MBeanHome) ctx.lookup(MBeanHome.LOCAL_JNDI_NAME);
} catch (NamingException ne) {
System.out.println("Error getting MBeanHome " + ne);
}
return home;
}
}
...全文
相关推荐
JMX配置与使用
1. 服务器端配置:(如果是本地监控,直接启动再选本地进程) 2. 主机名配置 3. 客户端配置
JBOSS4设置控制台jmx-console登录密码
JBOSS4设置控制台jmx-console登录密码
TongWeb7的JMX监控.doc
TongWeb常见问题处理,用于运维的问题处理,便于解决应用部署时遇到的各种问题...
谷歌浏览器使用blazemeter插件录制jmx脚本
使用谷歌浏览器插件blazemeter录制jmx脚本,包含blazemeter插件下载地址信息,以及安装、录制相关操作
jmx监控activeMQ监控
activeMQ开启jmx固定rmi端口,穿透防火墙,用了一天的时间,踩了无数的坑,拿出来共享.


Java SE
