[FATAL_ERROR] Uncaught PDOException: There is already an active transaction ... $mysql->beginTransaction(); 出现这个错误就是事务嵌套了.意思就是本来一段代码中已经开启了事务处理, 然后在这段代码中又写多了一个事务,同时开启了两个事务处理就会冲突.…
执行下面的代码报错: $pdo = new PDO('mysql:dbname=db_test;host=localhost', 'root', '123456'); PHP Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] No such file or directory in test.php:2 Stack trace: #0 test.php(2): PDO->__construct('mysql:dbname=db.…
在整合Spring4+hibernate4时候,当代码执行到dao中CRUD操作时,报了一个异常, org.hibernate.HibernateException: createQuery is not valid without active transaction ... 因为我用到的是session是通过sessionFactory.getCurrentSession()方法获得到的,这个session是和事务(transaction)绑定的,这个异常是告诉我,session的操作没有在…
如题:ThinkPHP v3.2.3 数据库读写分离,开启事务时报错: ERR: There is no active transaction 刚开始以为是数据表引擎不对造成的,因为 有几张表的引擎是 MyISAM,后来调整过来了,改为 InnoDB,还是报错.应该是TP 底层连数据库时,切换数据库连接时出了点问题,解决方案如下: 打开文件 ThinkPHP/Library/Think/Db/Driver.class.php,调整内容如下: /** * 启动事务  * * @access pub…
非常多时候我们使用hibernate的session时,都是让session在某一执行环境中保持其唯一. 比如在同一线程内用同一个session.在同一方法内用同一session,这样我们就能够用session里面缓存好的数据.但.我想说的不是缓存,且听我一一道来.       近期试用spring3.0.2+struts2.18+hibernate3.3.2学习搭建一个web项目,出现了一个相当郁闷的问题. 就是我明明配置好了spring管理hibernate事务了,当我在dao中运行hibe…
在spring4+hibernate4整合过程中,使用@Transactional注解事务会报"Exception in thread "main" org.hibernate.HibernateException: save is not valid without active transaction"错误,具体错误如下: Exception in thread "main" org.hibernate.HibernateException:…
1.错误信息 HTTP Status 500 - createQuery is not valid without active transaction type Exception report message createQuery is not valid without active transaction description The server encountered an internal error that prevented it from fulfilling this…
Spring & Hibernate 整合异常记录: org.hibernate.HibernateException: getFlushMode is not valid without active transaction 原因 <prop key="hibernate.current_session_context_class">thread</prop> 注释该配置即可.…
org.hibernate.HibernateException: save is not valid without active transaction at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:340) at com.sun.proxy.$Proxy4.save(Unknown Source) at…
原文:https://blog.csdn.net/yinjian520/article/details/8666695 很多时候我们使用hibernate的session时,都是让session在某一运行环境中保持其唯一.例如在同一线程内用同一个session,在同一方法内用同一session,这样我们就可以用session里面缓存好的数据.但,我想说的不是缓存,且听我一一道来. 最近试用spring3.0.2+struts2.18+hibernate3.3.2学习搭建一个web项目,出现了一个…
场景: 在使用spring整合hibernate调用的HibernateTemplate时报错解决: 在spring配置文件中添加事务的配置 <bean id="hibernateTransactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager"> <!-- 注入sessionFactory,配置sessionFactory -->…
The fix is fairly simple: if you want a Dapper query to participate in a connection, explicitly denote that intent: private async Task<EResult> ProcessDepotAfterDownload(ManifestJob request, DepotManifest depotManifest) { using (var db = await Datab…
当 Hibernate 和 Spring 整合时,在 Spring 中指定的 Hibernate.cfg.xml 文件内容中要注释掉以下内容: <!-- Enable Hibernate's automatic session context management --> <!-- <property name="current_session_context_class">thread</property> -->这样,才能将 Hibe…
如果增加配置了current_session_context_class属性,查询的时候需要session.beginTrasaction()来开启事务…
在进行使用注解来配置Spring和Hibernate的整合的时候, 遇到了这个问题, 它的意思是说在调用'get'方法的时候,没有活动的事务. 原因分析: Hibernate强制要求在进行数据库操作的时候, 都必须包含在事务当中. 这个时候因为没有事务的管理, 因此报了这个错误. 解决办法: 当然是为这个方法开启事务, 开始事务的方法有两种, 1. 使用Transaction transaction = session.beginTransaction(), 或者是 /** * 查询用户 * @…
1.下载 XAMPP 套件: https://sourceforge.net/projects/xampp/files/XAMPP%20Linux/stats/timeline  下载的文件是 xampp-linux-x64-7.0.6-0-installer.run 2. 执行 ./xampp-linux-x64-7.0.6-0-installer.run 3. 启动 /opt/lampp/lampp start 4. 下载禅道 ZenTaoPMS.8.0.stable.zip ,解压后,把z…
  <?php   /** * 实现数据库的主从分离,该类会维护多个数据库的配置:一个主数据库配置,多个从数据库的配置. * 具体使用主数据库还是从数据库,使用如下规则: * 1.CDbCommandExt的prepare方法会根据sql语句是读还是写,来调用CDbConnectionExt的getPdoInstance方法,来获取主数据库或者从数据库链接,默认使用主数据库 * 2.如果当前处于一个事务中,那么无视第一条规则,在事务结束前全部使用主数据库 * 3.如果从数据库的配置为空,则使用主…
1.错误:Uncaught PDOException: SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction 2.问题 : 代码写完之后,用XDebug调试代码.调试的代码中包含有PDO事务.在调试的时候,事务开启后,停止了调试,事务提交的语句没有运行.在debug进程未退出的情况,又运行同一段代码,一直提示上面的错误. 3.相同的表记录被锁定了,后面的没法锁定或者更…
刚开始学习php的时候是在wamp环境下开发的,后来才接触到 lnmp 环境当时安装lnmp是按照一大长篇文档一步步的编译安装,当时是真不知道是在做什么啊!脑袋一片空白~~,只知道按照那么长的一篇文档一步步的来做就能实现lnmp的搭建.最近工作闲暇之余又想起来了这个悲惨的事情,然后我就想能不能不看文档就把lnmp环境搭建起来呢(当然我知道有一键安装脚本这个东东,我们暂时把它忽略因为它真的是太简单啦)?当时我的想法是反正  l(linux)+ n(nginx)+ m(mysql)+ p(php)设…
我们继续 MySQLi 扩展的学习,上篇文章中提到过,MySQLi 的扩展相对于 PDO 来说功能更加的丰富,所以我们依然还会在学习过程中穿插各种 MySQLi 中好玩的方法函数.不过,今天的主角是 MySQLi 中如何执行 SQL 语句以及多条 SQL 语句的执行. 连接与选择数据库 首先是一个小内容的学习分享,依然还是连接数据库,不过这次我们用另外一种方式来进行连接. $mysqli = new mysqli(); $mysqli->real_connect("localhost&qu…
要说 PDO 中最强大的功能,除了为不同的数据库提供了统一的接口之外,更重要的就是它的预处理能力,也就是 PDOStatement 所提供的功能.因为它的存在,才让我们可以安心地去使用而不用操心 SQL 语句的拼接不好所带来的安全风险问题.当然,预处理也为我们提升了语句的执行效率,可以说是 PDO 的另一大杀器. PDOStatement 类 PDOStatement 类其实就是代表一条预处理语句,并在该语句被执行后代表一个相关的结果集.它提供一些方法,让我们能够对这条预处理语句进行操作. $d…
今天这篇文章,我们来简单的学习一下 PDO 中的预处理语句以及事务的使用,它们都是在 PDO 对象下的操作,而且并不复杂,简单的应用都能很容易地实现.只不过大部分情况下,大家都在使用框架,手写的机会非常少. 预处理语句功能 预处理语句就是准备好一个要执行的语句,然后返回一个 PDOStatement 对象.一般我们会使用 PDOStatement 对象的 execute() 方法来执行这条语句.为什么叫预处理呢?因为它可以让我们多次调用这条语句,并且可以通过占位符来替换语句中的字段条件.相比直接…
PDO 已经是 PHP 中操作数据库事实上的标准.包括现在的框架和各种类库,都是以 PDO 作为数据库的连接方式.基本上只有我们自己在写简单的测试代码或者小的功能时会使用 mysqli 来操作数据库.注意,普通的 mysql 扩展已经过时了哦! PDO 实例 首先来看看一个 PDO 实例是如何初始化的. $dns = 'mysql:host=localhost;dbname=blog_test;port=3306;charset=utf8'; $pdo = new PDO($dns, 'root…
在 PDO 的学习过程中,我们经常会在使用事务的时候加上 try...catch 来进行事务的回滚操作,但是大家有没有注意到默认情况下 PDO 是如何处理错误语句导致的数据库操作失败问题呢?今天,我们就来学习一下. PDO 中的错误与错误处理模式简介 PDO 提供了三种不同的错误处理方式: PDO::ERRMODE_SILENT,这是 PDO 默认的处理方式,只是简单地设置错误码,可以使用 PDO::errorCode() 和 PDO::errorInfo() 方法来检查语句和数据库对象 PDO…
在逝去的2016后半年,由于项目需要支持数据的快速更新和多用户的高并发负载,我试水SQL Server 2016的In-Memory OLTP,创建内存数据库实现项目的负载需求,现在项目接近尾声,系统运行稳定,写一篇博客,记录一下使用内存数据库的经验. SQL Server 2016的In-Memory OLTP,通俗地讲,是内存数据库,使用内存优化表(Memory-Optimized Table,简称MOT)来实现,MOT驻留在内存中,使用 Hekaton 内存数据库引擎访问.在查询MOT时,…
内存优化表(Memory-Optimized Table,简称MOT)使用乐观策略(optimistic approach)实现事务的并发控制,在读取MOT时,使用多行版本化(Multi-Row versioning)创建数据快照,读操作不会对数据加锁,因此,读写操作不会相互阻塞.写操作会申请行级锁,如果两个事务尝试更新同一数据行,SQL Server检测到写-写冲突,产生错误(Error 41302),将后后创建的事务作为失败者,回滚事务的操作.虽然MOT事务使用无锁结构(Lock-Free)…
本文用于收集在运维中经常使用的系统内置函数,持续整理中 一,常用Metadata函数 1,查看数据库的ID和Name db_id(‘DB Name’),db_name('DB ID') 2,查看对象的ID和Name,对象的Schema,对象的定义 OBJECT_ID ( 'schema_name . object_name','object_type' ) OBJECT_NAME ( object_id [, database_id ] ) OBJECT_SCHEMA_NAME ( object…
MySQL5.5 中引入了 metadata lock. 顾名思义,metadata lock 不是为了保护表中的数据的,而是保护 database objects(元数据)的.包括表结构.schema.存储过程.函数.触发器.mysql的调度事件(events). 要理解 metadata lock 最重要的一点就是:将 metadata lock放到数据库事务的语义中来理解.metadata lock 的作用就是当一个事务在执行时,事务涉及到的所有元数据(metadata,也就是 datab…
今天查看Job的History,发现Job 运行失败,错误信息是:“The transaction log for database 'xxxx' is full due to 'ACTIVE_TRANSACTION'.” 错误消息表明:数据库的事务日志文件空间耗尽,log 文件不能再存储新的transaction log. SQL Server将事务日志文件在逻辑上划分为多个VLF(Virtual Log Files),将这些VLF组成一个的环形结构,以VLF为重用单元.如果一个VLF 中存在…
enq: TX - row lock contention等待事件,这个是数据库里面一个比较常见的等待事件.enq是enqueue的缩写,它是一种保护共享资源的锁定机制,一个排队机制,先进先出(FIFO).enq: TX - row lock contention等待事件,OACLE将其归类为application级别的等待事件.有些场景是因为应用逻辑设计不合理造成的.下面我们看看enq: TX - row lock contention的英文介绍: This wait indicates ti…