知识大全 使用jmx对weblogic进行动态的配置(源代码)

Posted

篇首语:智者不为愚者谋,勇者不为怯者死。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用jmx对weblogic进行动态的配置(源代码)相关的知识,希望对你有一定的参考价值。

  对weblogic进行配置一般是通过console控制台来进行配置的 但有的时候 需要自己在程序中需要进行动态的配置 比如增加队列 显示队列 或者配置数据源 改写写config xml 是可以达到动态配置的效果的 但bea不推荐这样做 而且这样做需要重新启动服务器   怎么样既动态的配置 又不重新启动服务器呢?    笔者查询了weblogic的网站 了解到有两种方法动态的配置( )可以使用weblogic Admin命令(文档地址 ) ( )使用weblogic是用jmx编程来进行管理 通过jmx来对weblogic中的组件进行动态的配置 jmx的文档地址 如果使用这种方法 要将weblogic jar配置到CLASSPATH环境变量中(因为weblogic的jmx类是放在weblogic jar中的)    本人写了一份代码 对Queue进行管理 包括JMSQueue的增加 删除 和显示 我的config xml文件如下   <JMSServer Name= MessageCenterServer Store= MyJmsSave   Targets= myserver TemporaryTemplate= MyJMSTemplate >  <JMSQueue CreationTime= JNDIName= CenterQueue   Name= CenterQueue Template= MyJMSTemplate />  <JMSQueue CreationTime= JNDIName= que   Name= que Template= MyJMSTemplate />  <JMSQueue CreationTime= JNDIName= que   Name= que Template= MyJMSTemplate />  <JMSQueue CreationTime= JNDIName= queue Name= queue />  </JMSServer>    代码如下   package messagecenter;    /**  * <p>Title: 消息中心</p>  * <p>Description: 对消息队列进行维护</p>  * @author 张荣斌  * @version   */  import java util *;  import java util regex Pattern;  import javax naming Context;  import weblogic jndi Environment;  import weblogic management MBeanHome;  import weblogic management runtime ServletRuntimeMBean;  import weblogic management runtime ApplicationRuntimeMBean;  import weblogic management runtime WebAppComponentRuntimeMBean;  import weblogic management runtime ComponentRuntimeMBean;  import weblogic jms extensions *;  import weblogic management RemoteMBeanServer;  import javax management ObjectName;  import javax management QueryExp;    public class JMSQueueMaintain   public static final String WEBLOGIC_URL = t ://localhost: ;  public static final String WEBLOGIC_USER= system ;  public static final String WEBLOGIC_PASSWORD = ;  public static final String WEBLOGIC_JMSSERVER = MessageCenterServer ; //JMS服务器的名字 可以看到我的config xml<JMSServer    Name= MessageCenterServer Store= MyJmsSave 这一行    public JMSQueueMaintain()     /**  * 得到initial context  */  private static Context getCtx(String url String username String password) throws Exception  Environment env = new Environment();  env setProviderUrl(url);  env setSecurityPrincipal(username);  env setSecurityCredentials(password);  return env getInitialContext();    /**  * 得到the Admin MBean Home  */  private static MBeanHome getMBeanHome(String url String username String password) throws Exception    return (MBeanHome) getCtx(url username password) lookup(MBeanHome ADMIN_JNDI_NAME);    /**  * 增加队列  */  public static void addQueue(String queuename) throws Exception  Context ctx = getCtx(WEBLOGIC_URL WEBLOGIC_USER WEBLOGIC_PASSWORD);  JMSHelper createPermanentQueueAsync(ctx WEBLOGIC_JMSSERVER queuename queuename);    /**  * 删除队列  */  public static void deleteQueue(String queuename) throws Exception  Context ctx = getCtx(WEBLOGIC_URL WEBLOGIC_USER WEBLOGIC_PASSWORD);  JMSHelper deletePermanentQueue(ctx WEBLOGIC_JMSSERVER queuename);    /**  * 得到所有的队列名  */  public static Vector getQueuenames() throws Exception  Vector vect = new Vector();    MBeanHome home = getMBeanHome(WEBLOGIC_URL WEBLOGIC_USER WEBLOGIC_PASSWORD);  RemoteMBeanServer homeServer = null;  QueryExp query = null;  homeServer = home getMBeanServer();  Set JMSMBeans = homeServer queryNames(new ObjectName( mydomain:JMSServer= +WEBLOGIC_JMSSERVER+ Type=JMSQueue * )     query);  //where query could be any object that implements the JMX  //javax managementQueryExp  for (Iterator itr = erator(); itr hasNext(); )   ObjectName mbean = (ObjectName)itr next();  if(!mbean getKeyProperty( Name ) equals( CenterQueue ))  vect addElement(mbean getKeyProperty( Name ));        return vect;      public static void main(String[] args)   JMSQueueMaintain JMSQueueMaintain = new JMSQueueMaintain();  try  System out println(JMSQueueMaintain getQueuenames());  JMSQueueMaintain addQueue( queue );  JMSQueueMaintain deleteQueue( queue );  System out println(JMSQueueMaintain getQueuenames());  catch(Exception e)           cha138/Article/program/Java/ky/201311/28614

相关参考

知识大全 关于oracle集群后的weblogic数据源配置

  有两个db做了RAC虚拟路径为ypdbweblogic的数据源连接URL改为下面  当其中一台db挂了保证数据源连接正常  jdbc:oracle:thin:@  (DESCRIPTION=  (

知识大全 jquery实现输入框动态增减的实例代码

主要功能是动态增减输入框而且支持对各个输入框的检测每个输入框在输入内容后对其进行错误提示   通过字符串拼接将所有的输入框中的内容用“##”这样的格式拼接网页端代码复制代码代码如下:<

知识大全 Spring 与 Log4J 进行动态日志配置切换

Spring与Log4J进行动态日志配置切换  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  引言

知识大全 动态代码的使用(反射和动态生成类)

  在软件开发尤其是框架和底层开发时为了更灵活的控制代码常常需要进行一些动态的操作比如根据用户的输入等动态的调用类中的方法或者根据数据库表结构用户要求动态的生成一些类然后再动态的调用类中的方法当然使用

知识大全 Junt4 动态代码测试

Junt4动态代码测试  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Junt动态代码测试&nb

知识大全 gridpanel动态加载数据的实例代码

这篇文章介绍了gridpanel动态加载数据的实例代码有需要的朋友可以参考一下 复制代码代码如下:cha138/Article/program/Java/JSP/201311/20

知识大全 JDBC连接RAC的配置源代码剖析

JDBC连接RAC的配置源代码剖析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  <JDB

知识大全 动态执行C#代码

动态执行C#代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  写这篇笔记的理由是因为上篇g提高

知识大全 jquery动态增加text元素以及删除文本内容实例代码

  这段代码是通过jquery动态增加限定数额的text(本例为个)以及清除文本内容用到了after()方法追加元素<!以下为script代码开始>复制代码代码如下:<script&

知识大全 JQuery写动态树示例代码

JQuery写动态树示例代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本文为大家介绍下使用JQ