上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 32 下一页

2013年10月27日

Java Hibernate事务并发控制

摘要: 在产品上线时发现当用户数量大并发性能差,经常发现数据库死锁,经诊断,是由于设置了不正确的事务隔离,可以做如下优级化(这里我们使用JTA事务):JTA具有的3个接口:UserTransaction接口、TransactionManager接口和Transaction接口,这些接口共享公共的事务操作。UserTransaction能够执行事务划分和基本的事务操作,TransactionManager能够执行上下文管理。在一个具有多个数据库的系统中,可能一个程序将会调用几个数据库中的数据,需要一种分布事务,或者准备用JTA来管理Session的长事务,那么就需要使用JTATransaction。在. 阅读全文

posted @ 2013-10-27 16:33 heartstage 阅读(1662) 评论(0) 推荐(0) 编辑

Java死锁及解决

摘要: Java线程死锁如何避免这一悲剧 Java线程死锁需要如何解决,这个问题一直在我们不断的使用中需要只有不断的关键。不幸的是,使用上锁会带来其他问题。让我们来看一些常见问题以及相应的解决方法: Java线程死锁 Java线程死锁是一个经典的多线程问题,因为不同的线程都在等待那些根本不可能被释放的锁,从而导致所有的工作都无法完成。假设有两个线程,分别代表两个饥饿的人,他们必须共享刀叉并轮流吃饭。他们都需要获得两个锁:共享刀和共享叉的锁。 假如线程 “A”获得了刀,而线程“B”获得了叉。线程“A”就会进入阻塞状态来等待获得叉,而线程“B”则阻塞来等待“A”所拥有的刀。这只是人为设计的例子,但尽... 阅读全文

posted @ 2013-10-27 16:15 heartstage 阅读(366) 评论(0) 推荐(0) 编辑

Java编程经验汇总

摘要: JDK和JRE 大家肯定在安装JDK的时候会有选择是否安装单独的jre,一般都会一起安装,我也建议大家这样做。因为这样更能帮助大家弄清楚它们的区别: Jre 是java runtime environment, 是java程序的运行环境。既然是运行,当然要包含jvm,也就是大家熟悉的虚拟机啦, 还有所有java类库的class文件,都在lib目录下打包成了jar。大家可以自己验证。至于在windows上的虚拟机是哪个文件呢? 学过MFC的都知道什么是dll文件吧,那么大家看看jre/bin/client里面是不是有一个jvm.dll呢?那就是虚拟机。 Jdk 是java development 阅读全文

posted @ 2013-10-27 16:04 heartstage 阅读(267) 评论(0) 推荐(0) 编辑

oracle的锁与并发机制

摘要: 锁是并发访问的时候用于保护不共享资源不被同时并发修改的机制。oracle锁分为DML锁,DDL锁,内部锁和latch DML锁确保一次只能只有一个人修改某一行(TX锁),而且正在处理一个表时别人不能删除(TM锁)。DDL锁,在DDL操作是系统会自动为对象加上DDL锁,保护这些对象不被其他会话锁修改。latch是轻量级的串行化设备,用于协调对共享数据结构、对象、文件的多用户访问,一般都是保护共享内存结构使用的锁,在此不做讨论。 一般的锁管理器工作过程:1.找到想要锁定的那一行地址2.在锁管理器排队3.锁定列表4.搜索列表,查看别人是否锁定这一行5.在列表中创建一个新的条目,表明已经锁定这一行6. 阅读全文

posted @ 2013-10-27 15:50 heartstage 阅读(365) 评论(0) 推荐(0) 编辑

Oracle并发控制、事务管理学习笔记

摘要: (a)基本概念 锁的2种最基本、最简单的类型:排他锁(eXclusive lock,即X锁)、共享锁(Share lock,即S锁)。 不同级别的锁定协议及其作用:申请的锁及其作用锁定协议修改时申请X锁读取时申请S锁作用操作结束释放事务结束释放操作结束释放事务结束释放不丢失修改不脏读可重复读一级锁定协议是是二级锁定协议是是是是三级锁定协议是是是是是锁定对象的大小被称为锁定的粒度(granularity)。 如果在一个数据库管理系统中,同时支持多种锁定粒度供事务选择,这种锁定方法就被称为多粒度锁定(multiple granularity locking)。 多粒度锁定协议是指,允许对多粒度树中 阅读全文

