rollback

阅读 / 问答 / 标签

jdbc批量分批次提交commit后能够rollback吗

commit或者rollback。两者选其一,而且必选其一,才能够确保一个事务被可靠的,安全的终止。commit意味着对事务中的操作确定,rollback意味着对事务中的操作否定。

系统提示ora-01555,如何加大rollback segment?

Oracle enforces statement-level read consistency. This ensures that the data returned by a single query is consistent with respect to the time when the query began. Therefore, a query never sees the data changes made by transactions that commit during the course of execution of the query. Usually, a long running query has error ORA-1555 if the data accessed by the query is updated and committed by another user or session after the query has been started. The most common reasons for error ORA-1555 (snapshot too old) are: A long running query due to a poorly qualified data access A high processing time between fetches of the same query Incorrect rollback segment setup A long run query can cause some activities in the ABAP program loop to take too long, even if the SQL statement is correct. For example: SELECT ... Fetch (a long running activity) ENDSELECT Before you try to change the number or size of the rollback segments, check if the problem is caused by expensive queries, such as inefficient application design, wrong index design, or insufficient cost-based optimizer statistics. You can adjust the rollback segment setup by adding more rollback segments or making them larger. you can please have a look at SAP notes 60233 to increase rollback segment size/number. suggest: increase rollback segment number to 40 frist. if you still meet ORA-01555 increase the size.

如何删除windows rollback?

运行 msconfig → 引导 → 把 windows rollback 删了

win10开机显示windows Rollback是什么意思?如何消除?

这是windows 回滚。撤销安装。

数据库触发器中的 select raise(rollback,‘xxx’) 有什么作用,什么意思

刚好我看了,还在张贴版上,给你贴到这你也看看就明白了。raise-function ::= RAISE ( ABORT, error-message ) | RAISE ( FAIL, error-message ) | RAISE ( ROLLBACK, error-message ) | RAISE ( IGNORE ) 当触发器程序执行中调用了上述前三个之一的形式时,则执行指定的ON CONFLICT进程(ABORT, FAIL或者ROLLBACK) 且终止当前查询,返回一个SQLITE_CONSTRAINT错误并说明错误信息。当调用RAISE(IGNORE),当前触发器程序的余下部分,触发该触发器的语句和任何之后的触发器程序被忽略并且 不恢复对数据库的已有改变。 若触发触发器的语句是一个触发器程序本身的一部分,则原触发器程序从下一步起继续执行。使用DROP TRIGGER删除触发器。

程序执行过程中无法执行rollback什么情况

这个完全看你自己的需求。如果是你不需要再存储过程中进行提交,而是由调用程序负责提交或者回滚,那么不需要再存储过程中commit或者rollback如果你不想由调用程序负责提交或者回滚,那么应该在存储过程中进行commit或rollback

mysql 存储过程rollback后面的语句还会执行吗

会执行。一般回滚操作都是写在异常处理,或是sql的最后。如果你的sql中出现错误,代码会立即跳转到错误处理代码上执行,比如回滚,但紧接在错误行之后的代码不会执行的。

ROLLBACK语句只能针对未提交的事务进行回滚操作,已提交的事务是不能回滚的?

答案是 对的

我在oracle中执行了两次updata操作,发现改错了,执行了一次rollback,之前的两次updata都会回滚吗?

是啊

为什么在普通的存储函数中不能使用COMMIT、ROLLBACK和DDL语句?

在ORACLE中,当执行DDL语句时总是需要申请一个DDL锁,以保证DDL语句执行期间,所操作对象不会被其他SESSION修改。譬如,当执行语句ALTERTABLET时,表T将会获得一个排它的DDL锁,语句执行结束,该锁被立即释放。事实上在ORACLE中,这是通过在DDL语句前后加上隐式的COMMIT/ROLLBACK语句来实现的。因此,无论执行成功与否,DDL语句总是要提交的。需要注意的是,DDL语句开始执行之前是先提交的。因此,即使DDL语句执行失败,也不会ROLLBACK掉之前的事务。回到最初的问题。在ORACLE中,一个存储过程块被当作一个语句,如果其中使用了DDL语句,那么如果后续的执行失败,也无法ROLLBACK掉整个事务,这样无疑违反了事务的原子性。前面是复制来的,我自己的理解:关系数据库是应对事务的数据库,在处理同一个事务的同时不可以处理其他的事务,这就是为什么不能在存储过程中使用DDL的原因

