org.springframework.dao.TransientDataAccessResourceException: ### Error updating database. Cause: java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allowed ### The error may involve defaultParameterMap ### T…
我用的是 spring + springmvc + mybatis +mysql. <tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes> <tx:method name="save*" propagation="REQUIRED" /> <tx:method name="add*&q…
看了下mysql-connector-5.1.40版本中,如果设置failoverReadOnly=true (即默认值,参考链接),当mysql连接failover时,会根据jdbc连接串将当前连接的readOnly值设置为true (第8行代码) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 private synchronized void switchCurrentConnectionTo(int hostIndex, MySQLConn…
Connection is read-only. Queries leading to data modification are not allowed 描述:框架注入时候,配置了事物管理,权限设置的只读模式 解决方法不是什么把它删了,删了就没安全防护了,肯定不是对的方法. 解决方案一: 如果调用的service中的方法使用了修改,添加功能,并且继承了父类,那么需要将自己的service更新方法的名称添加到这个里边 <tx:method name="mygetOrder" pr…
java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allowed 追查原因,查看切片事务配置如下: 查看源码: 初始化阶段-Step1:解析到xml配置,在RuleBasedTransactionAttribute中设置query*开发的方法的readOnly值为true save等方法设置为fase: 运行阶段-Step1:(切片事务运行的逻辑大概简单说下:就…
问题分析: 实际开发项目中,进行insert的时候,产生这个问题是Spring框架的一个安全权限保护方法,对于方法调用的事物保护,一般配置如下: <!-- 事务管理 属性 --> <tx:advice id="transactionAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="add*"…
因为我再spring 中使用了AOP进行事务管理,有如下配置 <tx:advice id="txAdvice" transaction-manager="transactionManager"> <!-- 定义事务传播属性 --> <tx:attributes> <tx:method name="insert*" propagation="REQUIRED" /> <tx:…
出现这个问题的原因是默认事务只有只读权限,因此要添加下面的每一个add*,del*,update*等等. 分别给予访问数据库的权限. 方法名的前缀有该关键字设置了read-only=true,将其改为read-only=false即可: <tx:method name="get*" propagation="REQUIRED" read-only="false"/>…
Chapter Data Modification XF的数据提交,支持单行.集合和多层次的master-details结构的数据. Create 当提交如下数据 <Job> <Id/> <Name>CEO</Name> <Allowance>1000</Allowance> <Descr/> </Job> Create方法在数据库表Jobs中插入一条返回数据.注意,提交的数据中没有提供Id的值, 表示Id字段…
昨天做项目时,写了个方法,程序突然报了Connection is readonly. Queries leading to data modification are not allowed调了程序半天,最后才发现是自己在spring配置文件中增加了事务.把方法写成了大写开头了,但是spring配置是以小写开头 代码如下: <bean id="transactionInterceptor" class="org.springframework.transaction.i…
有些spring相关的知识点之前一直没有仔细研究:比如spring的事务,并不是没有使用,也曾经简单的在某些需要事务处理的方法上通过增加事务注解来实现事务功能,仅仅是跟随使用(甚至并未测试过事务的正确性),至于如何在项目中配置事务,如何才能将事务写正确,事务的其它的一些原理性的东西从未花时间研究.最近同事正好抛出了一个问题,借此机会学习了一遍. 问题一:增加了readOnly=true的事务中包含写操作,为什么线上运行这段代码是正常的呢? @Transactional(readOnly = tr…
spring的事务处理本来就是依赖于底层的实现,比如hibernate及数据库本身. 所以,当使用mysql数据库时,首先要确定的是,所操作的对象表是innodb格式的. 1. read-only方法中进行更新或插入操作时,并不总报错 在service层的方法中定义了事务,并且在spring配置文件中定义了如下的传播方式: <tx:attributes > <tx:method name="save*" propagation="REQUIRED"…
在搭建ssm框架时候踩得坑:1.对于拦截器url-parttern的设置:第一次设置的是/** 本以为这个是表示拦截所有,没想到这是错误的写法,正确的写法是/    启动项目不会报错,但是会出现404 找不到要访问的路径2.在pom.xml 文件中servlet的作用域没有设置为provided  这个表示使用jdk或者容器的 默认的是compile     启动项目报错: Failed to start component [StandardEngine[Tomcat].StandardHos…
Spring4 事务管理 本章是Spring4 教程中的最后一章,也是非常重要的一章.如果说学习IOC是知识的入门,那学习事务管理就是知识的提升.本章篇幅可能有一丢丢长,也有一丢丢难,需要读者细细品味.主要从三个方面开始:事务简介,基于注解的事务管理 和基于xml的事务管理. 准备环境 mysql文件,两张表:一个用户表,字段有帐号和余额.一个商品表,字段有sku,售价和库存. DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` big…
Spring的事务经常会有这样的配置: 1 <tx:method name="search*" read-only="true" /> 或者这样的注记: 1 @Transactional(readOnly = true) 正好我正在做的项目中这样配置了,而且偶然发现配置了不生效,本着“不弄明白对不起祖国对不起人民”的精神,参考了不少帖子和文档,总结了网上形形色色的答案,稍有收获,规整如下,不正确请指出. 1 readonly并不是所有数据库都支持的,不同…
Required.Required_New传播属性分析传送门:https://www.cnblogs.com/lvbinbin2yujie/p/10259897.html Mandatory.Never.Not_Support传播属性分析传送门:https://www.cnblogs.com/lvbinbin2yujie/p/10260030.html 我的Spring事务传播属性介绍比较传送门:https://files.cnblogs.com/files/lvbinbin2yujie/Spr…
在quartz定时执行任务的时候,hibernate报错,在只读事务中进行了update语句: [ERROR] 2018/08/03 10:35:00,827 org.quartz.core.JobRunShell - Job DEFAULT.fetchDingGroupDatasTask threw an unhandled Exception: org.springframework.scheduling.quartz.JobMethodInvocationFailedException:…
Mycat问题总结 一丶自增主键设置 Mycat提供了几种设置自增主键的方式 本地文件方式 数据库方式 服务器时间戳方式 分布式ZK-ID生成器 第一种和第二种只适合单点设置,对于集群不适用.第四种方式适用,但是需要增加zk服务器,维护成本较高,或者由于某些原因不能用zk,此方式也会受到约束,故采用服务器时间戳的方式生成自增主键ID. ##### 以下为配置方法 修改server.xml,设置为时间戳格式 <property name="sequnceHandlerType"&g…
1.事务加在DAO层还是service层? service中可能多涉及多种DAO的操作,比如存了一个User之后,需要保存一条日志信息:如果在DAO中分别设置事务的话,一个DAO下面方法抛出异常了,但是不会影响到另一个DAO下面的方法,这是两个事务:因此事务要加在Service层:   2.需求:存一个user的同时,记录一个日志,说这个user被存了:   3.代码实现:--这边是spring管理hibernate下的transaction: 1)DAO实现:UserDAOImpl.java…
在搭建ssm框架时候踩得坑:1.对于拦截器url-parttern的设置:第一次设置的是/** 本以为这个是表示拦截所有,没想到这是错误的写法,正确的写法是/    启动项目不会报错,但是会出现404 找不到要访问的路径2.在pom.xml 文件中servlet的作用域没有设置为provided  这个表示使用jdk或者容器的 默认的是compile     启动项目报错: Failed to start component [StandardEngine[Tomcat].StandardHos…
一.事务概述: 事务就是一系列的动作, 它们被当做一个单独的工作单元. 这些动作要么全部完成, 要么全部不起作用:比如 用户购买图书:购买动作之前需要确认 ①图书的数量是否足够:②用户账号余额是否足够:如果①满足条件 那么 库存减-1 :如果②满足条件  则账户余额- 书价 :如果 ① 和②只要有一个不满足条件 则 图书库存回滚到之前的状态(此次操作之前的数量)且 用户余额回滚到原来的状态(此次操作之前的余额):① 和②都满足条件 则 事务动作完成,事务就被提交.: 事务的四个关键属性(ACID…
The third part of my Spring Data JPA tutorialdescribed how you can create custom queries by using query methods. This blog entry will describe how you can implement more advanced queries by using the JPA criteria API. If you have read the previous pa…
http://www.windowsazure.com/en-us/develop/net/fundamentals/cloud-storage/ Managing and analyzing data in the cloud is just as important as it is anywhere else. To let you do this, Windows Azure provides a range of technologies for working with relati…
Transferring Data Without Draining the Battery GET STARTED DEPENDENCIES AND PREREQUISITES Android 2.0 (API Level 5) or higher YOU SHOULD ALSO READ Optimizing Battery Life In this class you will learn to minimize the battery life impact of downloads a…
http://docs.oracle.com/cd/E13222_01/wls/docs81/ConsoleHelp/jdbc_connection_pools.html#1106016 JDBC Connection Pools [Attributes and Console Screen Reference for JDBC Connection Pools] The following sections explain how to configure and manage JDBC co…
1. Hadoop It would be impossible to talk about open source data analytics without mentioning Hadoop. This Apache Foundation project has become nearly synonymous with big data, and it enables large-scale distributed processing of extremely large data…
一.概述     在前面的文章中介绍了inquiry和ACL connection的建立过程.这个连接建立后,L2CAP signaling channel(CID = 0x0001)就已经存在,可以进行L2CAP连接   二.基本概念 HCI ACL Data Format: L2CAP Basic information frame (B-frame): L2CAP的C-Frame,在signaling channel上使用,结构如下: L2CAP是request-response的通信形式…
With Power BI Desktop, you can connect to all sorts of different data sources, then combine and shape them in ways that facilitate making interesting, compelling data analysis and visualizations. In this tutorial, you'll learn how to combine data fro…
Querying and Inserting Data Simple Query Partition Based Query Joins Aggregations Multi Table/File Inserts Dynamic-Partition Insert Inserting into Local Files Sampling Union All Array Operations Map (Associative Arrays) Operations Custom Map/Reduce S…
This is the ninth and the last part of my Spring Data JPA tutorial. Now it is time to take a look of what we have learned, and how we should use it to build better software. Table of Contents The contents of my Spring Data JPA tutorial is given in fo…