posted @ 2013-10-27 15:46 heartstage 阅读(516) 评论(1) 推荐(0) 编辑

Oracle的隔离级别

摘要: 隔离级别(isolation level) 隔离级别定义了事务与事务之间的隔离程度。 隔离级别与并发性是互为矛盾的:隔离程度越高,数据库的并发性越差;隔离程度越低,数据库的并发性越好。 ANSI/ISO SQL92标准定义了一些数据库操作的隔离级别: 未提交读(read uncommitted) 提交读(read committed) 重复读(repeatable read) 序列化(serializable) 通过一些现象,可以反映出隔离级别的效果。这些现象有: 更新丢失(lost update):当系统允许两个事务同时更新同一数据是,发生更新丢失。 脏读(dirty read)... 阅读全文

posted @ 2013-10-27 15:43 heartstage 阅读(4320) 评论(0) 推荐(0) 编辑

Java多线程总结之由synchronized说开去

摘要: 更新完毕,结贴,以后有新的想法再开新帖 这几天不断添加新内容,给个大概的提纲吧,方面朋友们阅读,各部分是用分割线隔开了的:synchronized与wait()/notify()JMM与synchronizedThreadLocal与synchronizedReentrantLock与synchronized最重要一条: synchronized是针对对象的隐式锁使用的,注意是对象! 举个小例子,该例子没有任何业务含义,只是为了说明synchronized的基本用法:Java代码 ClassMyClass(){synchronizedvoidmyFunction(){//dosomethin. 阅读全文

posted @ 2013-10-27 14:49 heartstage 阅读(288) 评论(0) 推荐(0) 编辑

j2ee性能调优之最小化资源压力测试法则

摘要: 前面看到有人讲j2ee的性能调优,虽然这块不是自己的专长,但是猪养多了,也忍不住跳出来说几句。 虽然几乎每本讲性能调优的书籍开篇都会提,没必要的情况下就不要做调优,但是我个人还是认为,所有系统在上线前,都应该做一次基本的压力测试并对相关的性能问题进行检测, 但是迫于资源压力,很多项目都无法做正规的压力测试,一直到系统上线出现问题,才倒回来找原因。 而正规的压力测试,往往因为需要严格模拟生产环境,需要耗费大量的资源,各类专家配合解决问题,并不是那么轻松的可以做下来的。 而j2ee应用的特点就是以复杂性来回避传统问题,所以任意一个j2ee的部署,相对于php那样的结构都是比较复杂的。系统一旦发生性 阅读全文

posted @ 2013-10-27 02:29 heartstage 阅读(225) 评论(0) 推荐(0) 编辑

线程和进程(Java)

摘要: 一、线程概述线程是程序运行的基本执行单元。当操作系统(不包括单线程的操作系统,如微软早期的DOS)在执行一个程序时,会在系统中建立一个进程,而在这个进程中,必须至少建立一个线程(这个线程被称为主线程)来作为这个程序运行的入口点。因此,在操作系统中运行的任何程序都至少有一个主线程。进程和线程是现代操作系统中两个必不可少的运行模型。在操作系统中可以有多个进程,这些进程包括系统进程(由操作系统内部建立的进程)和用户进程(由用户程序建立的进程);一个进程中可以有一个或多个线程。进程和进程之间不共享内存,也就是说系统中的进程是在各自独立的内存空间中运行的。而一个进程中的线可以共享系统分派给这个进程的内存 阅读全文

posted @ 2013-10-27 02:24 heartstage 阅读(310) 评论(0) 推荐(0) 编辑

Tomcat配置和Spring MVC配置

摘要: Tomcat启动时,先找系统变量CATALINA_BASE,如果没有,则找CATALINA_HOME。然后找这个变量所指的目录下的conf文件夹,从中读取配置文件。最重要的配置文件:server.xml。要配置tomcat,基本上了解server.xml,context.xml和web.xml。Server.xml--tomcat主配置文件Web.xml--servlet与其他适用于整个Web应用程序设置的配置文件,必须符合servlet规范的标准格式。Context.xml--默认的context配置,应用于安装了Tomcat的所有主机的所有部署内容。该文件的格式和标准的contextXML 阅读全文

posted @ 2013-10-27 02:21 heartstage 阅读(2315) 评论(0) 推荐(0) 编辑

上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 32 下一页

导航