对于queue的方式做到持久化很简单。每个消息只有一个消费者,只要将消息存入数据库,然后消费者取走信息即可,在这里我们讨论的是topic的持久化方式。
1.在这里我用的是oracle数据库,先将oracle的驱动包放入lib文件夹下,再配置activemq.xml文件中的配置信息
将原来的默认持久化方式改为使用jdbc的方式:
<!--配置JDBC适配器:-->
<persistenceAdapter>
<jdbcPersistenceAdapter dataDirectory="${activemq.base}/data" dataSource="#oracle-ds" useDatabaseLock="false"/>
</persistenceAdapter>
配置oracle-ds的bean,注意须将bean配置在broker节点之外
<bean id="oracle-ds" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>
<property name