摘要:
在上一篇文章里面写了关于事务的一些特性,这里在谈谈事务的编程模型。什么叫做事务的编程模型,这个问题比较难以回答,其实简单的一句话,就是我们如何去使用和控制事务。在java平台里面,有三种事务编程模型:本地事务模型,编程式事务模型,声明式事务模型(当然我不是太认同这种说法,并不是太准确,不过大体也就这么回事情)本地事务模型本地事务模型:不用事务的编程框架来管理事务,直接使用资源管理器来控制事务。典型的就是java.sql.Connection 中的 setAutoCommit、commit、rollback方法,见下面一段代码,直接使用资源管理器进行事务控制 Connection ... 阅读全文
摘要:
web缓存作用:减少网络的数据传输,增快响应时间,减轻服务器压力web缓存:客户端缓存 和 共享式缓存客户端缓存一般通过浏览器来实现共享式缓存一般通过缓存服务器来实现控制缓存的http header信息http1.1Cache-Control:no-stroe|no-cache|maxage对于http响应报文no-stroe:告诉缓存服务器不要缓存内容no-cache: 告诉缓存服务器对于缓存的内容都需要座有效检测maxage:设置一个相对过期时间,单位秒 例如maxage=3600 一小时之后过期对于http请求报文no-store:强制缓存服务器请求web服务器返回内容,并且删除缓存no 阅读全文
摘要:
URI和资源之间的映射apache服务器中,通过docroot进行设置,一般是DocRoot+请求部分URI可以对不同的域名分别进行映射,利用virtualHost进行映射代理和网关的区别传统定义:代理是连接两个使用相同协议通讯的两个端点,网关是用来对两个使用不同协议进行通讯端点进行协议转换。例如http/POP协议网关,可以把http协议转化为邮件pop3协议,也就是我们所说的web邮箱代理的几个作用:1 web缓存;缓存图片,文档等,加快访问速度2 控制文档访问权限:对权限进行控制3 内容过滤:儿童黄色站点的过滤4 请求转码:例如对请求内容的编码进行转化 utf-8 转化为 gb23125 阅读全文
摘要:
今天在《外刊IT评论》里面看到这样一篇文章 《一个程序员怎么能做出这样的事情》 ,觉得作者的观点非常有意思,下面看看文章中的一段代码public void Execute() { ArrayList empIds = PayrollDatabase.GetAllEmployeeIds(); foreach (int empId in empIds) { Employee employee = PayrollDatabase.GetEmployee(empId); ... 阅读全文
摘要:
在NoSql和内存数据库如此流行的今天,在谈关系型数据库的貌似有点落伍了,不过在传统软件行业和对数据一致性和安全性要求比较高的行业,关系型数据库还是比较普遍的。正好最近看到一个数据库事务相关的知识,自己在这几年的工作中用的比较多,也在事务上面犯过很多的错误,正好借这个机会整理以下。事务的ACID属性A(Atomicity)原子性: 在一个事务上下文里面,对数据库进行的任何操作,必须保证是原子的,也就是说要么不做,要么全部都做,不能只做一部分。比如insert一条数据和delete一条数据,不知能只做insert操作而不做delete操作C(Consistency)一致性:在事务的处理过程中,数 阅读全文