ssh+连接池配置出现的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ssh+连接池配置出现的问题相关的知识,希望对你有一定的参考价值。
在tomcat中配置如下
<Context path="/MesManager" docBase="MesManager"
debug="5" reloadable="true" crossContext="true">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_mysqlTest_log." suffix=".txt"
timestamp="true"/>
<Resource name="jdbc/mes" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/mes">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>net.sourceforge.jtds.jdbc.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:jtds:sqlserver://localhost:1433</value>
</parameter>
</ResourceParams>
</Context>
在applicationContext.xml配置如下
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean" destroy-method="close" lazy-init="default" autowire="default" dependency-check="default">
<property name="jndiName">
<value>java:comp/env/jdbc/mes</value>
</property>
</bean>
可老是提示Cannot open connection 请问还需要配置哪里吗 ???
已经将连接所需要的驱动jar包 复制到tomcat下的 common下的lib中了
和数据库版本驱动没关系 不用连接池可以连接
你用的是不是sql2000,
如果是就进入查询分析器
输入Select @@Version
查看版本及补丁号
8.00.194--SQL Server 2000 RTM
8.00.384--(SP1)
8.00.534--(SP2)
8.00.760--(SP3)
8.00.2039--(SP4) 参考技术A 所噶
急求助:SSH+MySql的8小时问题。我也在网上找过资料,说配置了一个C3P0连接池就可以解决了,我也配置了。
帖出我的hibernate配置
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hbm2ddl.auto">update</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/**
</property>
<property name="connection.username">**</property>
<property name="connection.password">**</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
<property name="connection.autoReconnect">true</property>
<property name="connection.autoReconnectForPools">true</property>
<property name="connection.is-connection-validation-required">true</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.timeout">10</property>
<property name="hibernate.c3p0.max_statements">100</property>
<property name="hibernate.c3p0.idle_test_period">30</property>
<property name="hibernate.c3p0.acquire_increment">2</property>
<property name="hibernate.c3p0.validate">true</property>
<mapping resource="..." />
</session-factory>
</hibernate-configuration>
我测试的时候,把MySql的wait_timeout改成了60,可是60秒过后,还是会报:
Connection.close() has already been called. Invalid operation in this state.
这样的一个错误,请问下怎么才能解决?
我就是不想改MySql的配置,顺便问一句,为什么要把wait_timeout改得更小呢?默认好像是28800的吧
追答具体时间大小看不同场景需要,你把interactive_timeout参数也加上,设置同样的时间,
看是否可以解决
sorry,我程序没有用到connection.close(),都说了是SSH+MySql了,当然是用spring注入了。
以上是关于ssh+连接池配置出现的问题的主要内容,如果未能解决你的问题,请参考以下文章