程序中采用的是Spring+IBatis,数据源配置如下:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
<property name="maxActive" value="100"/>
<property name="maxIdle" value="30"/>
<property name="maxWait" value="1000"/>
<property name="defaultAutoCommit" value="true"/>
</bean>
经过查找资料和分析,得出该问题主要是由于连接时间过长,失效所致,将以上配置修改如下:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
<property name="maxActive" value="100"/>
<property name="maxIdle" value="30"/>
<property name="maxWait" value="1000"/>
<property name="defaultAutoCommit" value="true"/>
<property name="validationQuery" value="select * from dual"/>
</bean>
修改后经过测试,程序运行正常
问题总结:
当数据库连接池中的连接被创建而长时间不使用的情况下,该连接会自动回收并失效,但客户端并不知道,在进行数据库操作时仍然使用的是无效的数据库连接,这样,就导致客户端程序报“ java.sql.SQLException: Io 异常: Connection reset by peer”或“java.sql.SQLException 关闭的连接”异常,加上<property name="validationQuery" value="select * from dual"/>
配置后,客户端在使用一个无效的连接时会先对该连接进行测试,如果发现该连接已经无效,则重新从连接池获取有效数据库连接来使用
此问转自:http://my.oschina.net/tianzimensheng/blog/65225
分享到:
相关推荐
SSI,全称是Shared State ...不过,需要注意的是,过度依赖SSI可能会导致性能问题,因为它需要服务器在每次请求时都进行解析。因此,应合理权衡使用场景,结合其他技术(如CGI、PHP、ASP等)共同构建高效的应用。
- 通过这种方式,可以在多个页面之间共享公共的代码或内容,如数据库连接配置、头部导航栏等,有助于提高代码的复用性和项目的可维护性。 #### 安全性问题 - 提供的信息中明确指出,当前的代码并未考虑安全性的问题...
通过这个规范,我们可以了解到服务器主板设计的基本要求,如何根据标准制造和安装服务器主板,以及在使用这些标准时需要注意的法律和知识产权问题。对于服务器制造商、IT专业人员和系统集成商来说,遵循这个规范是...
- 引入IBatis到项目中,配置数据库连接信息。 - 编写SQL语句并放在IBatis的映射文件中。 - 创建Java接口和实现类,使用IBatis注解或XML配置来绑定SQL语句。 - 在HTML页面中,使用SSI指令如`<!--#include virtual...
### SSI框架整合项目知识点详解 ...在整个过程中,需要注意的是保持代码的整洁性和可维护性,合理利用Maven依赖管理和Spring框架提供的强大功能。希望这份笔记能够为初学者提供一定的帮助和参考。
【SSI框架搭建流程详解】 在Java Web开发中,SSI...此外,配置文件中的细节如数据库连接信息、包路径等需要根据实际情况进行调整。通过这样的配置,我们可以构建一个具备MVC结构、依赖注入和持久化功能的Web应用程序。
9. **自动化和脚本化**:为了方便重复操作,可以将这些步骤封装成可执行的脚本或工具,通过命令行参数控制输入输出文件和数据库连接信息。 通过这个过程,我们可以利用SSI技术构建一个自定义的、灵活的数据导入导出...
基于SSI的框架整合开发Demo。该Demo是一个完整的MyEclipse...注意:该demo连接oracle数据库,所以需要相应用户及权限。如有必要可以直接修改%项目%/src/jdbc.properties。版本说明:Struts2.1-spring2.5-ibatis2.3。
在Eclipse中,你可以使用内置的数据库工具或者外部的数据库连接工具(如MySQL Workbench)来执行此脚本。 5. **测试**:`TestSSI`可能是测试类,用于验证整合后的系统是否能正常工作。测试可以使用JUnit,通过模拟...
在实际使用过程中,用户需要注意ASP的安全配置,例如防止SQL注入攻击,以及ACCESS数据库的容量限制,因为对于大型或高并发的网站,ACCESS可能无法满足性能需求,此时通常会转向更强大的数据库系统,如MySQL或SQL ...
- 在实际开发中,需要根据项目需求调整配置,例如数据库连接参数、事务隔离级别等。 - 为了更好的可扩展性和测试性,推荐使用Spring的Service层进行业务逻辑处理,而不是直接在Action中处理。 - 对于复杂的项目,...
2. **数据集成**:连接到数据库或者其他后端服务,动态生成页面内容。 3. **模板引擎**:结合模板引擎库,如FreeMarker或Velocity,可以构建更复杂的动态页面。 4. **缓存机制**:利用库提供的缓存功能,提高动态...
- **数据源配置**:数据源是连接数据库的关键,需要在Spring配置文件中进行配置。 ```xml <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> ``` - **...
为了便于维护,你可以将连接字符串保存在一个单独的文件(如`conn.asp`)中,然后在所有需要连接数据库的文件中使用SSI(Server Side Include)包含这个文件。这样,只要更改`conn.asp`,所有相关程序都会自动更新...
- 注册表(Registry)是Windows操作系统中的一个数据库,它包含了系统及应用程序的配置数据,如启动项、服务设置、驱动程序信息等。 - 注册表的结构包括:HKEY_LOCAL_MACHINE(本地机器)、HKEY_CURRENT_USER...
根据提供的文件内容,这部分文字看起来像是一系列的编码、文件格式、分辨率、频率和压缩技术的列表,其中还掺杂了一些数据库相关的内容。尽管这些信息的上下文并不明确,但可以从中提炼出一些关于多媒体处理、数据...
SSI(Server-Side Includes,服务器端包含)是一种简单的嵌入式网页编程技术,常用于动态网页的构建。在多数据源配置的场景下,SSI可以帮助我们整合来自不同数据库或者服务的数据,实现更灵活的数据管理和应用架构。...
jsonplugin帮助处理JSON数据,jtds和ojdbc则提供数据库连接能力。在搭建任何Java框架时,确保正确引入这些库可以极大地提高开发效率,同时保证了项目与数据库的稳定通信和数据的准确交换。在实际开发中,我们还需要...
在部署和使用这个系统时,需要注意以下几点: - 配置好IIS服务器,启用ASP支持。 - 创建或连接到合适的数据库,并根据系统需求进行初始化。 - 将压缩包中的所有文件上传至服务器的适当目录。 - 设置好数据库连接文件...