oracle中为什么select语句时commit 和rollback按钮也会亮呢?

如果是自治事务的话 也可能 有DML 操作!

分布式事务commit后还能rollback吗

不能。分布式事务commit后不能rollback,只能选一个。分布式事务是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。分布式事务处理(TP)系统旨在协助在分布式环境中跨异类的事务识别资源的事务。

rollback bios什么意思

rollback意思是返回原来的状态(即没更新前的可用稳定状态)。

有关在Oracle里怎样捕获出错?怎样出错回滚rollback

告警日志。后面的一个问题,不知道你在说啥

Rollback何时被执行

有些BAPI本身会做一个commit work操作,不需要(或不能)通过另外执行BAPI_TRANSACTION_COMMIT、BAPI_TRANSACTION_ROLLBACK达到commit或rollback的目的。为了检验bapi_equi_change是否包含database commit,可以在一个程序里调用bapi_equi_change,然后在另外一个程序调用bapi_equi_getdetai,看看能不能读取到修改后的值。

在SQL中,通过使用COMMIT和和ROLLBACK语句可以结束事务。以下说法正确是( )

【答案】:C本题考查数据事务相关知识。事务是一个数据库不可分割操作序列 (要么全做,要么全不做),是数据库中恢复和并发控制基本单位。事务显示结束语句为: COMMIT(正常执行完毕,提交)、ROLLBACK(出现事务内部逻辑错误,回滚)。

win10版本更新时关机,开机选择rollback后无限回退更新和重启怎么解决?

建议格式化全新重装

JDBC连接mysql数据库有个rollback()函数吗?这个函数怎么样?求教

有,事务处理时回滚,一般写在异常处理catch中

关于sql中的事务回滚问题 ,就是commit 和 rollback的顺序问题

配置一个事务处理类:propagation_requiredpropagation_required,-exceptionpropagation_requiredpropagation_required然后在具体的业务调用中继承这个类:这样的话,在magazinemanager中定义的方法在执行excute时若有错就会自动回滚。

在SQL中raiserror和rollback有什么区别?

raiserror的作用是弹出错误信息弹出错误信息,也可以自定义信息内容rollback回滚之前的数据库操作比如事务中有两段insert文,insert into student(ID) values(1),insert into student(ID) values(2)第一条正常执行,第二条执行出现异常,这个时候执行rollback语句,则student表中一条记录也没有。如果不执行rollback,则表中会有条ID为1的记录

sql插入数据使用了commit后仍然可以rollback吗

简单回答:不得行

为什么oracle数据库 中触发器rollback不行 ,使用了自制事物也不行啊?

你是 after触发的,也就是添加或者修改完毕后进行的触发。什么是添加或者修改完毕?如果在一个session中进行添加或者修改后,没有提交,那么仅仅在这个窗口可以查询到,你认为数据库认为修改完毕了么?明显没有,只有commit提交了,也就是事务完成了,才认为修改完毕,那么事务提交以后,怎么rollback。rollback是提交以前的动作,提交以后,rollback没有任何作用的。

【spring-test】spring-test @Rollback回滚

2019-05-28 如果使用spring-test进行单元测试,它会自动回滚即@Rollback(value = true) 但是我在使用过程无论value为true/false,它都无作用 最后,因为spring没有取得事务控制,即aop没有,不能执行回滚 最后在配置文件

试解释 COMMIT 操作和ROLLBACK 操作的语义。

