走自己的路

路漫漫其修远兮,吾将上下而求索

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  50 随笔 :: 4 文章 :: 118 评论 :: 0 Trackbacks

Oracle

Oralce plsql, sql tunning, concurrent control and so on
     摘要: 当系统有海量数据需要级联删除时,我们需要小心,如果同步删除用户体验会很差,他会等相当长的时间,直到系统超时,另外还会给系统突发地增加很大的负载,  阅读全文
posted @ 2011-02-24 09:30 叱咤红人 阅读(2342) | 评论 (0)  编辑

     摘要: 在分布式应用中,单个业务应用的toplink运行在多个jvm上,同时开启了会话缓存,而这些在多个jvm上会话缓存中的domain对象就需要进行同步,这样可以及时拿到最新的domain对象而不需要每次都查询database,这大大减少了乐观锁冲突。在Oracle Application Server上Ormi端口是动态分配的,而opmn request端口氏固定的,所以我们用opmn作为jndi lookup的url。经过测试OC4J in memory jms作为同步消息的传输和发现方式效率是最高的,所以采用OC4J in memory jms作为消息同步的传输方式。具体实现方法参见本文。  阅读全文
posted @ 2008-12-04 07:00 叱咤红人 阅读(1129) | 评论 (0)  编辑

     摘要: 晚上要下班的时候,application team那里使用Tibco EMS做消息集成服务时候出了bug,错误是:java.sql.SQLException: 当全局事务处理处于活动状态时, 无法调用方法 'commit',应该是在全局事务中使用了本地事务并提交了。帮忙看了一下,它的oc4j, toplink, spring的使用上都存在着一些问题,并把要注意的地方总结了一下。包括oc4j,toplink,spring三块。  阅读全文
posted @ 2008-11-14 21:48 叱咤红人 阅读(2054) | 评论 (11)  编辑

     摘要: 在java端调用存储过程的时候需要存储过程串行的执行,如果使用synchronized lock在应用服务器突然down掉的情况下会出现问题,因为session并没有立即断掉,后台的存储过程还在继续执行,这样如果应用服务器立即重启,再调用该存储过程或者其他需要一起串行化处理的存储过程就会违反同步执行的原则,所以我们必须把锁放在oracle db端,利用oracle锁机制来完成存储过程的同步,文章总结了一下在java端如何使用oracle这个用户锁机制。  阅读全文
posted @ 2008-08-25 14:12 叱咤红人 阅读(1613) | 评论 (0)  编辑

     摘要: 上次用Coherence实现缓存数据同步的transport manager之后,对它进行了压力测试并和EMS JMS和 OracleAS JMS(内存)进行了性能对比。文中描述了测试的过程,并共享了代码和测试结果。  阅读全文
posted @ 2008-06-13 14:46 叱咤红人 阅读(2259) | 评论 (1)  编辑

     摘要: Toplink提供了很强大的Cache功能,利用cache可以大大减少直接和DB通信的次数,特别是读事务比较多的情况下。在分布式应用中,多个toplink session cache之间需要即时的同步数据,保证各个cache中的数据都是最新的数据,避免频繁地出现stale数据或乐观锁异常。Toplink默认支持的两种同步机制:JMS和RMI,有时为了考虑一些特殊的需求,必须性能,我们可能需要自定义一个Toplink的Transport Manager,本文给出了一个用Oracle Coherence实现Toplink Tranport Manager的具体例子,注意只是用了Coherence的通信并没有把Coherence整合成Toplink的Session Cache。  阅读全文
posted @ 2008-05-24 17:37 叱咤红人 阅读(2043) | 评论 (0)  编辑