ActiveMQ添加了mysql的持久化后,发了消息,为什么MSGS表中没有记录.

javame 发布于 2015/04/12 15:24
阅读 1K+
收藏 0
加载中
0
甘薯
甘薯

查看activeMQ的配置是否正确连接到了数据库,

如果正确无误, 那么查看activeMQ的log文件.

0
MLeo
MLeo

我的也是,数据库没有数据的………………

求助

0
丿
丿wizard
能把配置持久化de配置发我看看吗?我试了很多遍,MYSQL都没有自动创建表
0
zhuxinyu
zhuxinyu

这个里面情况可能有多种

1. 发送的producer未曾设置持久化

2. 如果发布持久化topic,此时如果还未曾有订阅者曾今订阅过此topic。这个时候就不会有任何记录持久化到表中。因为持久化一个没有订阅者的消息是浪费

3. 如果是queue,那么要先清楚是不是之前有消费者已经有消费过了。 消费之后这些消息将会被删除

4. 在部分场景中,activemq为了高速运作,会延迟将信息写入数据库中,那么测试看到的情况就像是没有

 其他的还可以再测试一下


0
局座
局座

这个消息发送者需要设置持久化:,不知LZ设置了没有。

0
春秋苣
春秋苣

引用来自“sunshsnjin”的评论

这个消息发送者需要设置持久化:,不知LZ设置了没有。

<persistenceAdapter>  
            <jdbcPersistenceAdapter  dataDirectory="${activemq.base}/data" dataSource="mysql-ds"/>
        </persistenceAdapter>

<bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
  <property name="url" value="jdbc:mysql://localhost:3306/activemq?relaxAutoCommit=true"/>
  <property name="username" value="root"/>
  <property name="password" value="root"/>
  <property name="poolPreparedStatements" value="true"/>
</bean>
      配置应该就是这样配置吧,再往lib路径下放个Jar包,为什么我这样改后启动不了了!kahaDB持久化机制可以正常启动的!

0
mryangzc
mryangzc
//设置客户端id
connection.setClientID("client-1");

connection.start();

这样就可以了

返回顶部
顶部