操作环境



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. 记一次MySQL索引优化

    两张表是主(CHECK_DRAWINGS)从(CHECK_DRAWINGS_IMG)关系. CHECK_DRAWINGS,主表数据 3591条. SELECT COUNT(*) FROM CHECK_ ...

  2. 【Codeforces866E_CF866E】Hex Dyslexia(Structure & DP)

    It's my first time to write a blog in EnglishChinglish, so it may be full of mistakes in grammar. Pr ...

  3. Data URI scheme:data:image/jpeg;

    今天在用一个croppic的jQuery裁剪图片的插件的时候,发现在后台获取图片时,无法通过Request.File获取了,但是通过Request.Form[]可以.用firebug跟了一下发现,图片 ...

  4. Linq学习(五)-多表连接

    本将主要介绍 内连接与 外连接 1.join Linq to sql from a in Blog_Users join b in Blog_UserInfo on a.UserId equals b ...

  5. SVN系列学习(四)-TortoiseSVN其他操作

    1.新建分支 第一步:从SVN上CheckOut一份,要作为分支模板的文件 第二步:右击[TortoiseSVN]-选择[Branch/tag] 备注说明,[指明分支路径] 第三步:删除电脑上的ZJH ...

  6. Ch03 React/JSX/Component 簡介

    Facebook 本身有提供 Test Utilities,但由于不够好用,所以目前主流开发社群比较倾向使用 Airbnb 团队开发的 enzyme,其可以与市面上常见的测试工具(Mocha.Karm ...

  7. Android 基础知识图谱

    四大组件 Activity Service BroadcastReceiver ContentProvider Application 常用组件 Fragment RecyclerView WebVi ...

  8. JS高级——Function

    Function构造函数 可以用来新建函数对象 1.一个参数都不传的情况创建的就是一个空的函数 2.只传一个参数的情况这个参数就是函数体 3.传多个参数的情况,最后一个参数为函数体,前面的参数都是该函 ...

  9. html——细线表格

    细线: 1.table表格设置背景色 2.table中设置单元格距离 3.tr标签设置另外一种背景色 <!DOCTYPE html> <html> <head lang= ...

  10. [Windows Server 2012] IIS自带FTP配置方法

    ★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:IIS自带FT ...