上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 28 下一页
摘要: 事务准备接受不一致数据的级别称为隔离级别。隔离级别是一个事务必须与其它事务进行隔离的程度。较低的隔离级别可以增加并发,但代价是降低数据的正确性。相反,较高的隔离级别可以确保数据的正确性,但可能对并发产生负面影响。应用程序要求的隔离级别确定了所使用的锁定行为:数据库在被广大客户所共享访问的操作过程中很可能出现以下几种不确定情况 :1. 更新丢失(Lost update):两个事务都同时更新一行数据但是第二个事务却中途失败退出导致对数据两个修改都失效了这是系统没有执行任何锁操作因此并发事务并没有被隔离开来2. 脏读取(Dirty Reads):一个事务开始读取了某行数据但是另外一个事务已经更新了此 阅读全文
posted @ 2010-12-13 14:02 玩玩乐乐 阅读(762) 评论(0) 推荐(0) 编辑
摘要: Oracle的SelectForUpdate语句可以实现在读取数据后马上锁定相关资源,防止被其他session修改数据的目的。也就是我们常常谈到的“悲观锁定”(现实应用开发中,使用悲观锁定的情况少之又少,也许是因为乐观锁定的实现更加灵活和便捷的缘故)。这个小文儿做一个小小的实验,来看看Select For Update语句实现的行级锁定1.创建实验表table_sfu,并初始化三条数据sec@ora10g create table table_sfu (a number);Table created.sec@ora10g insert into table_sfu values (1);1 阅读全文
posted @ 2010-12-13 13:08 玩玩乐乐 阅读(5218) 评论(0) 推荐(0) 编辑
摘要: 近服务器上经常出现mysql进程占CPU100%的情况,使用show processlist命令后,看到出现了很多状态为LOCKED的sql。使用show status like 'table%'检查Table_locks_immediate和Table_locks_waited,发现Table_locks_waited偏大。出问题的表是MyISAM,分析大概是MyISAM的表锁导致。MyISAM适合于读频率远大于写频率这一情况。而我目前的应用可能会出现在某一时段读写频率相当。大致如下:一个客户端发出需要长时间运行的SELECT其他客户端在同一个表上发出INSERT或者UPDATE,这个客户将 阅读全文
posted @ 2010-12-13 13:07 玩玩乐乐 阅读(306) 评论(0) 推荐(0) 编辑
摘要: 再补充下哈虽然ConcurrentHashMap是线程安全的, 看看下面一段代码:Java代码查看源代码打印01.ConcurrentHashMap map; 02.String getString(String name) { 03.04.String x = map.get(name); 05.06.if (x == null) { 07.08.x = new String(); 09.10.... 阅读全文
posted @ 2010-12-11 21:48 玩玩乐乐 阅读(535) 评论(0) 推荐(0) 编辑
摘要: 正文内容:原作:fanixdecorator常被翻译成"装饰",我觉得翻译成"油漆工"更形象点,油漆工(decorator)是用来刷油漆的,那么被刷油漆的对象我们称decoratee.这两种实体在decorator模式中是必须的.decorator定义:动态给一个对象添加一些额外的职责,就象在墙上刷油漆.使用decorator模式相比用生成子类方式达到功能的扩充显得更为灵活.为什么使用decorator?我们通常可以使用继承来实现功能的拓展,如果这些需要拓展的功能的种类很繁多,那么势必生成很多子类,增加系统的复杂性,同时,使用继承实现功能拓展,我们必须可预见这些拓展功能,这些功能是编译时就确定 阅读全文
posted @ 2010-12-11 19:37 玩玩乐乐 阅读(586) 评论(0) 推荐(0) 编辑
摘要: 事务不应该由dao管理,而应该由service管理最重要的是如下四个类DataSource :数据库的Connection连接工厂DataSourceUtils:参与同一个事务的多个dao实际上应该是共享同一个conn的。DataSourceUtils.getConnection(dataSource)取得当前ThreadLocal的conn,如果没有从dataSource创建一个。DataSourceUtils.releaseConnection(conn, dataSource)未必真正关闭连接。DataSourceTransactionManagerTransactionProxyFac 阅读全文
posted @ 2010-12-10 12:39 玩玩乐乐 阅读(683) 评论(0) 推荐(0) 编辑
摘要: 前一段用到Spring的ApplicationContext接口,查看它提供的方法,打开jar包,看到的信息如下:Java代码publicabstractinterfaceorg.springframework.context.ApplicationContextextends...{publicabstractorg.springframework.context.ApplicationContextgetParent();...}发现interface前有个abstract,怎么还有抽象接口(abstract interface)一说,接口不都是抽象的吗,这样写难道还有什么特殊意义,很是纳 阅读全文
posted @ 2010-12-10 11:17 玩玩乐乐 阅读(841) 评论(0) 推荐(0) 编辑
摘要: Spring 的骨骼架构Spring 总共有十几个组件,但是真正核心的组件只有几个,下面是 Spring 框架的总体架构图:图 1 .Spring 框架的总体架构图从上图中可以看出 Spring 框架中的核心组件只有三个:Core、Context 和 Beans。它们构建起了整个 Spring 的骨骼架构。没有它们就不可能有 AOP、Web 等上层的特性功能。下面也将主要从这三个组件入手分析 Spring。Spring 的设计理念前面介绍了 Spring 的三个核心组件,如果再在它们三个中选出核心的话,那就非 Beans 组件莫属了,为何这样说,其实 Spring 就是面向 Bean 的编程( 阅读全文
posted @ 2010-12-09 13:55 玩玩乐乐 阅读(3737) 评论(0) 推荐(1) 编辑
摘要: 一、前言cjdbc (http://c-jdbc.objectweb.org/) 是一个open source的数据库集群中间件,任何基于jdbc的应用都可以通过它透明地访问数据库集群,它可以进行各个节点之间的数据复制,并且可以实现各个节点的查询负载均衡。通过这样的软件,偶们可以方便的实现RAIDb - Redundant Array of Inexpensive Database 廉价数据库冗余阵列。大型应用随着用户量访问越来越大,增加数据库存储和做好数据库冗余可以增加系统的可靠性和性能。下面利用cjdbc,把两台对等的 Mysql 做 RAIDb,本文假定你已经搭建好两台对等的 Mysql 阅读全文
posted @ 2010-12-08 16:52 玩玩乐乐 阅读(677) 评论(0) 推荐(0) 编辑
摘要: Spring是分层的java SE/EE应用一站式的轻量级开源框架,以IOC和AOP为内核,提供了展示层spring mvc和持久层spring jdbc,以及业务层事务管理等众多的企业级应用技术。相关的网站:spring.jactiongroup.netwww.springside.org.cnwww.javaeye.comspring的体系结构spring共有1400个类,其框架按功能分为7个模块。spring核心模块:实现了IOC的功能,将类与类之间的依赖关系从代码中脱离出来,用配置的方式进行依赖描述,其中BeanFactory是核心接口。ApplicationContext模块:核心模 阅读全文
posted @ 2010-12-08 14:00 玩玩乐乐 阅读(916) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 28 下一页