listener 中,在进入ZK 边界时,ZK 先创建session ,并启动事务。在离开ZK 边界时,ZK 完成事务。
Archive for the ‘Java’ Category
ZK与HIBERNATE 集成的事务
Tuesday, February 14th, 2012JBoss连接池输出连接未关闭信息
Monday, August 22nd, 2011一、修改log4j的配置,增加如下内容:
<category name=”org.jboss.resource.connectionmanager.JBossManagedConnectionPool”>
<priority value=”TRACE”/>
</category>
二、修改要监控的数据源配置,增加:
<track-statements>true</track-statements>
用MSCS构建J2EE应用集群的编码问题
Thursday, August 5th, 2010现象:
手上一个应用,原来是 Apusic 3.0+J2SDK 1.4.2,用MSCS构建集群,一直运行正常。后来Apusic升级为6.0,JDK升级为JavaSE 6.0,这下问题来了:A节点运行正常,但当通过MSCS切换到B节点时,Apusic日志上中文全是乱码,通过应用修改、保存的中文也全是乱码。
测试:
- rollback to Apuisc 3.0+J2SDK 1.4.2,恢复正常
- B节点上直接运行J2EE应用,正常。
分析:
中文乱码问题与本机环境有关,由于之前(J2SDK)是正常的,因此可以认为两节点环境配置无差,经检查(Java输出环境参数),的确无差。怀疑为MSCS在切换时对某些环境参数做了修改,于是在JSP代码中加入环境参数的打印语句,分别在A、B两节点上运行,检查输出结果,果然有不一致的地方:
A节点:file.encoding=GBK user.language=zh
B节点:file.encoding=CP1252 user.language=en
显然,MSCS在启动资源时,传递了错误的环境参数。
解决:
在应用的启动命令行里强制环境参数,即加入-Dfile.encoding=GBK -Duser.language=zh,然后通过MSCS启动应用,Apusic日志中文输出正常,登录应用,保存中文正常。
Ubuntu 下Java GUI应用中文乱码的解决方法
Monday, November 16th, 2009每次更新JDK版本后,Java GUI应用的中文总是乱码,因此特在此记录解决方案备查:
- 在 jre/lib/fonts下建立fallback目录
- ln -s /usr/share/fonts/truetype/arphic/uming.ttf /usr/local/jdk/jre/lib/fonts/fallback/
- jre/lib/fonts/fallback/ 执行 mkfontscale
- 在fonts目录下执行cat fallback/fonts.scale >> fonts.dir

Roadmap of Java 7 updated
Friday, January 9th, 2009Java 7路线图更新了:更多的I/O API(包括异步I/O)、动态语言、并发的类加载、取代CMS的G1垃圾收集器、以及众多小的语法增强,如 String 的 switch(终于等到了)。
另一个引人注目的是,之前争论激烈的闭包没有出现在 Java 7中,好事坏事,不得而知。总的来说,Java朝着方便开发人员的道路上前进着。
面向契约的编程实践(二)
Thursday, May 15th, 2008四、QBE 的职责
最近监控的一项目使用了(仿) QBE 技术(Query By Example) 。一直未深入研究过 QBE,但就 Query By Example 的字面理解,按给定的例子/模型进行查询。这个 example 自然应是“鲜明”的,即至少某个属性是明确有值的。
to be continued …
(more…)
面向契约的编程实践(一)
Monday, May 12th, 2008
/* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:”"; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:”Times New Roman”; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} 一、releaseChunk()的故事
故事要从千年的妖精旅店说起。某天David贴出如下两个方法,问有什么区别:
protected static void releaseChunks(Chunk c) {
while (c != null) {
Chunk.releaseChunk(c);
c = c.next
}
}
protected static void releaseChunks(Chunk c) {
while (c != null) {
Chunk temp = c.next;
Chunk.releaseChunk(c);
c = temp;
}
}
很好很强大的 EJB 3.1
Tuesday, January 29th, 2008EJB 3.1 的新特性终于“泄露”出来,引人注目的有:
- EJB 接口不再是必须的。这一来,EJB 看上去就是一个 POJO,如:
@Stateless public class PlaceBidBean {
@PersistenceContext
private EntityManager entityManager;
public void placeBid (Bid bid) {
entityManager.persist(bid);
}
}
Powered by ScribeFire.
JPWT(机品问题)?
Saturday, December 29th, 2007 前两天中山反映系统莫明其妙地退出,刚开始以为是 Jacob 并发调用冲突引起的,登陆上去一看,25日、26日均有一次 JVM Crash。一次是由虚拟机代码(~SafepointBlob)引起的 EXCEPTION_FLT_STACK_CHECK;一次是 Java 代码引起的 EXCEPTION_FLT_DIVIDE_BY_ZERO。
两次 Crash 都指向 JDK/JRE 的 bug,但 JDK 1.4.2 系列应是不会再做维护的了。
中山经常会发生有一些奇怪的问题,JDK 1.4.2_12用了这么多年了,现在还能碰上这种 bug,看来真是机品问题。
Powered by ScribeFire.
JACOB 调用 Office COM 组件的注意事项
Thursday, December 20th, 2007 项目中使用 Jacob 调用 Office COM 组件也有好几年了,一直没有能完全摆脱并发时可能导致 JVM Crash 的困惑(通过序列化对 COM 组件的访问起到了一定效果)。期间曾怀疑过二进制兼容问题、STA/MTA 的问题等。
从最近的一次 JVM dump 日志来看,引起 JVM Crash 的线程正在调用 ComThread.Release, (more…)