() {
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进程的客户端
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());
// 连接数据源密码
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();
}
}
效果图

![\]()
![\]()
实际上改变的是来自jboss的配置文件,standalone.xml 。查看standalone.xml内部可以看到在datasources的子节点中多出了一个子节点KSDScfltest。归根结低其实我们操纵的还是xml文件,也可能是在dom4j上层的包装。这里暂时还没有看到jboss官方给出的源码,所以暂时也不可得知准确性。在datasources同级的节点上,还有一个xa-datasources。查阅了一些外文的资料。大体的意思就是说,对于datasource来讲,xa-datasource能够在不同数据源支持事务;而datasource仅仅是单数据源事务可控。