操作环境



windows + jboss eap 6.2 + MyEclipse 10.0

项目用的是jboss eap 6.2,作为Red公司升级后的eap稳定版。

相比之前的 AS 系列,不管是安全性和集群的稳定性,加上天然的出厂配置上都好了非常多。

对于开发人员来讲。省去了非常多工作。

配置远程接口


<interface name="management">

<inet-address value="${jboss.bind.address.management:127.0.0.1}"/>

</interface>

<socket-binding name="management-native" interface="management" port="${jboss.management.native.port:9999}"/>

在jboss企业版的jboss-eap-6.2\standalone\configuration的文件夹中standalone.xml 用于配置NativeManagement Client接口配置文件。默认如上。也能够自己定义配置,

例如以下**系统配置。

<interface name="management">

<inet-address value="${jboss.bind.address.management:192.168.24.125}"/>

</interface>

<socket-binding name="management-native" interface="management" port="${jboss.management.native.port:9999}"/>

注入数据




DataSourceEntity dsEntity = new DataSourceEntity();

// 连接字符串

dsEntity.setConnURL("java:jboss/datasources/KsMysqlDS");

// 数据源名称

dsEntity.setDsName("KSDScfltest");

dsEntity.setDriver("mysql");

dsEntity.setEnabled(true);

dsEntity.setJdniName("java:jboss/datasources/" + dsEntity.getDsName());

dsEntity.setMaxPoolSize(20);

dsEntity.setMinPoolSize(5);

dsEntity.setUseJTA(true);

dsEntity.setUsername("root");

dsEntity.setPassword("root");

dsEntity.setTimeout(3600);

try {

createDateSource(dsEntity);

} catch (Exception e) {

System.out.println(e.toString());

}