【答案】:COMMIT语句表示事务执行成功地结束(提交),此时告诉系统,数据库要进入一个新的正确状态,该事务对数据库的所有更新都已交付实施(写入磁盘)。ROLLBACK 语句表示事务执行不成功地结束(应该“回退”),此时告诉系统,已发生错误,数据库可能处在不正确的状态,该事务对数据库的所有更新必须被撤销,数据库应恢复该事务到初始状态。

代码中rollback回滚到哪里?

回滚到你本次更新之前的数据

卡巴斯基的回滚(rollback)是什么意思?

分类: 电脑/网络 >> 反病毒 问题描述: 卡巴斯基里面有个rollback,汉化过来后是回滚,这个功能有什么用?是什么意思? 解析: 返回的意思吧,汉化的技术真是惊人,看来还是中文版的比较好。。。

rollback与undo 区别

rollback是指事务的回滚,既将数据库的状态恢复到执行事务之前的状态,其中可能会使用UNDO日志进行回滚。而UNDO是一种记录日志的方式,并不是主要服务于事务回滚,而是主要用于系统从故障中恢复,比如突然断电了,系统要根据UNDO日志对未完成的事务进行处理,保证数据库的状态为执行这些事务前的状态。

sql语言的rollback语句主要作用是

作用:ROLLBACK即回退或回滚,表示事务中有执行失败的操作,这些操作必须被撤销,ROLLBACK告诉系统,已发生错误,数据库可能处在不正确的状态,该事务对数据库的部分或所有更新必须被撤销。

数据库问题!用delete语句把表中一部分数据删除了以后,好像说有个rollback指令可以恢复数

rollback指令 是数据回滚,前提是支持数据回滚。ps:哪种数据库?mysql中innodb引擎表开启了事务,执行dml语句,比如delete、update、insert之类,并且没有提交即commit操作的话,可以执行rollback进行回滚恢复。如果是ddl操作,如drop、create、alter之类的操作时无效的。

java中的rollback()能省略吗

回滚要放在事务里面进行,才能进行回滚;sql里面的事务使用关键字TransAction1:可以用try catch捕获begin trybegin tran update table set a=1;commit tranend Trybegin catchrollback tranend catch2:可以使用error 全局变量begin tranupdate tablename set ad=1111if @@error<>0 begin rollback endcommit tran注意:如果一个事务写了 begin trans ,后面一定要跟上 commit tran或 rollback transaction ,否则可能导致被锁

windows rollback是什么意思

windows Media Rollback 取消更改的意思~ 没有任何的危害~ 如果删除~将会返回到升级前的上一个版本~

oracle存储过程的commit和rollback

commit和rollback不止是存储过程中使用,所有的事务都需要用到这两个关键字commit是指将你所做的update,insert,delete数据的更改提交数据库,完成此次事务,相当于你去商场购物,售货员给你开了票后,你去收银台付款完毕,这样你才可以拿到你要买的货物.rollback是指将你所做的update,insert,delete数据的更改恢复更改前的状态,此次事务取消,相当于你去商场购物,售货员给你开了票后,你却不去收银台付款,而是离开了商场

oracle中,已commit的数据能rollback回滚吗?

commit和rollback从最终结果上讲是相反的。1、commit将数据的变化永久保留2、rollback将变化之前的数据“还原回去”3、一旦发出commit了就不能rollback了。(但是如果你想恢复数据的话还是有办法的flashback是可以的)举例讲:updateasetb=1whereb=2;commit的作用是将这个结果永久化。rollback的作用相当于updateasetb=2whereb=1后再commit;

标准SQL中abort 和rollback的区别

abort与rollback功能一致,区别就是Abort很早以前使用的语句,现在都用rollback,有些SQL中还能使用Abort是为了兼容性考虑的吧。

abap bdc 怎么rollback

BDC是没有办法rollback的,如果要rollback,可以用BAPI

ORACLE中ROLLBACK

执行DDL时,前面的DML会自动提交。

mysql如果一个事务一直没有commit并且也没有rollback会怎样

参数为0,其他语言操作的话会在请求处理完成后自动 ROLLBACK 没有处理的事务

