tomcat tomee 配置 数据源 (含 XA 数据源)

来源:互联网 发布:传奇数据库增加新的怪 编辑:程序博客网 时间:2024/06/16 00:36

1.普通数据源(javax.sql.DataSource)

在 context.xml 中,添加如下内容即可完成数据源创建:

<Resource       name="ctx_not_xa"factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"       type="javax.sql.DataSource"       username="user"       password="pwd"       driverClassName="oracle.jdbc.driver.OracleDriver"       url="jdbc:oracle:thin:@168.1.50.20:1521:orcl"    />

注意,上述配置内容也可以添加到 server.xml 里面(在<GlobalNamingResources>节点下添加即可),如果是添加在 server.xml,则需要在 context.xml 中添加中转连接 <ResouceLink> 标签,此处省略,最后在应用中通过 jndi 服务使用配置的数据源:

Context ctx = new InitialContext();Context envCtx = (Context) ctx.lookup("java:comp/env");Object lookupDB = envCtx.lookup("ctx_not_xa");DataSource ds = (DataSource) lookupDB;Connection connection = ds.getConnection();

2.XA数据源(javax.sql.XADataSource)

在 context.xml 中,添加如下内容即可完成 XA 数据源创建:

<Resource        name="ctx_xa"factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"       type="javax.sql.XADataSource"       username="user"       password="pwd"       dataSourceJNDI="real_XA_ds"    /><Resource        name="real_XA_ds"factory="org.apache.tomcat.jdbc.naming.GenericNamingResourcesFactory"       type="oracle.jdbc.xa.client.OracleXADataSource"       URL="jdbc:oracle:thin:@168.1.50.20:1521:orcl"    />

注意,上述 ctx_xa 资源,引用了 real_XA_ds 资源,注意此处使用的是 相对路径!!!
另外注意:此处 real_XA_ds 资源的 “URL”是大写的,因为我配置的oracle数据源的“oracle.jdbc.xa.client.OracleXADataSource”实现类要求的,所以这里的“URL”是与具体的数据库实现相关的,如果使用了不同的数据,这里的配置可能是不同的,请务必注意!!!

注意,上述配置内容也可以添加到 server.xml 里面(在<GlobalNamingResources>节点下添加即可),如果是添加在 server.xml,则需要在 context.xml 中添加中转连接 <ResouceLink> 标签,此处省略,最后在应用中通过jndi服务使用配置的数据源:

Context ctx = new InitialContext();Context envCtx = (Context) ctx.lookup("java:comp/env");Object lookupXADB = envCtx.lookup("ctx_xa");XADataSource xa_ds = (XADataSource) lookupXADB;XAConnection xaConnection = xa_ds.getXAConnection();System.out.println(xaConnection);Connection conn = xaConnection.getConnection();

结束!

原创粉丝点击