程序访问数据库时出现间歇性打不开连接问题~~问题很棘手!!!

问题描述

系统架构采用的是struts2+hibernate+sybase,事物控制直接在底层DAO的方法里进行事物打开、提交、关闭回滚等工作,最近新开发了一个新模块,但是上传服务器后,持久化操作时出现间歇性的无法打开连接异常,异常详细我把图贴出来了,各位大侠审视一下,问题很棘手,数据库配置应该没什么问题,因为其它模块都运转正常,看看具体异常吧,见图附件: 问题补充:asyty 写道

解决方案

还没搞定么?
解决方案二:
我看了下报错,貌似异常是先抛出一个异常,跳到catch里执行transaction.rollback(); 的时候报错的catch (RuntimeException re) { log.warn("Interview Exception:", re); transaction.rollback(); //在这句里报的错误,貌似是是rollback的时候session已经关闭了 throw re; } 去掉rollback和flush以及clear试试,貌似commit的时候会自动先执行flush的public void update(OaInterviewRecord transientInstance) {log.debug("saving OaInterviewRecord instance");Session session = null;Transaction transaction = null;try {session = this.getSession();transaction = session.beginTransaction();session.update(transientInstance);transaction.commit();session.close();log.debug("save successful");} catch (RuntimeException re) {log.warn("Interview Exception:", re);re.printStackTrace();}}
解决方案三:
如果不加这个text数据是正常的??我重新看了下exception 好像是在OaInterviewRecord.DAO update数据库的时候回滚了。。。。这个如果不是这个问题,那就可能是更新数据库的数据有问题,检查下这张表结构,java代码里entity字段和hibernate里配置的字段 可以的话贴一下这个DAO的update和表结构还有hibernate配置 我也猜不出来是啥情况。。。
解决方案四:
这个配置应该没啥问题,可以加上hibernate的自动检测连接试试 不知道管不管用<property name="connection.autoReconnect">true</property> 或者<property name="connection.autoReconnect">true</property> <property name="connection.autoReconnectForPools">true</property> <property name="connection.is-connection-validation-required">true</property>
解决方案五:
不过出现间歇性断开一般都是配置问题。。。。断开了之后连接池也没有配置自动检测连接是否有效,然后就exception了比如这个类似的情况http://www.iteye.com/problems/74238
解决方案六:
是不是数据库设置的timeout太小了,时间过了 数据库就关掉session了类似mysql出现的could not excute queryhttp://asyty.iteye.com/blog/1207494

时间: 2024-08-02 14:10:48

程序访问数据库时出现间歇性打不开连接问题~~问题很棘手!!!的相关文章

mysql-求助。。java程序访问数据库试用AS别名报错Column &amp;amp;#39;userid&amp;amp;#39; not found.

问题描述 求助..java程序访问数据库试用AS别名报错Column 'userid' not found. 本人小白java程序中访问mysql数据库去掉AS别名就可以正常访问,加上别名就报错Column 'userid' not found. 这个别名很重要..求大神帮助 解决方案 as这个关键字是可以省略的 解决方案二: AS别名指定的是返回的column的名称,要看你在JDBC中是怎么使用的了. 检查下所有使用了userid列名称的地方是否都正确设置了AS 别名了呢. 解决方案三: sp

mysql5.7在centos下编写c语言程序操作数据库时,头文件#include&amp;amp;lt;mysql/mysql.h&amp;amp;gt;报错

问题描述 mysql5.7在centos下编写c语言程序操作数据库时,头文件#include<mysql/mysql.h>报错 mysql5.7在centos下编写c语言程序操作数据库时,头文件#include报错 解决方案 这是没有找到plugin_auth_common.h文件啊,你对照一下目录下面有没有这个文件啊...另外这个/usr/include/mysql/mysql目录看起来有点奇怪啊,你是不是多建了一层mysql目录

上线项目-告急求帮忙,已经上线的项目突然不能访问数据库,重启tomcat一直提示无法连接。

问题描述 告急求帮忙,已经上线的项目突然不能访问数据库,重启tomcat一直提示无法连接. 如图,已经弄了两天!还是没什么思路,求大神指点 解决方案 应该是你连接数据库的connection的类中内容改了吧,一般上线后都需要改的, 解决方案二: 检查了数据库连接的配置信息了吗,这个异常明显是数据库连接的问题呢.

如何在Visual Studio中让应用程序访问数据库

随着Web应用程序功能的增强,现在Web应用程序基本上都需要后台数据库的支持.如下图所示,现在某个Web应用程序提供了一个BBS的论坛.用户可以在Web应用程序上注册用户.发帖等等.为了提高Web应用程序的查询效率.缩短响应时间,此时开发人员就需要为Web应用程序配备一个合适的数据库.在这篇文章中,笔者将跟各位读者讨论一下,在VisualStudio平台下,如何让Web应用程序与数据库打交道.寻找一个价廉物美的解决方案. 一.笔者推荐使用Sql Server Express Edition数据库

jsp程序访问数据库怎么返回合适的量的数据

问题描述 我现在做的项目是用jsp写的,在访问数据库的环节经常是在一个方法里头直接写:select * from tableName;一开始的时候没什么问题,后来系统使用的人多了,发现这可能是一个让系统变慢的环节.但是如果不用select * from tableName的话就要写:select 字段1,字段2 from tableName;这样写的话方法就不通用了.所以我现在很迷惑,请问大侠们在您们的系统中是怎么做的呢?有什么办法可以做到让一个方法通用又有较好的性能? 解决方案 交给Hiber

Java访问数据库的速度瓶颈问题的分析及解决

访问|解决|数据|数据库|速度|问题 内容: 速度瓶颈问题的提出 JDBC访问数据库的机制 不同模式的JDBC接口的选择 Java程序中SQL语句格式的优化 软件模型中对数据库访问的设计模式的优化 将深入研究的问题 参考资料 关于作者 FoolsGarden@SMTH 自由Java传道士 2001 年 11 月 速度瓶颈问题的提出 在企业级的Java应用中,访问数据库是一个必备的环节.数据库作为数据资源的集散地,往往位于企业级软件体系的后方,供前方的应用程序访问.在Java技术的体系中,应用程序

JAVA访问数据库之连接数据库

开发一个访问数据库的应用程序,首先要加载数据库的驱动程序,只需要在第一次访问数据库时加载一次,然后每次运行时创建一个Connection实例,紧接着执行操作数据库的SQL语句,并处理返回的结果集,最后在完成完成此次操作时销毁前面创建的Connection,释放与数据库的连接. 加载数据库驱动 在连接数据库之前,首先要把JDBC驱动类加载到java虚拟机,可以使用java.lang.Class类的静态方法forName(String className).成功加载后会将加载的驱动类注册给Drive

升级到2003后访问数据库发生8007007f错误的解决

错误|访问|解决|数据|数据库 2000升级到2003后使用asp访问数据库时,在conn.open始终发生8007007f错误重装IIS和SQL Server均得不到解决.经查,发现部分系统升级到2003后的确会发生此错误,并且找到了解决的办法:将 oledb32.dll 解压到一下两个目录,然后冲重启服务器1) C:\WINNT\system32\dllCache2) C:\Program Files\Common Files\System\OLE DB 下载地址 http://www.pr

使用FMDB多线程访问数据库,及database is locked的问题

每日更新关注:http://weibo.com/hanjunqiang  新浪微博 今天终于解决了多线程同时访问数据库时,报数据库锁定的问题,错误信息是: Unknown error finalizing or resetting statement (5: database is locked) 最后通过FMDatabaseQueue解决了这个问题,本文总结一下: FMDatabase不能多线程使用同一个实例 多线程访问数据库,不能使用同一个FMDatabase的实例,否则会发生异常.如果线程