windows rollback什么意思

取消更改的意思

ROLLBACK语句可以对已提交的事务进行回滚操作?

不可以的。 rollback只能回滚 上最近一次commit 后到当前的操作。

sql server 怎么rollback

可以用try catch捕获begin trybegin tran update table set a=1;commit tranend Trybegin catchrollback tranend catch

SQL语句如何rollback

回滚要放在事务里面进行,才能进行回滚;sql里面的事务使用关键字TransAction1:可以用trycatch捕获begintrybegintranupdatetableseta=1;committranendTrybegincatchrollbacktranendcatch2:可以使用error全局变量begintranupdatetablenamesetad=1111if@@error<>0beginrollbackendcommittran注意:如果一个事务写了begintrans,后面一定要跟上committran或rollbacktransaction,否则可能导致被锁

数据库中的rollback怎么个使用法。。。

1>2> select * from test_main3> goid value----------- ---------- 1 ONE 2 TWO 3 THREE(3 行受影响)1> BEGIN TRY2> -- SQL Server 需要显示的定义 开始一个事务.3> BEGIN TRANSACTION;4> -- 插入2条同样的数据,使主键重复,引发错误后回滚事务.5> INSERT INTO test_main(id, value) VALUES (4, "FOUR");6> INSERT INTO test_main(id, value) VALUES (4, "FOUR");7> -- 执行成功后,需要提交事务.8> COMMIT;9> END TRY10> BEGIN CATCH11> PRINT("Main.错误代码 = " + STR(ERROR_NUMBER()));12> PRINT("Main.错误严重级别 = " + STR(ERROR_SEVERITY()));13> PRINT("Main.错误状态代码 = " + STR(ERROR_STATE()));14> PRINT("Main.错误信息 = " + ERROR_MESSAGE());15> -- 回滚事务16> ROLLBACK;17> END CATCH18>19> go(1 行受影响)Main.错误代码 = 2627Main.错误严重级别 = 14Main.错误状态代码 = 1Main.错误信息 = 违反了 PRIMARY KEY 约束 "PK__test_main__47DBAE45"。不能在对象 "dbo.test_main" 中插入重复键。1> select * from test_main;2> goid value----------- ---------- 1 ONE 2 TWO 3 THREE(3 行受影响)

SQL语句如何rollback

在Oracle中提交之后,就不能rollback了

数据库中 rollback 和 commit 是什么时候用的 作用是什么 有什么区别 举几个简单的

通常是用在存储过程或者嵌入式SQL编程中,一个事务如果包含多个动作,尤其是多个改写数据库数据的动作,应该在最后写上commit,而在捕获到错误时,进行rollback。

oracle rollback是回滚整个数据库还是回滚某个用户的操作?

应该是某个用户某次操作的回滚。

审计中的rollforward和rollback是什么意思呀?

