系统采用H2数据库,利用Hibernate进行连接。

服务器启动完成时候会调用更新H2库中用户状态,一直没有问题,

今天突然出现如下异常:

Caused by: org.springframework.transaction.TransactionSystemException: Could not commit Hibernate transaction; nested exception is org.hibernate.TransactionException: commit failed

at org.springframework.orm.hibernate4.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:558) ~[spring-orm-3.2.4.RELEASE.jar:3.2.4.RELEASE]

at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:755) ~[spring-tx-3.2.4.RELEASE.jar:3.2.4.RELEASE]

at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:724) ~[spring-tx-3.2.4.RELEASE.jar:3.2.4.RELEASE]

at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:475) ~[spring-tx-3.2.4.RELEASE.jar:3.2.4.RELEASE]

at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:270) ~[spring-tx-3.2.4.RELEASE.jar:3.2.4.RELEASE]

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94) ~[spring-tx-3.2.4.RELEASE.jar:3.2.4.RELEASE]

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[spring-aop-3.2.4.RELEASE.jar:3.2.4.RELEASE]

at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:631) ~[spring-aop-3.2.4.RELEASE.jar:3.2.4.RELEASE]

at cn.gbase.bi.biserver.service.UserServiceImpl$$EnhancerByCGLIB$$1609d777.update2Start() ~[spring-core-3.2.4.RELEASE.jar:na]

at cn.gbase.bi.biserver.service.DispatcherScanJobDetail.execute(DispatcherScanJobDetail.java:59) ~[classes/:na]

at org.quartz.core.JobRunShell.run(JobRunShell.java:213) ~[quartz-all-2.1.6.jar:na]

... 1 common frames omitted

Caused by: org.hibernate.TransactionException: commit failed

at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:185) ~[hibernate-core-4.1.9.Final.jar:4.1.9.Final]

at org.springframework.orm.hibernate4.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:554) ~[spring-orm-3.2.4.RELEASE.jar:3.2.4.RELEASE]

... 11 common frames omitted

Caused by: org.hibernate.TransactionException: unable to commit against JDBC connection

at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doCommit(JdbcTransaction.java:116) ~[hibernate-core-4.1.9.Final.jar:4.1.9.Final]

at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:178) ~[hibernate-core-4.1.9.Final.jar:4.1.9.Final]

... 12 common frames omitted

Caused by: org.h2.jdbc.JdbcSQLException: General error: "java.lang.NullPointerException"; SQL statement:

DELETE FROM INFORMATION_SCHEMA.LOB_DATA WHERE BLOCK = ? [50000-173]

at org.h2.engine.SessionRemote.done(SessionRemote.java:579) ~[h2-1.3.173.jar:1.3.173]

at org.h2.command.CommandRemote.executeUpdate(CommandRemote.java:186) ~[h2-1.3.173.jar:1.3.173]

at org.h2.jdbc.JdbcConnection.commit(JdbcConnection.java:449) ~[h2-1.3.173.jar:1.3.173]

at com.mchange.v2.c3p0.impl.NewProxyConnection.commit(NewProxyConnection.java:803) ~[c3p0-0.9.1.2.jar:0.9.1.2]

at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.doCommit(JdbcTransaction.java:112) ~[hibernate-core-4.1.9.Final.jar:4.1.9.Final]

... 13 common frames omitted

H2的jdbc进行事务提交时候出现空指针异常

然后导致数据库中一张表的数据丢失,查询这张表就会出现如下异常

Caused by: org.h2.jdbc.JdbcSQLException: General error: "java.lang.ArrayIndexOutOfBoundsException: 0"; SQL statement:

select this_.id as id6_0_, this_.version as version6_0_, this_.create_date as create3_6_0_, this_.update_date as update4_6_0_, this_.create_person as create5_6_0_, this_.update_person as update6_6_0_, this_.gbrf_name as gbrf7_6_0_, this_.gbrf_alias as gbrf8_6_0_, this_.gbrf_path as gbrf9_6_0_, this_.gbrf_type as gbrf10_6_0_, this_.gbrf_directory_type as gbrf11_6_0_, this_.gbrf_size as gbrf12_6_0_, this_.real_path as real13_6_0_, this_.gbrf_descp as gbrf14_6_0_, this_.gbrf_param as gbrf15_6_0_, this_.gbrf_status as gbrf16_6_0_, this_.gbrf_views as gbrf17_6_0_, this_.gbrf_cascaded as gbrf18_6_0_, this_.del_with_pid as del19_6_0_, this_.gbrf_symbol as gbrf20_6_0_, this_.gbrf_copy_from as gbrf21_6_0_, this_.directory_id as directory22_6_0_ from gbi_gbrf this_ where this_.directory_id=? and this_.del_with_pid is null and this_.gbrf_status=? and this_.gbrf_cascaded=? order by this_.create_date asc [50000-173]

at org.h2.engine.SessionRemote.done(SessionRemote.java:579) ~[h2-1.3.173.jar:1.3.173]

at org.h2.command.CommandRemote.executeQuery(CommandRemote.java:153) ~[h2-1.3.173.jar:1.3.173]

at org.h2.jdbc.JdbcPreparedStatement.executeQuery(JdbcPreparedStatement.java:106) ~[h2-1.3.173.jar:1.3.173]

at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:76) ~[c3p0-0.9.1.2.jar:0.9.1.2]

at sun.reflect.GeneratedMethodAccessor36.invoke(Unknown Source) ~[na:na]

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_40]

