动态配置 JBOSS ( eap 6.2 ) 数据源
操作环境
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()); //启用该数据源,默认关闭 // 运行设置 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 ) 数据源的更多相关文章
- 配置jboss EAP 6.4 数据库连接超时时间
Environment Red Hat JBoss Enterprise Application Platform (EAP) 6.x 7.x Issue Server throws followin ...
- 使用mod_cluster进行apache httpd server和jboss eap 6.1集群配置
本文简单介绍,使用mod_cluster进行apache httpd server和jboss eap 6.1集群配置.本配置在windows上测试通过,linux下应该是一样的.可能要稍作调整.后面 ...
- 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版本 ...
- JBOSS EAP 6 系列三 Oracle、Mysql数据源的配置(驱动)—认识模块的使用
本文介绍JBOSS EAP 6.2中Oracle数据源的配置方式.结合之前JBOSS EAP 6.2新功能,本文初识JBOSS模块申明式容器这一特性. 模块申明式容器:JBOSS EAP不再有lib的 ...
- jboss eap 6.3 集群(cluster)配置
接上一篇继续,Domain模式解决了统一管理多台jboss的问题,今天我们来学习如何利用mod_cluster来实现负载均衡.容错. mod_cluster是jboss的一个开源集群模块(基于apac ...
- jboss eap 6.3 域(Domain)模式配置
jboss提供了二种运行模式:standalone(独立运行模式).domain(域模式),日常开发中,使用standalone模式足已:但生产部署时,一个app,往往是部署在jboss集群环境中的, ...
- Spring动态配置多数据源
Spring动态配置多数据源,即在大型应用中对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效提高系统的水平伸缩性.而这样的方案就会不同于常见的单一数据实例的方案,这就要程序在运行时根据当时 ...
- JBOSS EAP 6 系列六 公共模块的jar配置到jboss的modules详细配置
公司项目中遇到并要解决的问题 1:原则上除了自己写的代码之外,公共的jar不应该都在打包的时候打包到ear里面,这样的话包太大,也不符合的分层的逻辑,在jboss容器内部,每个ear的包重复jar都会 ...
- EJB通过注解方式注入并使用其他EJB或者服务、配置JBoss数据源
通过注解方式注入并使用其他EJB或者服务 真实项目EJB对象很多,EJB之间也可以互相调用, 在项目HelloWorld下新建接口Other在cn.hqu.ejb3下: public interfac ...
随机推荐
- url参数为数组
//url中state参数为数组 ?baseline_id=12&version_id=34&state[]=complete&state[]=hangup&state ...
- 实战篇之实现 OutLook 中以 EDM 形式发送通知邮件
1.写 Html5 的 EDM 模板 EDM 源代码示例: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ...
- Ubuntu下搭建repo服务器(二): 配置git-daemon-run
git-daemon-run实际是一个脚本管理工具,用来启动git-daemon. 1 安装git-daemon-run(A端) apt-get install git-daemon-run 2. 配 ...
- java中使用String的replace方法替换html模板保存文件
在我们的D盘下有这样一个html模板,现在我们要做的就是解析news.template文件,从数据库中提取数据将数据添加到指定的模板位置上 <head> <title>{tit ...
- 前端h5开发调试神奇vconsole
(1)项目中安装vconcole插件 npm install vconcole (2)在vue项目中main.js中引入插件 import Vconsole from 'vconsole'; cons ...
- fcc html5 css 练习1
font-size: 字号 利用link导入新字体再引用<link href="https://fonts.gdgdocs.org/css?family=Lobster" ...
- 使用XUL开发跨平台桌面应用
先上图: 现在使用html,css,js开发桌面的优势越来越明显了,硬件性能的不断提升,人力成本越发昂贵,用户对界面要求越来越高,全球化下企业间的竞争越发激烈. 桌面软件50%+的工作量都在界面开发这 ...
- fastjson——json工具库
fastjson alibaba fastjson是阿里巴巴公司开源维护的一个处理json格式数据的java工具库. 功能特性: 数据绑定databind (json string <--> ...
- TensorFlow:Windows下使用TensorFlow-Python版本
原文链接:Win10X64下安装使用TensorFlow 安装TensorFlow 由于Google那帮人已经把 TensorFlow 打成了一个 pip 安装包,所以现在可以用正常安装包的方式安装 ...
- Discuz! X3.1云平台QQ互联的Unknown column 'conuintoken' in 'field list' 解决办法
http://www.discuz.net/thread-3482497-1-1.html 由于程序安装默认数据表的结构和QQ互联数据表结构不同,安装Discuz! X3.1和升级Discuz! X3 ...