监盘日在资产负债表日之前,就叫roll forward,如果在之后就称roll back。审计程序中有一个非常重要的程序,是针对存货期末余额的,即存货监盘。通常企业应该选在资产负债表日执行存货的盘点,而审计师则应在当天执行存货监盘程序,但有些时候客户的盘点日不在资产负债表日。又有些时候承接客户的时候资产负债表日已经过去很久(比如IPO客户,要审计三年一期的财务报表),这时候监盘程序执行的日期可能并不在资产负债表日,并且自监盘日至资产负债表日之间有大量的存货出入库。这时候为了证明资产负债表日的存货数量,就需要抽查自监盘日至资产负债表日之间的出入库单,如果监盘日在资产负债表日之前,就叫roll forward,如果在之后就称roll back。但需要提醒的是,执行这一测试的前提是要保证出入库单的完整性,因此,必须针对相应的内部控制执行控制测试,否则roll测试是没有基础的。审计与会计有人认为审计(AUDIT)是从会计中派生出来的,其本质还是与会计有关。事实上,审计与会计是两种不同的但又有联系的社会活动。审计与会计的联系主要表现在:审计的主要对象是会计资料及其所反映的财政、财务收支活动。会计资料是审计的前提和基础。会计活动是经济管理活动的重要组成部分,会计活动本身就是审计监督的主要对象。我国古代的“听其会计”和西方国家的“听审”,都含有审查会计之意,检查会计资料只是审计的一种手段和方法。随着审计的发展,审计和会计的区别越来越突出,主要表现在:1、产生的前提不同会计是为了加强经济管理,适应对劳动耗费和劳动成果进行核算和分析的需要而产生的;审计是因经济监督的需要,也即是为了确定经营者或其他受托管理者的经济责任的需要而产生的。2、两者性质不同会计是经营管理的重要组成部分,主要是对生产经营或管理过程进行反映和监督;审计则处于具体的经营管理之外,是经济监督的重要组成部分,主要对财政、财务收支及其他经济活动的真实、合法和效益进行审查,具有外在性和独立性。3、两者对象不同会计的对象主要是资金运动过程,也即是经济活动价值方面;审计的对象主要是会计资料和其他经济信息所反映的经济活动。4、方法程序不同会计方法体系由会计核算、会计分析、会计检查三部分组成,包括了记账、算账、报账、用账、查账等内容,其中会计核算方法包括设置账户、复式记账、填制凭证、登记账簿、成本计算、财产清查、会计报表等记账、算账和报账方法,其目的是为管理和决策提供必须的资料和信息。审计方法体系由规划方法、实施方法、管理方法等组成,而实施方法主要是为了确定审计事项、收集审计证据、对照标准评价,提出审计报告与决定,使用资料检查法、实物检查法、审计调查法、审计分析法、审计抽样法等,其目的是为了完成审计任务。5、职能不同会计的基本职能是对经济活动过程的记录、计算、反映和监督;审计的基本职能是监督,此外还包括评价和公证。会计虽说也具有监督职能,但这种监督是一种自我监督行为,主要通过会计检查来实现,会计检查或查账,只是检查账目的意思,主要针对会计业务活动本身,而审计,既包含了检查会计账目,又包括了对计算行为及所有的经济活动进行实地考察、调查、分析、检验,即含审核稽查计算之意。会计检查只是各个单位财会部门的附带职能,而审计是独立于财会部分之外的专职监督检查。会计检查的目的主要是为了保证会计资料的真实性和准确性,其检查范围、深度、方式均受到限制,而审计的目的在于证实财政、财务收支的真实、合法、效益,审计检查会计资料只是实现审计目的的手段之一,但不是唯一手段。任何审计都具有三个基本要素,即审计主体、审计客体和审计授权或委托人。审计主体,是指审计行为的执行者,即审计机构和审计人员,为审计第一关系人。审计客体,指审计行为的接受者,即指被审计的资产代管或经营者,为审计第二关系人;审计授权或委托人,指依法授权或委托审计主体行使审计职责的单位或人员,为审计第三关系人。一般情况,第三关系人是财产的所有者,而第二关系人是资产代管或经营者,他们之间有一种经济责任关系。第一关系人——审计组织或人员,在财产所有者和受托管理或经营者之间,处于中间人的地位,这要对两方面关系人负责,既要接受授权或委托对被审计单位提出的会计资料认真进行审查。又要向授权或委托审计人(即财产所有者)提出审计报告,客观公正地评价受托代管或经营者的责任和业绩。为此,审计组织或审计人员进行审计活动,必须具有一定独立性,不受其他方面的干扰或干涉,这是审计区别于其他管理的一个根本属性。审计本质是一项具有独立性的经济监督活动。这一表述既符合审计产生的目的,也符合我国宪法关于建立国家审计机关,实行审计监督制度的规定精神。

rollback与undo 区别

rollback是指事务的回滚,既将数据库的状态恢复到执行事务之前的状态,其中可能会使用UNDO日志进行回滚。而UNDO是一种记录日志的方式,并不是主要服务于事务回滚,而是主要用于系统从故障中恢复,比如突然断电了,系统要根据UNDO日志对未完成的事务进行处理,保证数据库的状态为执行这些事务前的状态。

