- 浏览: 448332 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (229)
- gef (1)
- emf (0)
- rcp (2)
- 杂谈 (3)
- draw2d (2)
- xml (1)
- spring (16)
- osgi (1)
- jsp (6)
- hibernate (8)
- j2se (41)
- oracle (25)
- js (23)
- ognl (1)
- struts2 (2)
- webwork (1)
- prototype (1)
- dwr (3)
- struts (7)
- axis2 (3)
- axis1 (6)
- lucene (9)
- pop3 (1)
- aspectj (1)
- 网络协议 (6)
- bat (6)
- Quartz (5)
- jms (3)
- jndi (7)
- 网络爬虫 (7)
- acegi (1)
- linux (5)
- 缓存 (1)
- mysql (1)
- 在使用Java处理图形应用时,经常有人推荐设置 -Djava.awt.headless=true,具体含义和效果查了一下,记录在这里分享 Headless模式是系统的一种配置模式。在该模式下,系统缺少了显示设备、键盘或鼠标。 Headless模式虽然不是我们愿意见到的,但事实上我们却常常需要在该模式下工作,尤其是服务器端程序开发者。因为服务器(如提供Web服务的主机)往往可能缺少前述设备,但又需要使用他们提供的功能,生成相应的数据,以提供给客户端(如浏览器所在的配有相关的显示设备、键盘和鼠标的主 (1)
最新评论
-
hanmiao:
注释掉的那壹行少了壹個斜线,楼主...
servlet导出excel -
天下无贼:
Thread.Interrupt方法,只是通过扔出异常的方式, ...
Java Thread.interrupt 害人! 中断JAVA线程(zz) -
天下无贼:
呵呵,是你自己写错了。
Java Thread.interrupt 害人! 中断JAVA线程(zz) -
MO_ZHUANG_D:
如果是真的就感激不尽了
Axure RP教程 -
小嘴冰凉:
在开始执行的时候,如果是数据库存储,程序会从数据库中查job信 ...
quartz的持久化
事务管理概述
“事务”是一个逻辑工作单元,它包括一系列的操作。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。事务包括4个基本特性,也就是我们常说的ACID,其中包括:
1.Atomic(原子性,这里的“原子”即代表事务中的各个操作不可分割)
事务中包含的操作被看作是一个逻辑单元,这个逻辑单元中的操作要么全部成功,要么全部失败。
2.Consistency(一致性)
一致性意味着,只有合法的数据才会被写入数据库,否则会回滚到最初状态。事务确保数据库的状态从一个一致状态转变为另一个一致状态。
3.Isolation(隔离性)
多个事务并发执行时,一个事务的执行不应影响其他事务的执行。
4.Durability(持久性)
已被提交的事务对数据库的修改应该永久保存在数据库中。
并发事务处理下产生的意外情况
1.丢失更新
事务1:更新一条记录。
事务2:更新事务1处理中的记录。
事务1:调用commit进行提交。
事务2:调用commit进行提交。
此时事务1所做的修改完全被事务2的修改覆盖,称为丢失更新。
当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,会发生丢失更新问题。因为每个事务都不知道其它事务的存在,最后的更新将重写由其它事务所做的更新,这将导致数据丢失。
2.脏读(Dirty Read):一个事务读取到了另外一个事务没有提交的数据,所以你可能会看到一些最后被另一个事务回滚掉的数据。
事务1:更新一条记录。
事务2:读取事务1更新的记录。
事务1:调用commit进行提交或调用rollback进行回滚。
此时事务2读取到的数据是保存在数据库内存中的数据,称为脏读。读到的数据为脏数据
详细解释:脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是脏数据,依据脏数据所做的操作可能是不正确的。
3.不可重复读(NonRepeatable Read):在同一事务中,两次读取同一数据,得到内容不同。即一个事务再次读取之前曾经读取过的数据时,发现该数据已经被另一个已提交的事务修改。
事务1:查询一条记录。
事务2:更新事务1查询的记录。
事务2:调用commit进行提交。
事务1:再次查询上次的记录。
此时事务1对同一数据查询了两次,可得到的内容不同,称为不可重复读。
4.幻读(Phantom Read):同一事务中,用同样的操作读取两次,得到的记录数不相同。即一个事务重新执行一个查询,返回一批符合查询条件的记录,但这些记录中包含了因为其它最近提交的事务而产生的新记录。
事务1:查询表中所有记录
事务2:插入一条或一批记录
事务2:调用commit进行提交
事务1:再次查询表中所有记录
此时事务1两次查询到的记录是不一样的,称为幻读
详细解释:幻读是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样。
事务隔离等级
为了避免并发事务处理下产生的意外情况,标准SQL规范定义了4中事务隔离等级。
1.Read Uncommitted
最低等级的事务隔离,直译就是读“未提交”,意思就是即使另一个并发事务还没有提交,当前事务也能读到这个改变,这是很不安全的。Read Uncommitted允许脏读,但不允许更新丢失。如果一个事务已经开始写数据,则另外一个事务则不允许同时进行写操作,但允许其他事务读此行数据。
此级别的事务隔离等级对于大多数逻辑严格的应用系统而言是难以接受的,脏读取的出现将为系统的并发逻辑带来极大隐患。
2.Read Committed
直译就是读“提交”,意思就是一个事务不会读到另一个事务已修改但未提交的数据。Read Committed允许不可重复读取,但不允许脏读取。读取数据的事务允许其他并发事务继续访问该行数据,但是未提交的写事务将会禁止其他事务访问该行。
此级别的事务隔离等级是最常用的,并且是大多数数据库的默认隔离级别,同时也适用于大多数系统。
3.Repeatable Read
直译就是“可重复读取”,这就是说同一事务先后执行相同查询语句的时候,得到的结果是一样的。这也意味着一个事务不可能更新已经由另一个事务读取但未提交(回滚)的数据。Repeatable Read禁止不可重复读取和脏读,但是有时可能出现幻读。读取数据的事务将会禁止写事务(但允许读事务),写事务则禁止任何其他事务。
4.Serializable
最高等级的事务隔离级别,也提供了最严格的隔离机制。直译就是“序列化”,意思是说这个事务执行的时候不允许别的事务并发执行。Serializable提供严格的事务隔离级别,可以防止脏读,不可重复读取和幻读,它要求事务序列化执行,事务只能一个接着一个地执行,但不能并发执行。
“事务”是一个逻辑工作单元,它包括一系列的操作。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。事务包括4个基本特性,也就是我们常说的ACID,其中包括:
1.Atomic(原子性,这里的“原子”即代表事务中的各个操作不可分割)
事务中包含的操作被看作是一个逻辑单元,这个逻辑单元中的操作要么全部成功,要么全部失败。
2.Consistency(一致性)
一致性意味着,只有合法的数据才会被写入数据库,否则会回滚到最初状态。事务确保数据库的状态从一个一致状态转变为另一个一致状态。
3.Isolation(隔离性)
多个事务并发执行时,一个事务的执行不应影响其他事务的执行。
4.Durability(持久性)
已被提交的事务对数据库的修改应该永久保存在数据库中。
并发事务处理下产生的意外情况
1.丢失更新
事务1:更新一条记录。
事务2:更新事务1处理中的记录。
事务1:调用commit进行提交。
事务2:调用commit进行提交。
此时事务1所做的修改完全被事务2的修改覆盖,称为丢失更新。
当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,会发生丢失更新问题。因为每个事务都不知道其它事务的存在,最后的更新将重写由其它事务所做的更新,这将导致数据丢失。
2.脏读(Dirty Read):一个事务读取到了另外一个事务没有提交的数据,所以你可能会看到一些最后被另一个事务回滚掉的数据。
事务1:更新一条记录。
事务2:读取事务1更新的记录。
事务1:调用commit进行提交或调用rollback进行回滚。
此时事务2读取到的数据是保存在数据库内存中的数据,称为脏读。读到的数据为脏数据
详细解释:脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是脏数据,依据脏数据所做的操作可能是不正确的。
3.不可重复读(NonRepeatable Read):在同一事务中,两次读取同一数据,得到内容不同。即一个事务再次读取之前曾经读取过的数据时,发现该数据已经被另一个已提交的事务修改。
事务1:查询一条记录。
事务2:更新事务1查询的记录。
事务2:调用commit进行提交。
事务1:再次查询上次的记录。
此时事务1对同一数据查询了两次,可得到的内容不同,称为不可重复读。
4.幻读(Phantom Read):同一事务中,用同样的操作读取两次,得到的记录数不相同。即一个事务重新执行一个查询,返回一批符合查询条件的记录,但这些记录中包含了因为其它最近提交的事务而产生的新记录。
事务1:查询表中所有记录
事务2:插入一条或一批记录
事务2:调用commit进行提交
事务1:再次查询表中所有记录
此时事务1两次查询到的记录是不一样的,称为幻读
详细解释:幻读是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样。
事务隔离等级
为了避免并发事务处理下产生的意外情况,标准SQL规范定义了4中事务隔离等级。
1.Read Uncommitted
最低等级的事务隔离,直译就是读“未提交”,意思就是即使另一个并发事务还没有提交,当前事务也能读到这个改变,这是很不安全的。Read Uncommitted允许脏读,但不允许更新丢失。如果一个事务已经开始写数据,则另外一个事务则不允许同时进行写操作,但允许其他事务读此行数据。
此级别的事务隔离等级对于大多数逻辑严格的应用系统而言是难以接受的,脏读取的出现将为系统的并发逻辑带来极大隐患。
2.Read Committed
直译就是读“提交”,意思就是一个事务不会读到另一个事务已修改但未提交的数据。Read Committed允许不可重复读取,但不允许脏读取。读取数据的事务允许其他并发事务继续访问该行数据,但是未提交的写事务将会禁止其他事务访问该行。
此级别的事务隔离等级是最常用的,并且是大多数数据库的默认隔离级别,同时也适用于大多数系统。
3.Repeatable Read
直译就是“可重复读取”,这就是说同一事务先后执行相同查询语句的时候,得到的结果是一样的。这也意味着一个事务不可能更新已经由另一个事务读取但未提交(回滚)的数据。Repeatable Read禁止不可重复读取和脏读,但是有时可能出现幻读。读取数据的事务将会禁止写事务(但允许读事务),写事务则禁止任何其他事务。
4.Serializable
最高等级的事务隔离级别,也提供了最严格的隔离机制。直译就是“序列化”,意思是说这个事务执行的时候不允许别的事务并发执行。Serializable提供严格的事务隔离级别,可以防止脏读,不可重复读取和幻读,它要求事务序列化执行,事务只能一个接着一个地执行,但不能并发执行。
发表评论
-
Oracle reverse函数
2011-12-08 13:56 1987Oracle reverse函数 2007-10-25 14: ... -
教你快速掌握Oracle数据库中的like优化-性能调优
2011-12-08 13:55 11471。尽量不要使用 like '%..%' 2 ... -
嵌套SQL的查询速度比较分析
2011-12-08 13:55 1290嵌套SQL的查询速度比较分析 文章中使用Oracle自带的H ... -
Oracle执行计划详解
2011-07-26 11:40 1023Oracle执行计划详解 --- 作者:TTT BLOG 本文 ... -
闲谈Oracle执行计划的步骤顺序
2011-07-13 17:45 1227经过长时间学习Oracle, ... -
oracle表分区详解
2010-12-01 12:17 970此文从以下几个方面来整理关于分区表的概念及操作: ... -
回滚段探究
2010-10-26 17:09 857http://blog.csdn.net/biti_rainy ... -
block的一些概念
2010-10-26 10:10 1103http://space.itpub.net/12361284 ... -
Oracle Buffer Cache原理总结(一)
2010-10-26 09:53 1445http://space.itpub.net/?uid-123 ... -
oracle的表空间、分区表、以及索引的总结
2010-05-18 15:32 1240表空间: Oracle的UNDOTBS01.DBF文件太大的 ... -
数据库中事务机制的进阶使用(整理)
2009-11-02 10:13 1606在前面的两篇blog中,我写了些关于数据库中的锁方面的一些内 ... -
PL/SQL Developer使用技巧
2009-08-31 13:24 8521、PL/SQL Developer记住登 ... -
oracle中的角色
2009-08-31 13:23 968一、何为角色? 我 ... -
oracle的异常处理
2009-08-18 11:07 912oracle提供了预定义例外、非预定义例外和自定义例外三 ... -
在Oracle中使用自治事务保存日志表条目
2009-08-18 10:41 1113[size=x-large] [摘要] ... -
Oracle内存参数调优技术详解
2009-07-31 16:46 1625[size=large] 前言 近来公司技术,研发都在 ... -
如何在WebLogic 8.1.6环境中查找有连接池泄漏的代码
2009-07-31 13:09 2661[size=large] 解决连接池泄漏步骤 登录we ... -
Oracle导出程序Exp的使用
2009-07-16 12:23 2702http://www.blogjava.net/xiaohu/ ... -
createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,Re
2008-11-25 17:14 1053用缺省设置创建时,ResultSet 是一种只能访问一次(on ... -
oracle 闪回查询
2008-11-21 14:22 1388--对一般用户如果想执行 闪回查询 需要设置下列3个参数! 1 ...
相关推荐
74LS138_中文资料.pdf74LS138_中文资料.pdf74LS138_中文资料.pdf74LS138_中文资料.pdf74LS138_中文资料.pdf74LS138_中文资料.pdf
linux内核源码,ls命令源码,包括四个文件ls.c、ls.h、ls-dir.c、ls-ls.c、ls-vdir.c。
74LS161_中文资料 74LS161_中文资料
LS_MMSE_mmse_mmse信道估计_MMSE信道估计_LS算法_信道估计mmse_源码.zip
LS_MMSE_mmse_mmse信道估计_MMSE信道估计_LS算法_信道估计mmse_源码.rar
DM74LS165_中文电子手册.pdfDM74LS165_中文电子手册.pdfDM74LS165_中文电子手册.pdfDM74LS165_中文电子手册.pdf
自己写的单片机程序,基于C51,可检测74ls00,74ls47,74ls390,74ls151,74ls194芯片,程序较为简单,给大家分享。
mmse接收 不错的程序,希望能够给大家参考
这个是关于OFDM系统的信道估计的算法的两种方法,分别是OFDM的最小二乘和最小均方误差估计的仿真程序代码
74LS191_中文资料 74LS191_中文资料
LS vs MMSE estimator for SISO OFDM system
74LS139_相关知识
ls-mse_mse_ls_matlab_源码.zip
74LS161_DataSheet.pdf
74LS377_DataSheet.pdf
74ls47原理,针对共阴型数码管,代码简短,可供参考
26LS32_MOTOROLA_85122
dyna最新版手册,LS-DYNA_Manual_Volume_II_R11,英文版,必备!
Mathematical models- choice of model class LS
74LS245_DataSheet.pdf