ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 10gas之data-source 配置

10gas之data-source 配置

原创 Linux操作系统 作者:wzy25 时间:2019-03-30 16:39:07 0 删除 编辑
本文主要介绍了10gasdata-source的一些配置情况,包括一些再生产系统中实施的建议。

本文主要介绍了10gasdata-source的一些配置情况,包括一些再生产系统中实施的建议。

通常我们的应用都会访问数据库,
对于基于j2ee的应用,j2ee制定了jdbc以及
jndi
来满足j2ee连接数据库的应用。
各个中间件得jdbc配置方式不太一样,
下面主要讲10gas中得data-source如何配置,程序如何访问数据库。



10gas
中得data-source主要有由三种
1.Emulated Data Sources
该方式通过程序模拟XAtwo-phase 提交,
性能比较好,主要用于jdbc driver不完全支持XA的情况下。在基于ias的应用中,通常就采用该种Data Source
2.Non-emulated Data Sources
该方式完全支持XAtwo-phase提交,如果你的应用用到两个不同的数据库,需要满足
two-phase commit
,就只能采用该Data Sources
3. Native Data Sources
这个主要用于ejb不需要存取数据库和不需要XA的情况下,在通常的应用中,是基本不可能的,所以这种方式用的比较少。

那么这三种data -source,对于你的应用,该如何选择呢?

如果你的ejb不需要使用数据库,那么选择Native Data Sources 这个是最快得。
如果你的应用需要访问数据库,但是后台只有一个数据库,不需要做 two-phase提交,那么选择
Emulated Data Sources
方式,这个也比较快,通常选用这种方式能够满足大部分的应用。

如果你的应用必须要支持XA two-phase提交,那么只能选择 Non-emulated Data Sources

根据我们在生产系统中对 Non-emulated Data SourcesEmulated Data Sources得使用表明,
使用 Emulated Data Sources 性能比较好,且不容易出现问题。但是如果程序有jdbc使用不规范的情况,会导致到数据库得connection 数目超过你设置的最大连接数的情况。其他都没有啥问题。

建议使用 Emulated Data Sources


下面就以Emulated Data Sources为例,说明如何配置 Data Sources

设置方式有两种
1.
通过em web页面进行设置
2.
通过手工编辑 data-sources.xml 文件进行配置


通过 web页面设置比较简单 ,主要步骤如下
进入em页面,选择需要配置data-sourceoc4j 然后进入Administration 页面,
接着选择Data Sources ,然后选择Create即可。

在出现的Edit Data Source 页面中
需要填写如下 项目

General
部分
Name
这个设置 data-source得名字,可以随便取
JDBC URL
设置数据库得连接串,如下
jdbc:oracle:thin:@10.1.3.20:1521:tpl8
其中
10.1.3.20:1521:tpl8
分别对应数据库服务器得ip,监听端口和instance name.

Datasource Username and Password
部分
Username
Use Cleartext Password 对应数据库得用用户名和密码
JNDI Locations
部分
EJB Location
需要设置,将来成要通过这个名字访问数据库,其他的缺省即可。

Connection Attributes
Connection Retry Interval (seconds)
设置 如果第一次连接数据库不成功,过多长时间再次尝试连接。 缺省即可。
Max Connection Attempts
设置如果连接不成功,最多尝试几次连接。缺省即可。
Cached Connection Inactivity Timeout (seconds)
设置多长时间如果jdbc connection不活动,就关闭的时间 。缺省即可。
Maximum Open Connections
设置最大连接数,通常和oc4jthread数目一样,25即可。
Minimum Open Connections
设置需要保留的最小连接数,再生产环境中,设置成和 Maximum Open Connections 一样。
Wait For Free Connection Timeout (seconds)
设置如果当前没有可用的connection,而且已经达到 Maximum Open Connections 数目的情况下,需要等待多长时间来等待其他线程释放 connection 而活到可用的 Connections。缺省即可。

通过 手工编辑的方式,主要是修改
j2ee/home/config/data-sources.xml
文件

添加一个data-source如下


name="TxLife"
location="jdbc/OracleCoreDS"
xa-location="jdbc/xa/OracleXADS"
ejb-location="test"
connection-driver="oracle.jdbc.driver.OracleDriver"
username="taipinglife2iastest"
password="ftp123"
url="jdbc:oracle:thin:@10.1.3.20:1521:tpl8"
inactivity-timeout="5"
min-connections="15"
max-connections="15"
max-connect-attempts="5"
wait-timeout="120"/>

各个选项设置的值可以很容易的在em配置页面中找到对应的项


由于是手工修改,需要
执行

dcmctl updateconfig
命令通知dcm-daemon配置文件已经修改。

然后在重新启动 oc4j

opmnctl restartproc process-type=home
即可。

通过如下代码段存取数据库

javax.naming.InitialContext ic=new javax.naming.InitialContext(); //
初始化jndi
javax.sql.DataSource ds=(javax.sql.DataSource)ic.lookup("test"); //test
对应 ejb-location
java.sql.Connection con=ds.getConnection(); //
获得连接
java.sql.Statement st=con.createStatement(); //
创建statement
java.sql.ResultSet rs=st.executeQuery("select * from test_wzy"); //
执行查询操作
while(rs.next()) //
循环所有纪录
out.println(rs.getString("id")); //
打印纪录
rs.close(); //
关闭结果集
st.close(); //
关闭statement
con.close(); //
关闭连接


以上的三个关闭动作,一定要做,不然再ias中会出现不会自动关闭,cursor超过最大open cursor的情况,会报错。在weblogic中不存在该问题,即使你没有关闭,weblogic也会自动帮你关闭。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/3618/viewspace-485516/,如需转载,请注明出处,否则将追究法律责任。

下一篇: as 10g 之性能优化
请登录后发表评论 登录
全部评论

注册时间:2001-12-14

  • 博文量
    1011
  • 访问量
    763004