2009-07-05

加班到没有末班地铁实在是一件很痛苦的事情,没有报销打车费这一说。这年景,能有份工作,不错了。
今天看到log4j支持jms,就好奇的下了apache的ActiveMQ来用。其实本来SUN的J2EE本身就带一个MQ server,但是下载太慢了,我放弃了。然后,被ActiveMQ虐了一下午。
首先是datasource的问题,我配置它执向mysql,但是我的mysql的innodb存储过程的隔离级别是read-uncommited,最低的那个,被ActiveMQ鄙视了,好吧,改。之后又因为binlog的格式是statment,又被鄙视,改成row.终于启动成功。然后在另外一台机器上用log4j去连,可是…… 总也不成功。先是缺jar包,因为我的程序是j2se的应用,所以我就去下jms.jar,然后又报缺这缺那,log4j的jms的文档更是简略的让人抓狂。
在网上找了这样一段配置贴进去
log4j.appender.jms=org.apache.log4j.net.JMSAppender
log4j.appender.jms.InitialContextFactoryName=org.apache.activemq.jndi.ActiveMQInitialContextFactory log4j.appender.jms.ProviderURL=tcp://jmsserver:61616
log4j.appender.jms.TopicBindingName=dynamicTopics/locallogging
log4j.appender.jms.TopicConnectionFactoryBindingName=ConnectionFactory
不说缺jar包了,但是结果和楼主一样,遇到这样的异常:
java.io.IOException: Wire format negotiation timeout: peer did not send his wire format
鉴于ActiveMQ的默认格式是openwire,并且我在server的配置文件中确实也是这么配的,于是我就在ProviderURL中强行加上wireFormat=openwire,但是client又继续报告说找不到xxxx class的错。啊!!!!
我在想我毕业后的第一个项目,在我看来,它的核心就是一个MQ。只是那时我的同事和我都不懂java,并且自己写了数个BUG百出的队列系统。

此博客中的热门博文

少写代码,多读别人写的代码

在windows下使用llvm+clang

tensorflow distributed runtime初窥