[原创]Zookeeper相关的ConnectionLossException的解决办法

转载请注明出处:http://www.codelast.com

最近遇到了一个比较头疼的问题:有一个Java project中的test case在Jenkins自动nightly build的时候经常failed,有越来越频繁的趋势,但是如果在它failed之后到Jenkins上手工重新run,它有时又能成功(但还是有失败的,失败与成功的比例大概各占一半)。
而且在我的计算机(Ubuntu)上跑这个test case,它几乎从来不fail,但是在Jenkins服务器上跑,它就总是挂掉。
这种诡异的问题很恼人,经过Jenkins记下来的build log分析,觉得最有可能的原因是和Zookeeper有关,因为这个test case使用了Curator的TestingServer来模拟Zookeeper Server,而且这个test case中启动了很多的service并注册到了Curator模拟的Zookeeper Server上,而且在test case运行的过程中,还会有很多个client不断地连接到Zookeeper Server上,从中取出多个service的信息,并与它们交互,总而言之,test case的流程比较复杂。
阅读更多

[原创] log4cxx在Linux下的安装、使用

简单地说,log4cxx就是一个记录日志的C++库(程序运行的时候要保存一些日志到文件,以供将来查看),它是从著名的Java日志库log4j移植而来的,并且它是Apache的一个项目,质量有保证,不用犹豫了,就用它吧!

补一句:Apache声称log4cxx的速度快、灵活性好,但是,速度快是第一位的,灵活性是第二位的("Log4cxx claims to be fast and flexible: speed first, flexibility second."),所以,担心日志记录性能的同学更可以选择log4cxx啦。

但是,这玩意的安装、编译稍微有点麻烦,如果遇到了问题,没耐心的人可能就没兴趣折腾了,我在这里把自己遇到的问题记一下。

系统环境:RHEL 5.3,64位

 

阅读更多

[原创]一些VC之GUI开发问题总结

下面是一些Visual C++ UI开发中遇到的问题的总结,专门记在此文中,以便将来查询。

由于文章较长,请用Ctrl+F查询关键字来定位到你需要的内容。


(1)程序运行时提示 VERIFY(strDocName.LoadString(AFX_IDS_UNTITLED)) 错误

在一个基于Xtreme Toolkit的Visual C++ SDI工程中,为了创建Ribbon风格的界面,添加了一堆代码,然后编译,无问题。再运行,程序根本运行不起来,错误提示类似于:

Error Locating Toolkit Resources.

Make sure you have included the resources to your project's .rc2 file.

Add #include <XTToolkitPro.rc> to your project .rc2 file

阅读更多

Foxmail的IMAP很好用

文章来源:http://www.codelast.com/

 

一直用Gmail,但是自从前段时间传言Gmail可能要消失之后,一下子急了,要知道我有多少重要邮件在里面啊!

于是赶紧用其他邮箱的POP3持续不断地收取Gmail的邮件,以作备份用。但是POP3有个麻烦的地方:别的邮箱用POP3收取了一封新邮件之后,我在Windows上的邮件客户端就收不到这封新邮件了(状态已改变),于是想到用IMAP来收取Gmail的邮件,会方便很多。

阅读更多

小故障:RHEL 5无法上网

文章来源:http://www.codelast.com/


今天在家里使用RHEL虚拟机的过程中,网络由Wi-Fi切换成了有线之后,突然发现了一个问题:无法连接网络。这个问题还是由在编写gsoap代码的过程中,使用wsdl2h工具时发现的,它总提示无法连接到指定的服务器。

ping了一下baidu.com,竟然都不通,看来是DNS问题了。于是修改 /etc/resolv.conf文件,将里面的nameserver改成了与Windows下一样(DHCP自动获取的),然后重启网络服务:

阅读更多

SSH文件传输中的二三事

文章来源:http://www.codelast.com/

 

在Linux C++程序中,用SSH进行文件传输时,我曾经遇到过一个很诡异的问题,那就是SSH会话会无缘无故“损坏”,导致后续与SSH相关的功能无法完成。这个诡异的问题在折腾了我一段时间之后,发现是由于项目中所使用的一个SSH库的使用方式不对引起的,至于这是该lib的bug还是我不应该那样用就不好考证了,但是至少我解决了问题。问题就在于:使用scp来传输文件时,由于没有将文件“分块”传输,导致SSH会话中的某些变量被破坏,从而影响后续SSH相关功能。在我实现了控制数据块的大小之后,该问题得以解决。

文章来源:http://www.codelast.com/