S2Container框架学习笔记之四

来源:互联网 发布:linux 一键安装 编辑:程序博客网 时间:2024/06/05 15:10

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>
一些配置项的说明如下:

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


属性说明例XADataSourceXADataSource的实例。xaDataSourcetransactionManagerTransactionManager的实例。TransactionManagertimeout连接池里的链接指定的timeout时间未使用的话,则自动关闭(单位:秒)。默认600。600maxPoolSize连接池的最大连接数,超过这个数的请求怎等待被使用的连接返回。设为0的话,不限。默认是10。10minPoolSize连接池最小保持连接数默认是0。10maxWait连接池没有连接时的最大等待时间(単位:毫妙) 。超过这个时间就抛出SQLException。 设为0的话就是不等待,直接抛出SQLException。设为-1的话是无限制等待知道获得连接对象。-1allowLocalTx是否允许不设JTA限制,JDBC本地事务。设为false的话,如果不是在JTA开始后获取连接对象,则抛出java.lang.IllegalStateException。开发的时候设为false,能检查是否漏设S2Tx。默认是true。truevalidationQuery检查连接是否活的。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>