马可波罗的梦乡

BlogJava 首页 新随笔 联系 聚合 管理
  4 Posts :: 50 Stories :: 2 Comments :: 0 Trackbacks

2009年8月1日 #

可以把Spring配置成Listener,它在Filter启动之前就已经加载。

eclipse异常退出,在Navigator视图看不到项目了,重新导一次项目就可以了。
重新编译没有用,说是找不到一个jar里的某个类,把这个类从编译路径删除,再加入,代码会重新编译,之后发现没有错误提示了。

posted @ 2009-08-27 00:37 梦回唐朝 阅读(153) | 评论 (0)编辑 收藏

异常机制的本质是,当程序出现错误时,帮助程序员锁定错误,并对程序进行修正。
现代程序的规模已经大到让人无法全知的程度,因此异常机制是一种很有效的机制

找出错误体系,逐层细化,并最终构成一个异常体系

和JDBC savepoint,回滚等结合起来,就要看JDBC代码了,走太远不好,够用就行。


posted @ 2009-08-06 22:06 梦回唐朝 阅读(338) | 评论 (2)编辑 收藏

要辨别事务的边界。就是启动事务和提交事务的边界。 DAO对象的每个方法都对应于一些数据库操作。如果需要把两个或更多个方法作为一个事务,则需要在更高的层次定义事务

Spring的一个好处是为事务提供了一个统一的抽象,不论底层是用什么实现,如Hibernate, IBatis或者JDBC,都可以使用一个统一的接口。
如果用Spring来管理Hibernate事务,最好不要直接使用Hibernate事务接口,因为这会造成混乱。如果使用Spring来管理Hibernate事务,那么就调用Spring的接口。

事务中获取的Connection必须是和事务关联的那个Connection,不能直接调用DataSource的getConnection,如果得到的是不同的Connection,是无法实现事务的。因此,最好调用Spring的事务工具类。

事务管理器,事务状态,事务发起,事务提交,事务回滚等。
Spring事务,对系统性能的影响有多大,那些更复杂的分布式事务如何处理,如何衡量它的性能损耗呢?

JTS是底层接口,JTA是高层接口。
JDBC事务是局部事务,只能应用于当前数据库。如果事务跨多个数据库,就必须使用分布式事务。这个时候可以采用JTA。
JTA事务,涉及一个事务管理器和多个资源管理器。资源管理器可以是任何持久性数据存储系统,包括数据库系统、MIS系统、JMS等。

JDBC驱动只有实现了XAConnection和XAResource接口才能参与JTA事务。但是一些高级JavaEE服务器可以将普通JDBC驱动模拟为支持XA的JDBC驱动,这个模拟过程是如何完成的?

XAConnection和JDBC Connection的事务操作是不同的,它绝不能自动提交,也绝不能调用XAConnection的commit和rollback方法,只能调用UserTransaction对象的begin,rollback和commit方法如何看其底层实现机制。或者没有必要。

如果只有单个数据库,使用JTA会带来不必要的复杂性。不过对于Spring来说,使用哪种事务已经不重要了,因为它定义了一个统一的抽象事务编程模型。并配合声明式事务,选择JDBC事务,还是JTA事务,所需要做的,仅仅是修改配置文件。 一般不会涉及代码的修改,这是Spring的优秀功能之一。

事务的隔离级别是由底层数据库实现的。而事务的传播行为这是应用程序自己管理的

posted @ 2009-08-05 03:37 梦回唐朝 阅读(191) | 评论 (0)编辑 收藏

前不久,国内某著名企业的架构师给我们做的讲座中提到了对象的序列化技术
可见序列化,是一个必须全面了解的概念。
刚才看Python编程,发现Python也有序列化机制,就是把除了基本类型外的对象进行存储,中间的一个过程是把对象转换成一定格式的二进制流
还有其他多种序列化技术? 如使用JSON也是一种序列化机制?

10.16
刚才使用了简单的串行化方法。
在memcached中,应该要用到串行化方法吧?

posted @ 2009-08-01 14:31 梦回唐朝 阅读(157) | 评论 (0)编辑 收藏