at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_40]

at org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:122) ~[hibernate-core-4.1.9.Final.jar:4.1.9.Final]

... 90 common frames omitted

这个数据库文件就彻底挂了。。。谁能告诉我原因?

还偶尔遇到Hibernate事务提交失败,错误原因是JDBC连接已经关闭,导致数据源崩溃情况,但是重启服务就oK,上面的异常导致了数据库表数据丢失,太严重了

H2真的不能用于生产环境?还是使用的有问题

2014年9月18日 19:58

h2事务与mysql_H2数据库事务提交失败相关推荐

  1. 使用事务注解导致数据库事务一直在运行

    使用事务注解导致数据库事务一直在运行 1.问题出现原因: 场景: @Override//bcId 要选择的品牌对应bcid 不是头部的@Transactional(rollbackFor = Exce ...

  2. Spring事务管理--(一)数据库事务隔离级别与mysql引擎基础讲解

    一.前言 本篇文章来自网络整理,很简单,但是很实用对于初级和中级工程师. 原创地址1:http://www.cnblogs.com/hollen/archive/2012/05/13/2498309. ...

  3. Spring JDBC-Spring事务管理之数据库事务基础知识

    概述 数据库事务的概念 原子性 一致性 隔离性 持久性 数据并发的问题 脏读dirty read 不可重复读unrepeatable read 幻象读 phantom read 幻象读和不可重复度的区 ...

  4. pgsql数据库默认配置事务类型_PostgreSQL数据库事务出现未知状态的处理方法

    背景 数据库的事务是原子操作,要么成功,要么失败.但是实际上在客户端的视角,可能有第三种状态:unknown状态. 当客户端提交事务结束(rollback , commit , prepare xac ...

  5. Spring的事务管理和数据库事务相关知识

    1 初步理解 理解事务之前,先讲一个你日常生活中最常干的事:取钱.         比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱:然后ATM出1000元钱. ...

  6. mysql事务并发控制_数据库 事务并发控制

    事务是一个逻辑工作单元, SQLServer 2005 提供了几种自动的可以通过编程来完成的机制,包括事务日志. SQL 事务控制语句,以及事务处理运行过程中通过锁定保证数据完整性的机制.当用户对数据 ...

  7. 数据库事务隔离级ORACLE数据库事务隔离级别介绍

    本文系转载,原文地址:http://singo107.iteye.com/blog/1175084 数据库事务的隔离级别有4个,由低到高依次为Read uncommitted.Read committ ...

  8. spring配置mysql事务管理_Spring 数据库事务管理机制

    要点1 Spring事务管理方法编程式事务(TransactionTemplate.PlatformTransactionManager) 声明式事务(配置式.注解式) 2 Spring 注解 @Tr ...

  9. oracle 事务实现原理,数据库事务的实现原理

    1. 前言 都知道数据库事务有ACID特性(原子性.一致性.隔离型.持久性),本文简单聊一下它们的实现原理. 2. 日志文件 2.1. redo log redo log叫做重做日志,是用来实现事务的 ...

  10. mysql 事务原子性_数据库事务原子性、一致性是怎样实现的?

    先借用前辈的一句话:数据库事务有不同的隔离级别,不同的隔离级别对锁的使用是不同的,锁的应用最终导致不同事务的隔离级别. 隔离性分为四个级别: 1读未提交:(Read Uncommitted) 2读已提 ...

最新文章

  1. 从零开始学_JavaScript_系列(24)——查看对象属性,合并数组
  2. CKO将成为企业发展的军师--转自世界名人网
  3. 网站的高性能架构-性能测试方法
  4. php取汉字第一个字,php---------取汉字的第一个字的首字母
  5. UVA10305 Ordering Tasks
  6. Tensorflow的LRN是怎么做的
  7. 分区式存储管理c++_分区机要变形缝,纵横交接卫浴厨:防火阀参数的高效记忆口诀...
  8. python声明编码格式_使用python将doc文件转为utf8编码格式的txt
  9. 2016专接本c语言真题_专科三年记录+自己学习专接本历程
  10. python系列文章(基础,应用,后端,运维,自动化测试,爬虫,数据分析,可视化,机器学习,深度学习系列内容)
  11. 微信支付的商户号和服务商的区别,以及什么是子账户
  12. Android使用DragAndDrop拖拽效果实现宫格位置变换
  13. 学习python量化分析
  14. 论文阅读:Deep Residual Shrinkage Networksfor Fault Diagnosis
  15. 【Android】网络小说阅读软件的实现
  16. 京东商品浏览网页制作:HTML+CSS
  17. 苹果市场占有率_苹果耳机销售速度超手机,占据TWS耳机半壁江山
  18. 你见过的最差的程序员是怎样的?
  19. 维护【软件工程总结】
  20. RTMP视频推流功能组件EasyRTMP-HIK DEMO版本运行报错0xc000007b问题排查分析

热门文章

  1. SQL课堂笔记--索引和视图
  2. linux下c语言 读取文件
  3. linux普通用户配置自己的python环境
  4. 基于Snap软件将2A哨兵数据转换为ENVI格式
  5. Pytorch——神经网络工具箱nn
  6. 《剑指offer》面试题25——二叉树中和为某一值的路径
  7. GEE学习总结(2)——点矢量绘制与坐标系问题
  8. JS学习总结(10)——Windows对象
  9. GF4各波段太阳辐照度
  10. ENVI Flaash大气校正与6S大气校正(TM为例)