文档章节

EAServer 区分数据库事务和组件事务

会哭的鳄鱼
 会哭的鳄鱼
发布于 2017/06/05 00:13
字数 572
阅读 9
收藏 0

我们在做PB的两层开发时候,总是自己控制数据库事务的提交和会滚。没有办法,我们只能这样操作。

默认情况下,在pb中,数据库事务是从第一句SQL语句开始的,直到显示执行commit或则rollback,另外,我们可能除了使用sqlca这一系统自动定义的数据库事务对象以外,可能会自己再创建一个或则几个数据库事务对象以操作不同的数据库。

到了EAS下,我们不能再用这样的思路考虑问题了。

很多人总是试图在组件中使用commit或则rollback来控制数据库的提交和会滚,其实,在EAS下,组件中执行commit和rollback根本不会起到任何作用,EAS下,会自动将这两句放弃而不真正执行,之所以还可以在组件中写这两句,主要是为了让早期的两层的系统能顺利地移植到三层上来。另外,在组件中写commit和rollback,为非是为了给自己的代码增加一些信心罢了。

在组件中,数据库事务已经被组件事务接管,对于客户端来说,如果使用有状态组件,则客户端或组件中可以控制组件事务的提交和会滚,而不能控制数据库事务的提交和会滚。

如果是无状态组件,则当客户端调用完一个函数后,EAS将自动根据该组件的完成情况,决定是提交组件事务还是会滚组件事务。也就是说,无状态组件不用显式调用setcomplete()或则setabort(),但然,你也可以显示调用。

如果涉及到数据库的操作,不管是有状态组件还是无状态组件,你都要在发布组件的时候,选择组件事务为“需要事务”,否则,一旦EAS操作数据库失败,会滚组件事务的时候,客户端将会接受到一个TRANSACTION_ROLLACK的异常。很多人都以为是EAS的BUG,其实是对组件事务和组件的生命周期不理解造成的。

© 著作权归作者所有

共有 人打赏支持
会哭的鳄鱼
粉丝 7
博文 56
码字总数 59004
作品 0
郑州
技术主管
私信 提问
如何区分 try-with-resources 的异常

在使用 try-with-resources 的时候碰到一些关于异常的问题。如下代码: try (Connection conn = ...) { doSomethong(); } 在处理数据库的时候,声明一个数据库连接的资源。在处理数据库操作的...

拉轰的萝卜
2015/12/19
67
0
jfinal中对分布式事务的支持

@JFinal 你好,想跟你请教个问题:在实际项目过程中,用到了quartz组件。为了保证quartz组件中任务额事务与service层事务在同一事务控制中,使用配置文件将quartz组件的事务控制交由应用服务...

qiran
2015/06/24
1K
1
EntityFramework 6.x多个上下文迁移实现分布式事务

前言 自从项目上了.NET Core平台用上了EntityFramework Core就再没碰过EntityFramework 6.x版本,目前而言EntityFramework 6.x是用的最多,无论是找工作而言还是提升自身技术而言皆自身收益,...

jeffcky
2017/09/24
0
0
无法加载 DLL“oramts.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)

最近在做一个小项目,语言VS2005,C#,数据库Oracle9i,但是为了兼容以前数据库SqlServer2005,以便于数据库版本的切换,事务中,仍然使用 System.Transaction.Transcope的分布式事务,但是事务调试时...

zting科技
2017/01/12
0
0
即将发布bbossgroup-2.0 rc版本

即将发布bbossgroup-2.0 rc版本,敬请大家届时关注。 bbossgroup-2.0 rc较之以前的版本,功能更加稳定,更加可靠。而且增加了一些新的功能特性: 2.0版本的aop框架新增特点: 较之以前的版本...

bboss
2010/06/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

js垃圾回收机制和引起内存泄漏的操作

JS的垃圾回收机制了解吗? Js具有自动垃圾回收机制。垃圾收集器会按照固定的时间间隔周期性的执行。 JS中最常见的垃圾回收方式是标记清除。 工作原理:是当变量进入环境时,将这个变量标记为“...

Jack088
昨天
17
0
大数据教程(10.1)倒排索引建立

前面博主介绍了sql中join功能的大数据实现,本节将继续为小伙伴们分享倒排索引的建立。 一、需求 在很多项目中,我们需要对我们的文档建立索引(如:论坛帖子);我们需要记录某个词在各个文...

em_aaron
昨天
27
0
"errcode": 41001, "errmsg": "access_token missing hint: [w.ILza05728877!]"

Postman获取微信小程序码的时候报错, errcode: 41001, errmsg: access_token missing hint 查看小程序开发api指南,原来access_token是直接当作parameter的(写在url之后),scene参数一定要...

两广总督bogang
昨天
31
0
MYSQL索引

索引的作用 索引类似书籍目录,查找数据,先查找目录,定位页码 性能影响 索引能大大减少查询数据时需要扫描的数据量,提高查询速度, 避免排序和使用临时表 将随机I/O变顺序I/O 降低写速度,占用磁...

关元
昨天
14
0
撬动世界的支点——《引爆点》读书笔记2900字优秀范文

撬动世界的支点——《引爆点》读书笔记2900字优秀范文: 作者:挽弓如月。因为加入火种协会的读书活动,最近我连续阅读了两本论述流行的大作,格拉德威尔的《引爆点》和乔纳伯杰的《疯传》。...

原创小博客
昨天
35
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部