`
litxuf
  • 浏览: 119522 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

tomcat 连接池配置整理 (JNDI C3P0)

 
阅读更多

   简单的归纳整理一下各种几种连接池的配置方式 以便查询

 

  系统配置:spring2 , tomcat6 ,hibernate3,mysql

  spring的版本比较低 各位看官不要笑话哦。

1.普通的JDBC连接方式

<bean id="dataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<property name="driverClassName">
			<value>com.mysql.jdbc.Driver</value>
		</property>
		<property name="url">
			<value>
	       jdbc:mysql://localhost:3306/demo?useUnicode=true&amp;characterEncoding=UTF-8
			</value>
		</property>
		<property name="username">
			<value>root</value>
		</property>
		<property name="password">
			<value>000000</value>
		</property>
	</bean>

 

以上配置在JMeter 10个并发测试的时候 不用2分钟系统就挂掉了 此配置只建议开发使用 不要用在生成环境

 

2.JNDI

    2.1.修改tomcat conf/context.xml 或sever.xml 具体使用方式各有区别请在咨询百度或谷歌

    

<Resource
 name="jdbc/TEST_Data"
 auth="Container" type="javax.sql.DataSource"
 maxActive="100" 
 maxIdle="30" 
 maxWait="10000"
 username="root" 
 password="000000"
 driverClassName="com.mysql.jdbc.Driver"
 url="jdbc:mysql://localhost:3306/demo?useUnicode=true&amp;characterEncoding=UTF-8" />

 2.2.修改web.xml

    

         <!-- datasource -->
	<resource-ref>
		<description>TEST</description>
		<res-ref-name>jdbc/TEST_Data</res-ref-name>
		<res-type>javax.sql.DataSource</res-type>
		<res-auth>Container</res-auth>
	</resource-ref>

 2.3 修改spring配置文件

    

        <bean id="dataSource"  class="org.springframework.jndi.JndiObjectFactoryBean">
		<property name="jndiName">
			<value>java:comp/env/TEST_Data</value>
		</property>
	</bean>

 

 使用此配置方式请务必将mysql的驱动放在tomcat/lib下面 不然启动会报错

 

3.c3po配置方式 (来自其他博客 http://hi.baidu.com/liuzhe041/item/52e7a10d1bb501e9f45ba6c1)

 

  

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
		destroy-method="close">
		<property name="driverClass">
			<value>com.mysql.jdbc.Driver</value>
		</property>
		<property name="jdbcUrl">
			<value>jdbc:mysql://localhost:3306/demo?useUnicode=true&amp;characterEncoding=UTF-8
			</value>
		</property>
		<property name="user">
			<value>root</value>
		</property>
		<property name="password">
			<value>000000</value>
		</property>

		<!--连接池中保留的最小连接数。 -->
		<property name="minPoolSize">
			<value>5</value>
		</property>

		<!--连接池中保留的最大连接数。Default: 15 -->
		<property name="maxPoolSize">
			<value>30</value>
		</property>

		<!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
		<property name="initialPoolSize">
			<value>10</value>
		</property>

		<!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
		<property name="maxIdleTime">
			<value>60</value>
		</property>

		<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
		<property name="acquireIncrement">
			<value>5</value>
		</property>

		<!--JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements 属于单个connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。 
			如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0 -->
		<property name="maxStatements">
			<value>0</value>
		</property>

		<!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
		<property name="idleConnectionTestPeriod">
			<value>60</value>
		</property>

		<!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 -->
		<property name="acquireRetryAttempts">
			<value>30</value>
		</property>

		<!--获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效 保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试 
			获取连接失败后该数据源将申明已断开并永久关闭。Default: false -->
		<property name="breakAfterAcquireFailure">
			<value>true</value>
		</property>

		<!--因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的 时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable 
			等方法来提升连接测试的性能。Default: false -->
		<property name="testConnectionOnCheckout">
			<value>false</value>
		</property>
	</bean>

 

  以上三种方式都经过本次测试 可以正常使用 请各位看官自行调优。  其他方式持续更新中

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics