您的位置:首页 > 大数据 > 人工智能

S2Container框架学习笔记之四

2011-10-27 12:40 337 查看
1. S2Container连接池的配置——S2DBCP

在S2container框架里,数据库和连接池的配置在JDBC.dicon里。

配置的例子如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
"http://www.seasar.org/dtd/components24.dtd">
<components namespace="jdbc">
<include path="jta.dicon"/>
<include path="jdbc-extension.dicon"/>

<component class="org.seasar.extension.jdbc.impl.BasicResultSetFactory"/>
<component class="org.seasar.extension.jdbc.impl.ConfigurableStatementFactory">
<arg>
<component class="org.seasar.extension.jdbc.impl.BasicStatementFactory"/>
</arg>
<property name="fetchSize">100</property>
<!--
<property name="maxRows">100</property>
-->
</component>

<component name="xaDataSource"
class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
<property name="driverClassName">
"oracle.jdbc.driver.OracleDriver"
</property>
<property name="URL">
"jdbc:oracle:thin:@xxx:1521:yyy"
</property>
<property name="user">"aaa"</property>
<property name="password">"bbb"</property>
</component>
<component name="connectionPool"
class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
<property name="timeout">600</property>
<property name="maxPoolSize">10</property>
<property name="allowLocalTx">true</property>
<property name="validationQuery">"select * from dual"</property>
<property name="validationInterval">10000</property>
<destroyMethod name="close"/>
</component>
<component name="dataSource"
class="org.seasar.extension.dbcp.impl.DataSourceImpl"/>
</components>
一些配置项的说明如下:

属性说明
driverClassName
JDBC Driver类名
"oracle.jdbc.driver.OracleDriver"
URL
RDBMS的URL
"jdbc:oracle:thin:@xxx:1521:yyy"
user
用户名
"hoge"
password
密码
"password"
loginTimeout
连接timeout(单位:秒)
2



属性说明
XADataSource
XADataSource的实例。
xaDataSource
transactionManager
TransactionManager的实例。
TransactionManager
timeout
连接池里的链接指定的timeout时间未使用的话,则自动关闭(单位:秒)。默认600。
600
maxPoolSize
连接池的最大连接数,超过这个数的请求怎等待被使用的连接返回。设为0的话,不限。默认是10。
10
minPoolSize
连接池最小保持连接数默认是0。
10
maxWait
连接池没有连接时的最大等待时间
(単位:毫妙) 。超过这个时间就抛出
SQLException
。 设为0的话就是不等待,直接抛出SQLException。设为-1的话是无限制等待知道获得连接对象。
-1
allowLocalTx
是否允许不设JTA限制,JDBC本地事务。设为false的话,如果不是在JTA开始后获取连接对象,则抛出java.lang.IllegalStateException。开发的时候设为false,能检查是否漏设S2Tx。默认是true。
true
validationQuery
检查连接是否活的。
null
或者空字符的话,不检查。默认是
null
"select * from dual"
validationInterval
检查连接死活的时间间隔(单位:毫妙) 0以下的话不检查。默认是0。
10000
也可以使用Web服务器里定义的DataSource。例:

<component name="xaDataSource"
class="javax.sql.XADataSource">
@org.seasar.extension.j2ee.JndiResourceLocator@lookup("JNDI名")
</component>




<component name="xaDataSource"
class="org.seasar.extension.dbcp.impl.DataSourceXADataSource">
<property name="dataSourceName">"JNDI名"</property>
</component>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: