Hibernate和EJB和直接写JDBC三种处理事务的讨论及其隔离级别的讨论

04-03-12 henry.t
我用过JDBC直接写系统,也用过了EJB,现在在看Hibernate的书籍。

对事务的处理一直有一些困惑,你们看:

当初我直接用JSP+JAVABEAN的时候,除非要在同一个方法(也就是一个原子操作里面)同时操作两次以上的数据库写的动作的时候才写事务处理,也就是:

CONNECTION.SETAUTOCOMMIT(FALSE);

……EXECUTE……

STATEMENT.COMMIT();

CONNECTION.SETAUTOCOMMIT(TRUE);

其他比如读,一个插入或者修改语句我都不写事务,我那时就有一个疑问,这些操作是不是也要写事务啊?

我只知道当两个有事务的操作同时访问同一资源的时候,是要排队的,但是想不起来其他两种情况会怎么样,1是一个包含在事务里面,一个没有写事务,会不会也要排队呢,2是两个都没有写事务,但是两个都是原子操作,比如读一条记录和写同一条记录,他们相遇会不会排队呢?这个是关于JDBC的疑问,请大家说说你们的看法。

我后来用EJB,发现所有的数据库访问都必须包含在事务里面(REQUIRE),那么这个就有问题了,比如两个读同一字段的方法相遇,他们也要排队,这个显得就有点奢侈了,那么解决这个办法就有一个,设置隔离级别,这个问题我知道,但是包括我在内,我问过不少写EJB的人,他们都不去管这个隔离级别问题,直接使用数据库默认的那个,我就像在这个地方问问大家,你们处理这个问题吗??怎么处理的??有什么经验???大家讨论一下

最后就是Hibernate,我发现也是都必须包含在事务里面,那么一样的,你们处理隔离问题吗?有什么经验???

简单概括一下,首先请大家回答关于使用JDBC的那几个问题,读操作要写事务吗?原子读和写操作要写吗?什么样的情况下要排队?两个不写事务的方法或者一个写了一个没写的相遇以后会排队吗?请仔细回答

Hibernate和EJB的事务隔离你们一般管不管?怎么管啊?不觉得所有方法都写事务浪费??呵呵,希望大家多讨论讨论,主要是学习!

                   

henry.t
2004-03-12 14:08
怎么没有人关心阿

henry.t
2004-03-14 02:55
真使得,这里人气不够啊

banq
2004-03-15 12:30
可以见讨论:

Life Beyond Distributed Transactions

http://natishalom.typepad.com/nati_shaloms_blog/2007/08/lessons-from-am.html

[该贴被admin于2007-11-17 19:37修改过]

chenzugang
2004-03-15 13:45
我也困惑

猜你喜欢
2Go 1 2 下一页