ActiveMQ 5.6默认持久化为kahadb, 数据默认存储在data/kahadb中。
此信息在conf/activemq.xml中有配置:
<persistenceAdapter>
<kahaDB directory="${activemq.base}/data/kahadb"/>
</persistenceAdapter>
Mysql数据库持久化:
1)安装Mysql数据库,并默认创建数据库activemq;
2)将mysql数据库驱动放入到activemq/lib文件下,这一步跟java调用mysql数据一样,需要有驱动的支持;
3)修改activemq.xml配置文件,
<persistenceAdapter>
<jdbcPersistenceAdapter dataDirectory="${activemq.base}/data" dataSource="#mysql"/>
</persistenceAdapter>
<bean id="mysql"class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost/activemq?relaxAutoCommit=true"/>
<property name="username" value="activemq"/>
<property name="password" value="activemq"/>
<property name="maxActive" value="200"/>
<property name="poolPreparedStatements" value="true"/>
</bean>
4)重启消息服务,activemq会自动在activemq数据库中创建一下三个表
activemq_acks、activemq_lock、activemq_msgs