数据库隔离级别导致的问题

标签: 数据库 隔离 问题 | 发表时间:2015-12-08 11:12 | 作者:shuntianyingren
出处:http://www.iteye.com

java代码在开始事务后,先做了一个查询,再insert,此时会报: ERROR JDBCExceptionReporter:78 - Could not retrieve transation read-only status server

问题解决过程: 查看mysql的事物隔离级别
                                            SHOW VARIABLES LIKE '%iso%';
                                           返回结果: REPEATABLE-READ

                                           把这个改成:READ-COMMITTED 就好了: SET GLOBAL tx_isolation='READ-COMMITTED';  (记得java重启应用)
                                           要永久生效的就改my.cnf。

分析:当数据库隔离级别为REPEATABLE-READ时,发布一个select语句也算是事物的开始,而且在hibernate里会把以select语句开头的事务标记为只读事务,此时在这个事务里再执行insert、update、delete等DML语句就会报错。

已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [数据库 隔离 问题] 推荐:

数据库隔离级别导致的问题

- - Java - 编程语言 - ITeye博客
java代码在开始事务后,先做了一个查询,再insert,此时会报: ERROR JDBCExceptionReporter:78 - Could not retrieve transation read-only status server. 问题解决过程: 查看mysql的事物隔离级别.                                            返回结果: REPEATABLE-READ.

MySQL数据库事务隔离级别(Transaction Isolation Level)

- - RSS - IT博客云
修改事务隔离级别的方法:. 1.全局修改,修改 mysql.ini配置文件,在最后加上. 1 #可选参数有: READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE. 这里全局默认是 REPEATABLE-READ,其实MySQL本来默认也是这个级别.

MySQL 数据库事务隔离性的实现

- - 掘金 后端
​​​​摘要: 事实上在数据库引擎的实现中并不能实现完全的事务隔离,比如串行化. 本文分享自华为云社区 《【数据库事务与锁机制】- 事务隔离的实现》,原文作者:技术火炬手. 事实上在数据库引擎的实现中并不能实现完全的事务隔离,比如串行化. 这种事务隔离方式虽然是比较理想的隔离措施,但是会对并发性能产生比较大的影响,所以在 MySQL 中事务的默认隔离级别是 REPEATABLE READS(可重复读),下面我们展开讨论一下 MySQL 对数据库隔离性的实现.

Oracle数据库10个小问题

- - 数据库 - ITeye博客
Oracle 数据库 10 个小问题. Oracle的安装是出名的复杂,特别是在非windows系统中,在网上可以找到遍地的Oracle安装文档,但依然有很多人花了大量时间才安装成功,如果要搭建rac系统,那就更复杂了. 我们也看到Oracle公司也一直在降低安装的复杂度,11g的安装已经比8i,9i方便了一些.

数据库分散存储问题的解决

- - inJava
  目前主要分布存储的方式都是按照一定的方式进行切分,主要是垂直切分(纵向)和水平切分(横向)两种方式,当然,也有两种结合的方式,达到更到的切分粒度. 垂直切分(纵向)数据是数据库切分按照网站业务、产品进行切分,比如用户数据、博客文章数据、照片数据、标签数据、群组数据等等每个业务一个独立的数据库或者数据库 服务器.

数据库设计中应注意的问题

- - 数据库 - ITeye博客
引言数据库设计是信息系统设计的基础,一个好的数据库设计在满足了软件需求之外,还要易维护、易扩充等等要求. 当然,对专家们反复强调的数据的一致性、冗余性、访问效率等问题的解决,很大程度上取决于数据库设计者的经验和专业水平. 但这不妨碍我们根据过去的经验,从实用的角度给出数据库设计所要要考虑的问题并尽可能给出相应的解决方案,从而给信息系统的数据库设计者一些有益的启示.

使用Hibernate + MYSQL数据库开发,链接超时问题:

- - CSDN博客Web前端推荐文章
使用Hibernate + MYSQL数据库开发,链接超时问题:. 查了一下,原来是mysql超时设置的问题. 如果连接闲置8小时 (8小时内没有进行数据库操作), mysql就会自动断开连接, 要重启tomcat. . 如果不用hibernate的话, 则在 connection url中加参数: autoReconnect=true.

使用mysqldump 对数据库进行备份的乱码问题

- - CSDN博客数据库推荐文章
最近在做项目的工程中,由于系统中需要提供数据库备份的功能,经过网上一番搜索,觉得采用简单的mysqldump. 通过执行上面的代码段的出来的文件中,中文部分都已乱码出现,起初怀疑是数据库的编码有关,于是通过以下方式来查询数据库的编码. 经过以上步骤可以确定数据库的编码是没有问题的,经过再次网上搜索 得到如下结论.

Weblogic10.3.5 数据库连接被异常回收问题解析

- - BlogJava-首页技术区
      首先介绍一个JDBC参数InactiveConnectionTImeout,该参数用于强制回收那些被泄露的连接(长时间不使用的连接、未被程序正确释放的连接),避免连接池因为泄露导致无连接可用. 当然该参数只是起辅助作用,解决问题知道还是在于完善应用程序.       本文和该参数有关,早期的8.1\9.2中,设定该参数时,定时器(内部的连接池维护Task)只会清理那些长期未被使用的空闲连接(从名字上可以看出来),即对于运行一个长时间执行SQL的连接而言,它是不受影响的.

drbd+pacemaker实现数据库高可用的问题总结

- - x-marker的博客
前面的一篇文章记录下drbd+pacemaker+corosync实现postgresql数据库的高可用(参考 这里),经过一段时间的测试和测试环境使用,总结下遇到的问题. drbd脑裂是指当两个节点(假设只有两个节点)因为网络问题或某一个节点的主机故障等问题,造成数据不能实时同步,就会产生脑裂,drbd脑裂在drbd配置文件的net部分有三个场景,并分别有相应的自动处理策略:.