public class DataSourceEntity {

/*

* DATASOURCES.Attribute 属性设置

*/

//数据源名称

private String dsName;

//jndi名称

private String jdniName;

//是否启用

private boolean isEnabled;

//驱动名称。如:mysql\oracle

private String driver;

/*

* DATASOURCES.Conection 连接设置

*/

//连接字符串

private String connURL;

//是否使用JTA

private boolean useJTA;

/*

* DATASOURCES.Security 安全设置

*/

//连接dsusername及password

private String username;

private String password;

/*

* DATASOURCES.Pool 连接池设置

*/

//最小最大连接池

private int minPoolSize;

private int maxPoolSize;

//空暇时间

private int timeout;

public int getTimeout() {

return timeout;

}

public void setTimeout(int timeout) {

this.timeout = timeout;

}

public DataSourceEntity(){

}

public DataSourceEntity(String dsName,String jdniName,boolean isEnabled,String connURL,boolean

useJTA,String username,String password,int minPoolSize,int maxPoolSize){

}

public String getDsName() {

return dsName;

}

public void setDsName(String dsName) {

this.dsName = dsName;

}

public String getJdniName() {

return jdniName;

}

public void setJdniName(String jdniName) {

this.jdniName = jdniName;

}

public boolean isEnabled() {

return isEnabled;

}

public void setEnabled(boolean isEnabled) {

this.isEnabled = isEnabled;

}

public String getDriver() {

return driver;

}

public void setDriver(String driver) {

this.driver = driver;

}

public String getConnURL() {

return connURL;

}

public void setConnURL(String connURL) {

this.connURL = connURL;

}

public boolean isUseJTA() {

return useJTA;

}

public void setUseJTA(boolean useJTA) {

this.useJTA = useJTA;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public int getMinPoolSize() {

return minPoolSize;

}

public void setMinPoolSize(int minPoolSize) {

this.minPoolSize = minPoolSize;

}

public int getMaxPoolSize() {

return maxPoolSize;

}

public void setMaxPoolSize(int maxPoolSize) {

this.maxPoolSize = maxPoolSize;

}

}

简单的pojo配置数据,这些从JBoss Mananager 能够看到一些默认的配置

动态加入



/**

*

* @Title: createDateSource

* @Description: TODO(动态加入数据源)

* @param @param dsEntity 设定文件 数据源实体

* @return void 返回类型 void

* @throws IOException

* @throws

* @author cfl

* @date 2015年3月13日

*/

public static void createDateSource(DataSourceEntity dsEntity) throws IOException {

//连接jboss进程的client

ModelControllerClient client =  ModelControllerClient.Factory

.create(InetAddress.getByName("127.0.0.1"), 9999);

//操作数据源节点

ModelNode op = new ModelNode();

try {

op.get("operation").set("add");

// 数据源名称

String dsname = dsEntity.getDsName();

// 在datasources以下加入数据源名称为dsname的子节点data-source

op.get("address").add("subsystem", "datasources").add("data-source", dsEntity.getDsName());

// 设置jndi查找名称

op.get("jndi-name").set(dsEntity.getJdniName() + dsEntity.getDsName());

// 设置数据源类

//op.get("datasource-class").set("com.mysql.jdbc.jdbc2.optional.MysqlXADataSource");

// 设置驱动名称

op.get("driver-name").set(dsEntity.getDriver());

op.get("use-java-context").set("true");

// 数据源连接池名称

op.get("pool-name").set(dsEntity.getDsName());

// 连接池timeout

op.get("Idle Timeout").set(dsEntity.getTimeout());

op.get("jta").set(true);

op.get("connection-url").set(dsEntity.getConnURL());

// 连接数据源名称

op.get("user-name").set(dsEntity.getUsername());

// 连接数据源password

op.get("password").set(dsEntity.getPassword());

// 连接池大小

op.get("max-pool-size").set(dsEntity.getMaxPoolSize());

op.get("min-pool-size").set(dsEntity.getMinPoolSize());

//启用该数据源,默认关闭

            op.get("enabled").set(true);

// 运行设置

ModelNode result = client.execute(op);

System.out.println("----------" + result.toString() + "---------");

} finally {

client.close();

}

}

 

 

效果图

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY2ZsMjAxMjEzMTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

实际上改变的是来自jboss的配置文件。standalone.xml 。查看standalone.xml内部可以看到在datasources的子节点中多出了一个子节点KSDScfltest。归根结低事实上我们操纵的还是xml文件。也可能是在dom4j上层的包装。

这里临时还没有看到jboss官方给出的源代码,所以临时也不可得知准确性。在datasources同级的节点上,另一个xa-datasources。

查阅了一些外文的资料。大体的意思就是说,对于datasource来讲。xa-datasource可以在不同数据源支持事务;而datasource不过单数据源事务可控。

*注 [1] API地址:  https://docs.jboss.org/author/display/AS71/The+native+management+API

动态配置 JBOSS ( eap 6.2 ) 数据源的更多相关文章

  1. 配置jboss EAP 6.4 数据库连接超时时间

    Environment Red Hat JBoss Enterprise Application Platform (EAP) 6.x 7.x Issue Server throws followin ...

  2. 使用mod_cluster进行apache httpd server和jboss eap 6.1集群配置

    本文简单介绍,使用mod_cluster进行apache httpd server和jboss eap 6.1集群配置.本配置在windows上测试通过,linux下应该是一样的.可能要稍作调整.后面 ...

  3. CAS (8) —— Mac下配置CAS到JBoss EAP 6.4(6.x)的Standalone模式(服务端)

    CAS (8) -- Mac下配置CAS到JBoss EAP 6.4(6.x)的Standalone模式(服务端) jboss版本: jboss-eap-6.4-CVE-2015-7501 jdk版本 ...

  4. JBOSS EAP 6 系列三 Oracle、Mysql数据源的配置(驱动)—认识模块的使用

    本文介绍JBOSS EAP 6.2中Oracle数据源的配置方式.结合之前JBOSS EAP 6.2新功能,本文初识JBOSS模块申明式容器这一特性. 模块申明式容器:JBOSS EAP不再有lib的 ...

