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

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();

结束!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值