SQL中ROLLBACK是作什么用的?

回滚!一般用于事物中

rollback是什么意思啊

回滚(Rollback)指的是程序或数据处理错误,将程序或数据恢复到上一次正确状态的行为。回滚包括程序回滚和数据回滚等类型。删除由一个或多个部分完成的事务执行的更新。为保证应用程序、数据库或系统错误后还原数据库的完整性,需要使用回滚。回滚泛指程序更新失败, 返回上一次正确状态的行为。回滚对程序员意味着非常严重的失误。所以回滚次数往往与程序员的薪金直接联系。主流互联网公司通常都将回滚定位为最严重的事故。回滚与恢复有本质的区别。

rollback在sql中的作用

作用:ROLLBACK即回退或回滚,表示事务中有执行失败的操作,这些操作必须被撤销,ROLLBACK告诉系统,已发生错误,数据库可能处在不正确的状态,该事务对数据库的部分或所有更新必须被撤销。注意点:当执行完DML语句后,处理的一些数据都会放在回滚段中,就等待用户执行commit和rollback,当执行完commit和rollback后,回滚段中的数据就会被删除。DDL是隐性提交的,不能回滚。而最常用的DML语言(update,delete,insert)是需要进行显示提交的,也就是说需要手动地去commit。

有人知道 rollback tran 在SQL SERVER中的意思吗?

Tran 全写:Transaction 就是事务处理,通俗的说就是处理一件事情的过程。而 RollBack 则是回滚,两个连起来,在SQL Server 中就是撤销先前准备做的事情。比如,你先前在事务中准备插入记录,使用,这个之后,则插入操作不再执行并撤销已插入的部份记录。

数据库的问题,事务定义中,COMMIT语句和ROLLBACK语句的作用是什么?

COMMIT是表示【提交】,就是提交事务的所有操作。具体地说,就是将事务中的所有对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束。ROLLBACK指的是【回滚】,即是在事务的运行过程中,发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有的已完成的操作全部撤销,回滚到事务开始之前的状态。总之,就是一个成功,一个不成功希望对你有帮助

rollback和fallback的区别

roll back向后滚动fall back后退、撤退例句:The car began to roll back down the hill. 汽车开始倒着往山下滑。The enemy fell back as our troops advanced. 我军部队挺进,敌军向后撤退。

commit transaction 和 rollback transaction 有何区别与联系?

hanwenjingaa2012-5-15 17:40commit transcation :标志一个成功的隐性事务或显性事务的结束,提交事务并永久保存在数据库中。 rollback transcation:在事务中出错或用户决定取消事务,数据回滚到最初始状态。

sqlserver中的rollback transaction要跟COMMIT TRAN成对存在吗?

rollback 是回滚事务,只要没有commit提交,还可以恢复之前的数据。commit是提交事务,你不提交事务,你之前所有更改的数据别人在查看是看不到只能看到之前的数据,commit提交以后,别人才可看到你更新后的数据

Transaction rolled back because it has been marked as rollback-only

Transaction rolled back because it has been marked as rollback-only事务已回滚,因为它被标记成了只回滚<prop key="query*">PROPAGATION_REQUIRED,readOnly</prop>query开头的方法readOnly,所以只能select,insert/update/delete操作必然回滚

问javax.transaction.RollbackException 这个问题怎么解决

