消息持久化,如果使用的Destination是Queue,那么使用的是activemq_msgs表,消费后立刻删除,如果使用的Destination是Topic,那么使用的是activemq_msgs和activemq_acks表,消息消费后数据不清除。
可能碰到坑:
- 将mysql-connector-java.jar放到ActiveMQ的lib目录下,如果使用了其他连接池,也要把连接池用到的jar包放到这里面来,ActiveMQ默认使用的是dbcp数据库连接池。
- 还记得jdbcPersistenceAdapter结点中的createTablesOnStartup属性吧,第一次启动的时候会新建表,后面就不需要了,可以把这个属性去掉,或者将值改为false,我没有去掉,在启动过程中也没有报错,可能也没有什么影响吧。
- 如果在启动过程中碰到了"java.lang.IllegalStateException: BeanFactory not initialized or already closed"异常,是因为操作系统的机器名中含有下划线符号,修改机器名并重启即可解决问题。