ActiveMQ提供了可扩展的持久化方案,下面是我测试可行的oracle数据库持久化配置方案。
注意: 需要在ActiveMQ中加入jdbc依赖的jar包,实测用到的jar包有:
- commons-pool-1.5.4.jar
- commons-dbcp-1.4.jar
- ojdbc14-10.2.0.4.0.jar
如果没有上述jar包启动ActiveMQ服务器会报错。先下载上述jar包放到activemq安装目录下lib文件夹里,以前项目有用到可以直接拷贝过来。
ActiveMQ、SpringFramework为当前(2017-04-26)最新版本,数据库为oracle11gR2,具体配置如下:ActiveMQ消息模型采用的前一篇pub/sub方式,修改ActiveMQ持久化配置,打开安装目录conf文件夹activemq.xml文件,找到:
<persistenceAdapter>
<kahaDB directory="${activemq.data}/kahadb"/>
</persistenceAdapter>
修改为
<persistenceAdapter>
<jdbcPersistenceAdapter dataDirectory="${activemq.base}/data" dataSource="#derby-ds"/>
</persistenceAdapter>
在broker标签外加入配置:
<bean id="derby-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@192.168.2.24:1521:orcl"/>
<property name="username" value="yqsh_wx2"/>
<property name="password" value="yqsh_wx2"/>
<property name="maxActive" value="200"/>
<property name="poolPreparedStatements" value="true"/>
</bean>
配置完成后保存,启动ActiveMQ服务器,打开数据库可以看到多出三张表
启动idea,等待消息发布和接收,
在数据库中可以看到数据
测试完成。