后台代码如下:public List<Project> findAllActivitiesByDay(){ Set<User> useres=userDAO.findUserByEnabled(true);List<Project> list3 = new ArrayList<Project>();Calendar time=Calendar.getInstance();int month=time.get(Calendar.MONTH);int year=time.get(Calendar.YEAR);int day=time.get(Calendar.DAY_OF_MONTH);for(int i=day;i>0;i--){ Project project2=new Project();project2.setCreateDate(Calendar.getInstance());project2.getCreateDate().set(year, month, i, 0, 0, 0);Calendar atime=project2.getCreateDate();Set<Activity> acts=project2.getActivities();Set<Task> tasks=project2.getTasks();Set<ProjectFinance> finances=project2.getProjectFinances();List<User> users=new ArrayList<User>(); users.addAll(useres); for(User user:users){int id=user.getId();StringBuffer sb = new StringBuffer("select a from Activity a where 1=1 and a.activityTime=""+atime+"" and a.userByCreater.id=""+id+"""); List<Activity> activitys=activityDAO.executeQuery(sb.toString()); if(activitys.size()>0){ Activity activity=activitys.get(0); Calendar actTime=activity.getActivityTime(); Calendar createTime=activity.getCreatedDate(); int actDay=actTime.get(Calendar.DAY_OF_MONTH); int createDay=createTime.get(Calendar.DAY_OF_MONTH); int createHour=createTime.get(Calendar.HOUR); if(actDay==createDay){ acts.add(activity); }else{ if(actDay+2>createDay&&createHour<11) { acts.add(activity); } else{ Task task=new Task(); task.setUserByResponser(user); tasks.add(task); } } }else{ ProjectFinance finance=new ProjectFinance(); finance.setUserByCreater(user); finances.add(finance); }}list3.add(project2);}return list3;}报如下错误:javax.transaction.RollbackException: Transaction set to rollback onlyat com.atomikos.icatch.jta.TransactionImp.commit(TransactionImp.java:312)at com.atomikos.icatch.jta.TransactionManagerImp.commit(TransactionManagerImp.java:612)at com.atomikos.icatch.jta.UserTransactionImp.commit(UserTransactionImp.java:168)at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1010)at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754)at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:723)at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:393)at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:120)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)at $Proxy59.findAllActivitiesByDay(Unknown Source)

java 事务异常transaction error,need to rollback.duplicate会缓存吗

1.事务就是由几个步骤组成的业务操作,要么全部成功,要么全部失败。2.JDBC中就是把事务设置为手动提交,等完成多个操作后,进行一次性提交。3.要在Hibernate中使用事务,可以配置Hibernate事务为JDBCTransaction或者JTATransaction,这两种事务的生命周期不一样,可以在hibernate.cfg.xml中指定使用的是哪一种事务。以下配置为使用JDBC事务。注:如果不进行配置,Hibernate也会默认使用JDBC事务。 <session-factory>……<property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>……</session-factory>Hibernate 使用JDBC transaction处理方式如下所示:Transaction tx = null;try { tx = sess.beginTransaction(); // do some work ... tx.commit();}catch (RuntimeException e) { if (tx != null) tx.rollback(); throw e; // or display error message}finally { sess.close();}JTA(java Transaction API)是事务服务的JavaEE解决方案。本质上,它是描述事务接口的JavaEE模型的一部分。JTA具有的3个接口:UserTransaction接口、TransactionManager接口和Transaction接口,这些接口共享公共的事务操作。UserTransaction能够执行事务划分和基本的事务操作,TransactionManager能够执行上下文管理。在一个具有多个数据库的系统中,可能一个程序将会调用几个数据库中的数据,需要一种分布事务,或者准备用JTA来管理Session的长事务,那么就需要使用JTATransaction。在hibernate.cfg.xml中配置JTA事务管理:<session-factory>……<property name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>……</session-factory>下面是一个实际应用的JTA示例:// BMT(bean管理事务) idiom with getCurrentSession()try { UserTransaction tx = (UserTransaction)new InitialContext() .lookup("java:comp/UserTransaction"); tx.begin(); // Do some work on Session bound to transaction factory.getCurrentSession().load(...); factory.getCurrentSession().persist(...); tx.commit();}catch (RuntimeException e) { tx.rollback(); throw e; // or display error message}4.声明式事务处理通过AOP的实现把事物管理代码作为方面封装来横向插入到业务代码中,使得事务管理代码和业务代码解藕。

Transaction rolled back because it has been marked as rollback-only

联系注册商,去申请解锁