`
ldd600
  • 浏览: 104000 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
47bb354f-8b5f-3ea6-a206-c7ead38c741c
Hyperic插件开发不完...
浏览量:11285
社区版块
存档分类
最新评论
文章列表
Mysql在数据量大的情况下,会遇到水平分表的情况。 1. 根据业务属性拆表 这种分表方式的算法大致是取模,hash,md5等。 用业务属性拆表,业务关系复杂的情况下,如果要根据其他条件查询,其他的条件都必须和这个属性关联起 ...
List: 它的数据结构和java中的linkedlist是一样的,是一个双向循环链表。在里面预先插入了3840000条记录。服务器配置,pc机,为Redis分配了1g内存 2g vm。 1.插入:62ms,lpush rpush一样。 2.删除:lpop,rpop 63ms。                删除第一个元素 lrem(key, value, 1) 63ms 删除最后一个元素 780ms。但删除最后一个元素可以使用lrem(key, value, -1)这样也是63ms。使用lrem(key, value, 0)删除所有等于value值的元素780ms,每次都要遍历一遍。不推荐使用 ...
1.我们需要复杂和灵活的数据结构如List,Set,而TT/TC table支持的是类似于简单的单表结构。我们先前是用TC Hash模拟出来的List,但在删除,分页,清理上都存在难度。维护起来也不方便。功能上Redis更适合我们的需求。  2.TT/TC java客户端比较弱,目前只能用memcached java client 3.Redis对并发操作提供了很多方便的API调用 4.Redis性能上比TC table要好些,跟TC B+ tree差不多 5.Redis并发处理能力要好些   我们现在使用的模式是,对于直接的key value对需缓存的直接用memcache ...
PooledConnectionFactory有两个属性maxConnections,maximumActive。咋一看来,用人类的常识理解,maxConnection应该表示最大可建的connection数,maximumActive应该表示最大活跃的connection数,当pool中的连接数大于最大活跃数时,又超过idleTimeout会 ...
  网上大多数文章都是用keytool生成自签名根证书,将根证书配置在tomcat的server.xml中。我不太喜欢用keytool,原因:1.我们可能换provider,不同的provider会有不同的算法实现,算法的安全性和性能也可能不同,通过代码生成比较方便一些,不同算法的实现要放在classpath上。2.通过代码生成还有一个好处,会对整个流程理解的比较清楚,实现的原理到底是怎样的。   要用到https,也就是TLS或者SSL,我们需要有证书,要么是法定证书机构(VeriSign,中国估计也有代理)给你签发的可信证书,要么自己给自己颁发一个根证书。自己给自己颁发的证书,浏览器 ...
主要介绍如何周期性尽量实时地从RDBMS爬数据然后建索引,不涉及AOP或ORM Framework的listener方式。 先决条件: Lucene索引是从无到有的,一开始所有数据都是存储在RDBMS(Oracle)中。 数据表有一列是updateTime或称为lastModifiedTime用来存储最后一次更新时间,并建有db索引 主表必须要有主键,这个主键也用来唯一确定一个Lucene document。 该策略大致可以分为以下几个部分: 1.索引结构 2.初始化索引 3.增量索引 4.补偿操作 5.删除检测 6.备份 7.注意点 索引结构: 我们是 ...
封装Javamail的原因 两个字需求 1.      去年已经写过一个Message channel,抽象出了消息发送的统一接口,已经支持FTP, JMS。底层还提出来了一套统一的connection pool结构。用户通过依赖注入方式配置选择通信方式,connection pool的策略,具体实现在代码中对用户都是透明的,用户可以方便地通过配置文件切换选择的通信方式。Email通信方式也需要加到这套已有的设计上。 2.      直接使用javaMail,用户需要自己处理整个email的复杂结构,比如在接收时还需要处理正文和附件,并存储,使用完后还需要清理。 3.      用户可以 ...
在JavaMail的基础上构建自己的Email Channel 基础知识 Email入门 不说太多,至于什么是Email,Email给我们带来什么好处,也就不唠叨了。但是先得看下Email的数据结构,因为我们需要根据领域逻辑,进行面向对象的设计。 现在通过webmail和outlook发的邮件一般都是MIME邮件,如上图,但不同的client也可能稍微有所不同。 邮件是由邮件头和邮件体组成的,每个体部分由头域、空行、体组成。但几个值得注意的header Content-Type 每个邮件体都有个content type。说明该邮件体的类型,编码,boundary等。包括:主类型 ...
OC4J升级Oracle JDBC driver版本 DB升级到11g,application server是10133,必须升级OJDBC driver版本   备份$OC4J_HOME/j2ee/home/config下的system-application.xml和server.xml 在$OC4J_HOME/j2ee/home/shared-lib下新建目录oracle.jdbc/11.1.0.7.0,如果是application server版本还可以在

2009年工作总结

    博客分类:
  • Life
CUSTOMER FOCUS Be patient to listen to application users to speak out their requirements. Try best to satisfy all the reasonable requirements put forward by them. Suppose and analyze their potential requirements and guide them, differentiate urgent and uncritical requirements. Put customer requiremen ...
Log4j debug log api不够丰富 在进入,退出方法时针对方法的输入参数和返回值进行log,log中含有方法信息 logDebugOnMethodEntry, logDebugOnMethodExit   log级别问题 如果log级别设置的是info,会把warning,error,fatal都打出来,各个级别不能单独控制。增加各级别分开控制开关。 log格式的定制 可以定制log信息的pattern,这样会
上篇地址:http://ldd600.iteye.com/blog/534039 从“侦听和处理用户对业务对象改动的简易框架(上)”中知道整个Framework的原理还是相当简单的,稍微值得注意的可能是下面几个方面。 Listener如何获取被改动的对象 TopLink会把所有改动过的对象都会被放在UnitOfWorkChangeSet中,因为在UnitOfWork提交的时候它需要将UnitOfWorkChangeSet中记下的改动提交到数据库。然后merge到session cache。所以所有改动从UnitOfWork中都是可以拿到的。
在用户修改了领域对象的值后,我们有时需要记录下用户的改动。比如对一些关键业务对象的改动有时往往需要发邮件通知客户。有时用户可能想查阅所有历史的改动,甚至有可能会改回原先的值。 领域逻辑关系往往比较复杂,这时我们会使用到ORM Framework。本文以toplink为例,讲述如何利用toplink编写一个完成此功能的简易Framework,我们暂且把它称为ActionMemed。 我们先来看一下大体的流程: l           我们获得用户修改信息通常有两种方式,一种是被动的监听,另一种主动的通知。被动的监听就是framework订阅所关心领域对象的修改,主动通知是applicat ...
星期一早上到了公司,据称产品环境抛出了最可爱的异常—OutOfMemory, 它是这样来描述他自己的: java.lang.OutOfMemoryError: unable to create new native thread 而且这位仁兄竟然还堂而皇之地同时出现在了3个application里面,所有应用全部遭殃。 那可爱的OOM是如何产生的呢?直接原因是创建的线程太多了,根本原因是某个地方的内存限制了。 搜罗了一下在网上找到了一个计算公式: (MaxProcessMemory - JVMMemory – ReservedOsMemory) / (ThreadStackSize) ...
1.  测试什么:   2.  良好测试的属性 1)      自动化 2)      全面 3)      可重复 4)      独立 5)      高质量,和产品代码一样对待   3.  何时运行测试
Global site tag (gtag.js) - Google Analytics