- 浏览: 216382 次
- 性别:
- 来自: 宁波
最新评论
-
knight_black_bob:
<bean id="jotmJta" ...
Spring支持JTA事务之JOTM -
waitgod:
Good!@!!!
TransactionManager -
duan15131926982:
对事物的概念理解的还不是太透彻,不过感觉资料还是不错的,
TransactionManager -
Leonid2002:
赞一下,我就比较欣赏这种三言两语把原理讲明白的风格。网上尽是码 ...
JTA中跨数据库事备的实现原理----简单理解 -
hongjians:
jotmJta 在哪里定义的?
Spring支持JTA事务之JOTM
文章列表
1.资料
《Java Transaction Design Strategies》 InfoQ minibook,最好的电子文档,Java事务处于懵懂状态的必读。 《Expert One on one J2EE Development Without EJB 中文版》与Spring参考手册中文版 中的相关章节可以看到Spring guys的意见。http://www.leftworld.net/online/j2ee/14.htmhttp://www.ibm.com/developerworks/cn/opensource/os-ag-ejbtrans3/http://www.ibm.com ...
- 2008-02-19 09:40
- 浏览 2682
- 评论(0)
随着网站(www.jzease.com)的扩大,在三个月的时间里Myslq的表格从四十几张,扩到现在的一百多张,以后肯定还会继续扩大为了更好的管理和运行,着手开始分数据库,这就涉及到跨数据库事务,我们使用的是Tomcat,它本身不支持XA,供 ...
- 2008-02-18 17:46
- 浏览 6396
- 评论(2)
我根据自己的经验谈一下个人看法。这是一个非常复杂的话题。三言两语可能说不清楚。
1. Transaction 分两种,Local Transaction 和 Global Transaction。
涉及到一个Connection的Commit,称为Local Transaction。
涉及到多个Connection的Commit,称为Glob ...
- 2008-02-18 15:24
- 浏览 7574
- 评论(2)
最后一个问题就是更新了,对于blob没什么好讲的,但是clob倒是有点需要注意的,问题是这样的,如果clob原来插入的数据内容为: 123456789,现在你update为:ABC,等你查看数据库的插入结果时你会发现更新后的数据其实是:ABC456789,相信你已经知道原因了,那么看看以下的具体处理方法吧:
int k = 0;
for (int i=9; i >=0; i--) {
// 选择并锁定该记录
LargeObject large = (LargeObject ...
- 2008-02-18 14:50
- 浏览 1680
- 评论(0)
如果你看了前面的三篇文章也许会觉得自己已经掌握透了blob和clob的应用,而且所有测试程序都跑过了,没有问题啊,对于这个主题还有什么可讲的啊,那就让我用最后两篇来告诉你真正项目中会遇到的问题。
首先前面的hibernate中的应用是针对hibernate2.x的,现在3.x中对blob和clob增加了 org.hibernate.lob.SerializableBlob和org.hibernate.lob.SerializableClob类的封装。
其次如果你将前面的测试程序放到weblogic的容器中通过weblogic的数据源得到连接的话,你会发现 oracle.sql.BLOB bl ...
- 2008-02-18 14:48
- 浏览 4321
- 评论(0)
Oracle是强大但在方便易用性上实在不敢恭维,自己搞了套LookAndFeel的Swing控制台奇丑无比且不好用(我在这并非抨击Swing,只是遗憾Oracle没有用好Swing,我可是Swing的坚定拥护者,过一阵我会专门开个Swing专栏),我真搞不懂Oracle的JDBC驱动就不能再封装一层,底层透明的自动插入empty_blob()/empty_clob(),不过如果你是用mysql,那么恭喜你mysql的大字段操作是很舒服的,不需要做任何而外的处理,且不要求启事务。
CREATE TABLE `emhookup` (
`picid` int(10) unsigned NOT ...
- 2008-02-18 14:46
- 浏览 2086
- 评论(0)
我发现对于Oracle 数据库,如果数据量较少直接插入数据到blob和clob字段也能成功,但是数据量一大就不行了,但大到什么程度就不一定了,所以一般在项目中应用还是得老老实实的按照上面的步骤进行,不过应用上面这个特性能够使我们在hibernate中顺利的操作Oralce的这种类型字段。
PersonModel person = new PersonModel();
person.setName("林意炜");
person.setEmail("sailing8036@yahoo.com.cn");
// 插入一个小数据数据
p ...
- 2008-02-18 14:43
- 浏览 1664
- 评论(0)
这种大容量字段有何用,也许大部分人马上联想到用来存储图片、文章,不过俺确是用它来存储Java串行化对象,当时用Swing做了个绘图工具,为了数据集中管理决定把图纸内容存到数据库,大家可以想象如果不用blob类型的字段,那表该如何设计呢?图元的种类N多,每个种类的属性N多,而且种类和属性都会变化,再加上还有图层的关系,最重要的一点就是存储速度(这个问题稍候我会解释)问题,要想设计出能完美解决以上问题的表结构将是想当困难的事,在项目进度的压力下对于两年前刚刚摆脱强大然而设计模式恶心的MFC,正投奔Java正营,边学语言边“设计”绘图工具的我,唯一能想到的而且最终证明在项目中成功实施的就是blob 字 ...
- 2008-02-18 14:41
- 浏览 1865
- 评论(0)
Google Analytics(Google分析)使用技巧
Google Analytics(Google分析)是Google的一款免费的网站分析服务,自从其诞生以来,即广受好评。Google Analytics功能非常强大,只要在网站的页面上加入一段代码,就可以提供的丰富详尽的图表式报告。今天,我将总结一下加入代码的一些技巧,使用不同格式的urchinTracker代码,可以跟踪网站上一些特殊事件(例如不会产生综合浏览量的事件、JavaScript事件、文件下载、出站链接等),还可以跟踪制定属性的事件(例如Adsense、完整反向链接等)。当然,阅读这些技巧前请先阅读“Google分析 ...
- 2007-12-22 17:43
- 浏览 2666
- 评论(0)
搜索引擎数据库中的所有网页,都是由Robot程序自动抓取收录的。但我们网站上总会有部分私密性数据不希望被搜索引擎抓取,这时候,就需要robots.txt。
robots.txt 是一个标准文档,意在阻止搜索引擎的Spider(蜘蛛)从您的 Web 服务器下载某些或全部信息,控制Spider的搜索范围。robots.txt的设置很简单,只要用记事本或其他文本编辑器,依照自己的网站需求,设定一系列选项,然后将其上传到网站根目录即可。robots.txt的设置如下:
User-agent: 搜索引擎的spider代号
Disallow: 输入数据夹或文件名的路径
如设定所有的spider ...
- 2007-12-22 17:11
- 浏览 1402
- 评论(0)
简单办法:适用于对特定中文搜索引擎数据(少量)进行统计分析时
那么,如何让Google Analytics能够识别更多的搜索引擎?如何让Google Analytics能够更细致地分析源自搜索引擎包括各类垂直搜索的访问数据?
简单办法:适用于对特定中 ...
- 2007-12-22 16:57
- 浏览 1533
- 评论(0)
从Larbin看互联网爬虫设计
于敦德
2005.12.16
转载请注明出处
互联网是一个庞大的非结构化的数据库,将数据有效的检索并组织呈现出来有着巨大的应用前景,尤其是类似RSS的以XML为基础的结构化的数据越来越多,内容的组织方式越来越灵活,检索组织并呈现会有着越来越广泛的应用范围,同时在时效性和可读性上也会有越来越高的要求。这一切的基础是爬虫,信息的来源入口。一个高效,灵活可扩展的爬虫对以上应用都有着无可替代的重要意义。
要设计一个爬虫,首先需要考虑的效率。对于网络而言,基于TCP/IP的通信编程有几种方法。
第一种是单线程阻塞,这是最简单也最容易实现的一种,一个例子:在Shell中通过 ...
- 2007-11-02 10:20
- 浏览 4371
- 评论(1)
python 代码
spider = agent.find('Yahoo! Slurp')
if spider != -1:
continue
spider = agent.find('Baiduspider')
if spider != -1:
continue
spider = agent.find('Googlebot')
if spider != -1:
continue
这几家搜索引擎爬虫/Spider的User ...
- 2007-11-02 09:20
- 浏览 1822
- 评论(0)
Commons Collectons 里面可能有你想要的答案,看一下CollectionUtils类
String[] arrayA = new String[] { "1", "2", "3", "3", "4", "5" };
String[] arrayB = new String[] { "3", "4", "4", "5", "6", "7" }; ...
- 2007-10-13 09:12
- 浏览 1507
- 评论(0)
订单主体 + 订单单项
需求:订单单项全部完成那么订单才算完成,订单完成状态标志为变更。
处理方法:
1.某个订单单项完成时,遍历其他单项,看是否都完成,如果都完成那么更新订单主体上的标志。
缺点:摆明了效率问题,单项多了遍历要花很长时间。
2.在订单肢体上设置计数器位置,当单项完成时察看标志为的数值如果数值正好等于单项数那么订单算完成。
缺点:看起来不够OO,不过OO不能当饭吃。不过这个是建立在操作不可逆的基础上的,而且数据的一致性上也会有问题
就是计数器和已完成的订单单项和订单单项总数万一出现不一致,就会很麻烦,需要判断边界。单项状态回退的时候计数器也要变化造成逻辑是不是一般的复杂。
...
- 2007-10-12 19:58
- 浏览 1842
- 评论(0)