使用ActiveMQ时遇到的坑

来源:互联网 发布:二叉树反转python 编辑:程序博客网 时间:2024/05/16 06:05

最近项目要做一个消息系统,选来选去,最后锁定到了ActiveMQ上,但是在使用中遇到了一个坑,分享给大家。

在使用PooledConnectionFactory做连接池来优化的时候,我原先按照官方API以及网上其他的相关资料引用了下面的包:

geronimo-j2ee-management_1.1_spec-1.0.1.jar
geronimo-jms_1.1_spec-1.1.1.jar
slf4j-api-1.7.5.jar
activemq-all-5.9.0.jar
activemq-client-5.9.0.jar
activemq-core.jar
activemq-protobuf-1.1.jar
activemq-pool-5.9.0.jar

在最开始的时候,使用每次都获取一个新的连接,使用完成后就立即关闭。这样在创建连接的时候是会消耗很多资源的,所以采用了连接池

好了,开始坑了,不管是网上的哪一篇帖子(我所浏览的)都使用的相同的jar包,在使用下面语句的时候都没说会报错:

//设置最大连接数pooledConnectionFactory.setMaxConnections(200);//设置最小pooledConnectionFactory.setMaximumActiveSessionPerConnection(50);     //后台对象清理时,休眠时间超过了3000毫秒的对象为过期pooledConnectionFactory.setTimeBetweenExpirationCheckMillis(3000);
但是在我实际使用的时候,都是错的。表示没有相关的方法,仔细查阅文档后才发现:

PooledConnectionFactory的全限定名为:org.apache.activemq.jms.pool.PooledConnectionFactory

但是我目前应用的包都是找不到这个这个地方的,使用的是org.apache.activemq.pool.PooledConnectionFactory这个,而这个里面是没有相关的方法的,然后回去找所以的jar包,才发现,我们应该使用的是activemq-jms-pool-5.9.0.jar而不是activemq-pool-5.9.0.jar。

除此之外,这里还需要另一个依赖包:commons-pool-1.6.jar,只有将这个包也引入之后才能正常使用。

OK,这就是在使用是遇到的一个问题,但是在网上却没有找到资源解决,撰此文以记之,同时也分享给大家。


0 0