`

应用程序用tomcat部署,长时间应用程序没有被调用,访问MySQL报错

 
阅读更多

应用程序用tomcat部署,每过一段时间,比方说有一个晚上应用程序没有被调用,然后一旦程序访问MySQL数据库,就会抛出异常:
java.sql.SQLException: Connection.close() has already been called. Invalid operation in this state

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Connection.close() has already been

网上找了很多解决方案均无效,后来改用c3p0链接池,马上解决问题!

一下是c3p0 在spring中的配置:

<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://172.16.3.79:3306/test?useUnicode=true&amp;characterEncoding=UTF-8</value></property>
<property name="user"><value>root</value></property>
<property name="password"><value>root</value></property>
<property name="minPoolSize"><value>100</value></property>
<property name="maxPoolSize"><value>400</value></property>
<property name="maxIdleTime"><value>28000</value></property>
<property name="acquireIncrement"><value>5</value></property>
<property name="maxStatements"><value>0</value></property>
<property name="initialPoolSize"><value>2</value></property>
<property name="idleConnectionTestPeriod"><value>28000</value></property>
<property name="acquireRetryAttempts"><value>30</value></property>
<property name="breakAfterAcquireFailure"><value>true</value></property>
<property name="testConnectionOnCheckout"><value>false</value></property>
</bean>
以下是从关于以上配置的描述:

  1. <!--连接池中保留的最小连接数。-->
  2. <property name="minPoolSize">
  3. <value>5</value>
  4. </property>
  5. <!--连接池中保留的最大连接数。Default:15-->
  6. <property name="maxPoolSize">
  7. <value>30</value>
  8. </property>
  9. <!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default:3-->
  10. <property name="initialPoolSize">
  11. <value>10</value>
  12. </property>
  13. <!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default:0-->
  14. <property name="maxIdleTime">
  15. <value>60</value>
  16. </property>
  17. <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default:3-->
  18. <property name="acquireIncrement">
  19. <value>5</value>
  20. </property>
  21. <!--JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements
  22. 属于单个connection而不是整个连接池。所以设置这个参数需要考虑到多方面的因素。
  23. 如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default:0-->
  24. <property name="maxStatements">
  25. <value>0</value>
  26. </property>
  27. <!--每60秒检查所有连接池中的空闲连接。Default:0-->
  28. <property name="idleConnectionTestPeriod">
  29. <value>60</value>
  30. </property>
  31. <!--定义在从数据库获取新连接失败后重复尝试的次数。Default:30-->
  32. <property name="acquireRetryAttempts">
  33. <value>30</value>
  34. </property>
  35. <!--获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常。但是数据源仍有效
  36. 保留,并在下次调用getConnection()的时候继续尝试获取连接。如果设为true,那么在尝试
  37. 获取连接失败后该数据源将申明已断开并永久关闭。Default:false-->
  38. <property name="breakAfterAcquireFailure">
  39. <value>true</value>
  40. </property>
  41. <!--因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的
  42. 时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable
  43. 等方法来提升连接测试的性能。Default:false-->
  44. <property name="testConnectionOnCheckout">
  45. <value>false</value>
  46. </property>

顺便附上网上的一些此类解决方案地址:
http://zhidao.baidu.com/question/94614937.html
http://i5tt.javaeye.com/blog/380324

http://blog.csdn.net/hyqcano/archive/2006/06/15/799598.aspx

自己解决问题了,感觉还是不错的,还是记下来,以备忘记了……

分享到:
评论

相关推荐

    eclipse部署tomcat 报错

    "eclipse部署tomcat报错解决方案" 在Eclipse中部署Tomcat服务器时,可能会遇到各种问题。本文将讨论在Eclipse中部署Tomcat服务器时出现的问题和解决方案。 问题描述 在Eclipse中部署Tomcat服务器时,可能会出现...

    linux 版本的 tomcat 9.0.22和 tomcat 8.5.58 有的程序部署上去用9.0的会报错

    linux 版本的 tomcat 9.0.22和 tomcat 8.5.58 有的程序部署上去用9.0的会报错 比如调用钉钉 的发送接口 base64加密的 但是放到tomcat9.0会报错 8.5.58没问题linux 版本的 tomcat 9.0.22和 tomcat 8.5.58 有的程序...

    idea配置Tomcat部署web应用

    如果配置正确,应用程序将成功部署到Tomcat服务器上,并可以通过浏览器访问。 五、常见问题和解决方法 在配置Tomcat服务器和部署Web应用程序时,可能会遇到一些问题,例如Tomcat服务器无法启动、应用程序无法部署等...

    tomcat报错

    在部署和运行基于Java的应用程序时,Apache Tomcat作为一款广泛使用的轻量级Web服务器,有时会出现各种错误提示。本次讨论的是一个较为常见的问题:“tomcat报错,原因在于JDK没有安装好”。这个问题涉及到Tomcat的...

    部署到tomcat报错

    在IT行业中,部署Web应用程序到Apache Tomcat服务器是常见的任务,但这个过程有时会遇到问题。"部署到Tomcat报错"这个问题可能是由于多种原因引起的,包括但不限于配置错误、环境问题、版本不兼容等。以下将针对这个...

    linux下部署tomcat应用程序和基本优化原则

    Linux 下 Tomcat 应用程序的部署和基本优化原则 Tomcat 是一个基于 Java 的开源 Web 应用服务器,广泛应用于企业级 Web 应用程序中。部署 Tomcat 应用程序需要了解 Linux 环境和 Tomcat 的配置文件。下面将详细介绍...

    tomcat 部署java项目 jar

    标题中的“tomcat部署java项目jar”指的是在Apache Tomcat服务器上部署Java Web应用程序,通常以JAR(Java Archive)格式打包。Tomcat是一个开源的轻量级应用服务器,主要用于运行Servlet和JSP(JavaServer Pages)...

    Tomcat部署为每个应用分配不同端口

    如果没有提供Context描述器,Tomcat会使用默认配置来处理Web应用。 **Tomcat启动时的部署**,如果设置`deployOnStartup`为true,Tomcat会在启动时部署appBase目录下的所有应用。如果存在.WAR文件且比解压的目录新,...

    使用tomcat部署war文件

    使用Tomcat部署War文件可以快速地部署和管理Java Web应用程序。通过配置Tomcat服务器和部署War文件,可以快速地部署和管理Java Web应用程序。 知识点: * Tomcat安装和配置 * Tomcat服务器配置 * Tomcat用户管理 *...

    tomcat报错Service Temporarily Unavailable tomcat解决方式

    Tomcat 报错 Service Temporarily Unavailable 解决方式 Service Temporarily Unavailableerror 是 Tomcat 中常见的一种错误,通常是服务器维护或容量问题引起的。解决这个错误的方法通常是重启服务器,但是有时候...

    JavaWeb+Tomcat+mysql一键部署安装相关文件

    在IT行业中,JavaWeb开发是企业级应用的常见选择,结合Tomcat服务器和MySQL数据库,可以构建出稳定、高效的应用系统。本知识点将详细介绍如何进行JavaWeb+Tomcat+MySQL的一键部署安装。 首先,"JavaWeb+Tomcat+...

    linux+mysql+tomcat+xwiki部署文档

    Linux系统中部署XWiki协同工作平台,通常需要搭配JDK、Tomcat服务器以及MySQL数据库。以下详细介绍了这些软件的版本信息、下载地址以及在Linux环境下部署的步骤和配置方法。 **软件版本信息** 1. Linux操作系统...

    IIS+Tomcat项目部署

    IIS+Tomcat项目部署是将Web应用程序部署到IIS(Internet Information Services)服务器上,并使用Tomcat服务器作为应用程序容器的方式。这种部署方式可以充分发挥IIS的高性能和Tomcat的灵活性,满足复杂的Web应用...

    nginx+tomcat+mysql部署java服务应用详细步骤

    利用yum(黄狗)安装nginx,mysql,通过下载tomcat,jdk并安装。此处用mysql数据库(修改明文密码为复杂密码,不区分大小写设置)。设置tomcat,nginx相应的端口,路径等等。有需要即下载吧!

    tomcat 中连接Mysql的五种方法

    在 Java Web 开发中,Tomcat 服务器作为应用服务器被广泛使用,而 MySQL 数据库则是许多项目中首选的关系型数据库管理系统。为了实现 Tomcat 应用与 MySQL 数据库的有效交互,本文将详细介绍五种在 Tomcat 中连接 ...

    用Tomcat 和Eclipse开发Web 应用程序(部署发布)配置.docx

    本文主要讲解了如何使用 Tomcat 和 Eclipse 开发 Web 应用程序,包括如何创建一个新的 Web 项目、如何配置 Tomcat 服务器、如何将项目部署到 Tomcat 服务器上。 创建新的 Web 项目 首先,在 Eclipse 中创建一个新...

    jdk8 mysql tomcat8 一键部署.rar

    使用MySQL,开发者可以通过SQL语句进行数据的增删改查操作。 3. **Apache Tomcat**:Tomcat是Apache软件基金会的一个项目,是一个开源的Java Servlet容器,主要用于运行Java的Web应用程序。它支持Servlet和JSP标准...

    spring boot项目和vue一起放在tomcat部署

    这个过程需要我们对 Tomcat 服务器进行配置,以便能够正确地部署并运行我们的应用程序。 Spring Boot 项目和 Vue 的结合 在 moderne web 开发中,前端和后端的分离变得越来越普遍。Spring Boot 项目是一个基于 ...

    tomcat 部署web项目

    下面我们将总结 Tomcat 中部署 Java Web 应用程序的两种方式:静态部署和动态部署。 静态部署 静态部署指的是我们在服务器启动之前部署我们的程序,只有当服务器启动之后,我们的 Web 应用程序才能访问。这种方式...

Global site tag (gtag.js) - Google Analytics