java-JDBC commit failed数据库连接关闭

问题描述

JDBC commit failed数据库连接关闭
之前软件在Server 2003 32位服务器上运行正常,换了dellR720 64位服务器以后,平均10个小时会报一次以上错误Servlet.service() for servlet action threw exception org.springframework.transaction.TransactionSystemException: Could not commit Hibernate transaction; nested exception is org.hibernate.TransactionException: JDBC commit failed
Caused by: com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Connection.close() has already been called. Invalid operation in this state.
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:888)
at com.mysql.jdbc.Connection.getMutex(Connection.java:3640)
at com.mysql.jdbc.Connection.commit(Connection.java:2242)
at org.hibernate.transaction.JDBCTransaction.commitAndResetAutoCommit(JDBCTransaction.java:139)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:115),后来我把tomcat装到默认路径C:Program Files(X86)底下,数据库也是在这,大约40小时报一次错,页面打印错误是HTTP500
The full stack trace of the root cause is available in the Apache Tomcat/6.0但是重启tomcat以后页面正常了,过一段时间又开始打印localhost.log文件了,这个错误有人说是由于数据库保持连接时间短,但是把那个时间设置长了又影响性能,求各位大神指导!!

服务器:dell R720 操作系统server2008 tomcat版本6.0.37,数据库用的mysql 5.0.27,实时数据采集用的twincat tcat_2100_1335

解决方案

你难道用的都是安装版,不是zip包?

解决方案二:
建议全部换一套64为版本的软件试试!我之前也在server2008上安装过,自定义的路径没有问题呀……

解决方案三:
推荐看下:http://hi.baidu.com/niubore/item/3252b7361a605af4e7bb7af9

解决方案四:
您好,我想问下您怎么解决的,我也遇到了这情况

时间: 2024-11-10 01:33:58

java-JDBC commit failed数据库连接关闭的相关文章

Java JDBC数据库链接

好久没有编写有关数据库应用程序啦,这里回顾一下java JDBC. 1.使用Java JDBC操作数据库一般需要6步: (1)建立JDBC桥接器,加载数据库驱动: (2)连接数据库,获得Connection对象(使用数据库连接地址,用户名,密码): (3)获得数据库Statement对象: (4)执行数据库操作: (5)读取结果: (6)关闭数据库连接: 2.使用Java JDBC操作数据库(mysql)代码: 连接mysql数据库,需要导入mysql数据库jar包,本代码使用mysql-con

Java JDBC学习实战(二): 管理结果集

在我的上一篇博客<Java JDBC学习实战(一): JDBC的基本操作>中,简要介绍了jdbc开发的基本流程,并详细介绍了Statement和PreparedStatement的使用:利用这两个API可以执行SQL语句,完成基本的CURD操作.那么,当我们进行查询操作,查询到了结果集,该如何处理呢? Java提供了一个API,专门用于表示查询的结果集--ResultSet.此外,还提供了一个结果集的分析工具--ResultSetMetaData. 一. ResultSet的介绍 1.1 可移

org.apache.subversion.javahl.ClientException: svn: E200007: Commit failed

SVN提交代码失败,而且就只有一个文件提交失败,其他提交正常,报错信息如下: org.apache.subversion.javahl.ClientException: svn: E200007: Commit failed (details follow): svn: E200007: CHECKOUT can only be performed on a version resource [at this time].  svn: E200007: Commit failed (detail

怪异问题!sql在pl/sql中执行结果与java jdbc执行结果不一致

问题描述 做一查询系统(struts2+myeclipse+tomcat+oracle9),一般先在pl/sql中测试sql语句,无问题后在action中使用oracle thin模式连接数据库,执行sql语句,然后将查询结果存入HashMap后输出至jsp页面.出现如下怪异问题:1.在pl/sql中测试sql语句时结果正常.结果中有6个字段,其中两个字段为count()函数统计出的数值.2.将在pl/sql中测试过的sql语句写入struts2的action中,通过jdbc thin模式执行,

对象-java JDBC 批量插入的时候报数组下标越界,求大神

问题描述 java JDBC 批量插入的时候报数组下标越界,求大神 代码:private static Boolean Function_User(Map resultMap String sqlString tableType) { // TODO Auto-generated method stub Connection conn=null; PreparedStatement insert_st=null; int count = 0; final int batchSize = 500;

【编程】java jdbc/ojdbc 链接oracle的三种方式

  本文是一篇学习笔记,学习如何通过java jdbc /ojdbc 连接oracle的几种方式.一 使用方法方法一:使用service_name 连接oracle  jdbc:oracle:thin:@//:/ 例如: jdbc:oracle:thin:@//10.10.10.1:1521/TDB注意这里的格式,@后面有//, 这是与使用SID的主要区别.对于集群来说,每个节点的SID 是不一样的,但是SERVICE_NAME 确可以包含所有节点. 方法二: 使用SID 连接oracle jd

java jdbc 对 DB2 数据库 做CRUD 操作

问题描述 java jdbc 对 DB2 数据库 做CRUD 操作 本人想通过 java 的jdbc 连接 DB2 数据库,并对数据库进行操作,操了好几天了, 是这样的报错 的 DB2 SQL error: SQLCODE: -805, SQLSTATE: 51002, SQLERRMC: null 自己也去找了这个报错是什么意思, 网上是这样解释的 : -805 在计划中没有发现DBRM或程序包名 解决的办法就是重新绑定 然后自己又去 找 怎么绑定的方法. 我之前一直用的 sql server

编程-在weblogic上部署JAVA WEB项目,为什么关闭之后最小的连接数不会自动关闭

问题描述 在weblogic上部署JAVA WEB项目,为什么关闭之后最小的连接数不会自动关闭 在项目中设置的最小连接数是2 初始连接数是5,当我开启这个项目的时候发现连接池中的连接数加了5个,因为我设置了maxIdleTime属性,过了一会有3个连接数因为空闲会被关闭,但是那2个最小的连接数一直不会关闭,就算在服务器上把这个应用停止了也不会关闭,这要怎么处理呢? 项目是spring+strtuts2+hibernate 连接池用的是c3p0 解决方案 出于性能的考虑,底层连接池会保持连接,这是

java jdbc连接mysql数据库插入null值问题

问题描述 java jdbc连接mysql数据库插入null值问题 ps.setFloat(8 device.getLatitude());如果device.getLatitude()返回的是null就报错,也就是说setFloat不能插入空值,而setString()方法就可以,不知道为什么请高手指点,谢谢!! 解决方案 PreparedStatement.java 的给方法签名是这样的public void setFloat(int parameterIndex float x) throw