0 0

hibernate操作数据库导致死锁问题5

最近在做一个项目,遇到一个很棘手的问题:

项目的架构是:servlet + spring + hibernate+mysql

部署环境是:Linux + tomcat + mysql

问题描述:

之前项目运行一直良好,用户访问都不会有问题,但是最近一次发布版本出现了一个很严重的问题,现象是:用户大概访问1个小时左右,就无法再登陆了,甚至任何与数据库有关的操作都不好用了,应用程序界面总是提示访问超时。此时我进入linux上的mysql命令行,执行alter、update等命令均陷入命令等待执行的状态,感觉好像是出现了死锁,当我讲tomcat重启,程序有好用了,但是过1个小时有出现上述现象。请问各位指点一下,这是不是就是hibernate死锁导致的,我该如何调查,来排查问题,请多多指教,不胜感激!!!
2013年9月13日 12:01

1个答案 按时间排序 按投票排序

0 0

把mysql的日志中的慢查询日志看看,都有哪些sql执行超过1s了,http://blog.csdn.net/showwair/article/details/7529874

2013年9月13日 12:18

相关推荐

    论底层源码的重要性,解决mysql死锁问题

    MySQL数据库的死锁问题是一个复杂且常见的挑战,尤其是在高并发的业务环境中。死锁发生在两个或更多的事务相互等待对方释放资源,导致它们无法继续执行。这种情况严重影响系统的性能和用户体验,因此,理解底层源码...

    多线程定时并发类数据库操作日之类

    在编程中,我们可能会创建数据库连接池,设计ORM(对象关系映射)框架,如Hibernate或MyBatis,将数据库表映射为类,简化数据库交互。这种方式可以提高代码的可读性和可维护性,但也可能引入复杂性,比如性能优化、...

    Hibernate 参数设置一览表.doc

    9. **hibernate.order_updates**:当设置为`true`时,Hibernate会按主键顺序执行更新操作,以减少死锁的可能性。 10. **hibernate.generate_statistics**:如果开启,Hibernate会收集统计信息以帮助优化性能。这些...

    hibernate 配置属性参数详情(全)

    Hibernate 是一个流行的 JavaEE 应用程序开发中的对象关系映射(ORM)框架,它允许开发者以面向对象的方式处理数据库操作。在SSH(Spring、Struts、Hibernate)整合的项目中,了解并优化Hibernate的配置参数对于提升...

    Hibernate性能优化

    在Java开发中,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。然而,随着应用规模的扩大,性能问题逐渐显现,因此对Hibernate进行性能优化变得至关重要。本篇文章将深入探讨如何有效地...

    hibernate中处理大字段 网上收集的文档

    处理大字段时,由于数据量较大,可能会导致事务持续时间较长,增加死锁的风险。因此,合理设计事务边界,避免长时间持有事务,有助于提高系统并发性能。 总结来说,Hibernate处理大字段涉及到数据类型的选用、映射...

    hibernate配置属性参数[定义].pdf

    9. `hibernate.order_updates`:如果开启,Hibernate 将按主键顺序执行更新,这有助于减少并发环境下的死锁问题。 10. `hibernate.generate_statistics`:启用统计信息收集,这些信息有助于优化应用性能。 11. `...

    精通Hibernate.精通Hibernate.

    - **事务管理**:在适当的地方开启和提交事务,避免长时间持有事务导致的死锁问题。 - **查询优化**:合理使用索引、分页查询、限制返回字段等技巧来提高查询效率。 通过以上内容的学习,我们可以看出Hibernate不仅...

    hibernate实例(一对多,多对一)

    - 对于一对一关联,应确保两个实体间的关联是互斥的,避免出现循环引用导致的死锁问题。 - 在实际开发中,还需要考虑事务管理,确保数据的一致性。 以上就是关于Hibernate中一对一和一对多关联关系的基本知识及其...

    Hibernate注解API.pdf

    Hibernate 是一款非常流行的 Java 持久层框架,它极大地简化了数据库操作。在 Hibernate 中,可以通过使用注解来映射对象与数据库表之间的关系,从而实现 ORM(对象关系映射)。这种方式避免了大量的 XML 配置工作,...

    hibernate优化

    - **批量操作**:正确配置batch_size参数,利用Hibernate的批量更新/删除功能,减少数据库交互次数。 - **JDBC调优**:合理使用JDBC连接,如调整预加载记录数等参数,以适应不同的应用负载。 #### 结论 Hibernate...

    数据库方面的面试题集

    - JPA(Java Persistence API)和Hibernate:ORM(Object-Relational Mapping)框架,简化数据库操作,提高开发效率。 以上只是数据库面试题集的部分内容概述,实际题集中可能包含更深入的理论问题、案例分析以及...

    BLOG上的文章2.doc

    控制单向关联的外连接抓取深度,避免过度抓取导致的性能问题。通常设置在0到3之间。 7. `hibernate.default_batch_fetch_size`: 设置默认的批量抓取大小,适用于关联查询的优化。推荐值为4、8或16。 8. `...

    JavaAnd数据库事务[整理].pdf

    当并发用户同时访问数据库时,可能会出现数据不一致或死锁的问题。为了解决这些问题,数据库系统采用了锁机制,如共享锁(读锁)和独占锁(写锁),以控制多个事务对同一资源的访问。 二、数据库的隔离级别 数据库...

    鲁棒的数据库持久层设计

    - 对象锁和行级锁可以帮助解决并发问题,但需要谨慎使用以避免死锁。 3. **开发语言的问题** - 不同的编程语言对于持久层的支持程度不同,需要根据项目需求选择合适的语言。 - Java由于其广泛的库支持和强大的...

    JDBC Oracle执行executeUpdate卡死问题的解决方案

    在使用Java JDBC与Oracle数据库进行交互时,有时可能会遇到执行`executeUpdate`方法时程序卡死的问题。这通常是由于事务管理不当导致的,特别是当数据库事务未被正确提交或回滚时。下面我们将深入探讨这个问题的原因...

    关于Java开发的五百个常见问题

    11. **数据库操作**:JDBC是连接Java与数据库的标准API,问题可能涵盖连接管理、SQL语句编写、事务处理等。 12. **网络编程**:Socket编程、HTTP客户端/服务器端实现等,是网络应用开发的基础。 13. **单元测试**...

    Top_10_Java_Performance_Problems

    **问题描述**:频繁创建和销毁数据库连接会导致资源浪费和性能瓶颈。 **解决方案**: - **连接池管理**:使用如HikariCP、C3P0等连接池管理器来管理数据库连接,减少连接的创建和销毁操作。 - **配置优化**:合理...

    Web应用中并发控制的实现.pdf

    Web应用并发控制面临的主要挑战包括HTTP协议的无连接特性,使得数据库无法保持事务状态,以及用户操作的不确定性。为了解决这些问题,通常会采用两种锁机制——乐观锁和悲观锁。 1. 乐观锁(Optimistic Locking)...

    互联网高频Java后端面试题20道(适合1~3年)V1.0.42.docx

    问题 20:请解释 Java 中的 ORM(对象关系映射)技术,以及 Hibernate ORM 框架如何简化数据库操作。在实际开发中,ORM 的优缺点是什么? ORM 技术用于在对象和关系数据库之间建立桥梁,使得程序员可以使用面向对象...

Global site tag (gtag.js) - Google Analytics