  5. jboss eap 6.3 集群(cluster)配置

    接上一篇继续,Domain模式解决了统一管理多台jboss的问题,今天我们来学习如何利用mod_cluster来实现负载均衡.容错. mod_cluster是jboss的一个开源集群模块(基于apac ...

  6. jboss eap 6.3 域(Domain)模式配置

    jboss提供了二种运行模式:standalone(独立运行模式).domain(域模式),日常开发中,使用standalone模式足已:但生产部署时,一个app,往往是部署在jboss集群环境中的, ...

  7. Spring动态配置多数据源

    Spring动态配置多数据源,即在大型应用中对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效提高系统的水平伸缩性.而这样的方案就会不同于常见的单一数据实例的方案,这就要程序在运行时根据当时 ...

  8. JBOSS EAP 6 系列六 公共模块的jar配置到jboss的modules详细配置

    公司项目中遇到并要解决的问题 1:原则上除了自己写的代码之外,公共的jar不应该都在打包的时候打包到ear里面,这样的话包太大,也不符合的分层的逻辑,在jboss容器内部,每个ear的包重复jar都会 ...

  9. EJB通过注解方式注入并使用其他EJB或者服务、配置JBoss数据源

    通过注解方式注入并使用其他EJB或者服务 真实项目EJB对象很多,EJB之间也可以互相调用, 在项目HelloWorld下新建接口Other在cn.hqu.ejb3下: public interfac ...

随机推荐

  1. pip使用豆瓣镜像源

    pip使用豆瓣的镜像源 豆瓣镜像地址: https://pypi.douban.com/simple/ 虽然用easy_install和pip来安装第三方库很方便 他们的原理其实就是从Python的官 ...

  2. java.net.URISyntaxException: Illegal character in query

    java使用httpclient爬取一个网站的时候,请求:String url3="http://sh.58.com/ershoufang/33562546149042x.shtml?amp ...

  3. java DDD 基于maven开发的探讨

    对于DDD我目前的理解是 1.除了数据的基本操作,也可以把一些公用的方法或者类迁移到Infrastructrue 2.对于domain层可以声明各个聚合根的操作接口:例:IXXXRepository ...

  4. css3 绘制书本

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  5. 实现微信小程序的wxml文件和wxss文件在phpstrom的支持

    最近下载了微信小程序准备好好看看,但是发现微信小程序用的后缀名是不一样的,.wxml代表的就是平时用的.html,.wxss代码的就是平时用的.css.但是phpstorm无法识别,为了更方便的码代码 ...

  6. 定制UVM Messages(参考)

    UVM的Messages机制有些时候很繁琐,很多时候希望能够在UVM messages的基础上做一些个人化的订制,这里给出来一个找到的例子作为参考. my_macros.sv:    `define ...

  7. 太坑了,mybatis注解一对多,id没了

    @Select("SELECT *, id nodes FROM QUESTION_PO WHERE ID=#{id}") @Results({ @Result(property ...

  8. 零基础到精通Linux,从这篇文章开始

    2018年想做Linux运维的人应该如何学习才能快速精通Linux? Linux入门这么简单,为什么很多人学不会? 想要成为一个合格的运维工程师,到底怎么才能从零开始精通Linux? 作为一个运维小白 ...

  9. Opencv学习之路——自己编写的HOG算法

    #include<opencv2\core\core.hpp> #include<opencv2\highgui\highgui.hpp> #include<opencv ...

  10. Ubuntu 18.04 nvidia driver 390.48 安装 TensorFlow 1.12.0 和 PyTorch 1.0.0 详细教程

    最近要在个人台式机上搭建TensorFlow和PyTorch运行环境,期间遇到了一些问题.这里就把解决的过程记录下来,同时也可以作为安装上述环境的过程记录. 如果没有遇到类似的问题,想直接从零安装上述 ...