JMS消息持久化,将ActiveMQ消息持久化到mySql数据库中

1.  前言java

ActiveMQ Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个彻底支持JMS1.1J2EE 1.4规范的 JMSProvider实现,尽管JMS规范出台已是好久的事情了,可是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。mysql

关于ActiveMQ 的详细介绍请参考:http://baike.baidu.com/view/433374.htm?fr=aladdinsql

关于JMS的详细介绍请参考:http://baike.baidu.com/subview/157103/12665866.htm?fr=aladdin数据库

ActiveMQ提供多种数据持久化方式:能够持久化到文件,也能够持久化到数据库,其中数据库能够支持MySQLOracle两种类型。apache

默认提供的是持久化到文件的方式,即activemq.xml文件中的:oracle

<persistenceAdapter>ide

<kahaDBdirectory="${activemq.base}/data/kahadb"/>url

</persistenceAdapter>spa

2.  步骤.net

本文重点接收的是持久化到MySQL中的配置方式:

2.1    添加MySQL驱动

首先须要把MySql的驱动放到ActiveMQLib目录下,我用的文件名字是:

mysql-connector-java-5.1.30-bin.jar

 commons-pool-1.6.jar

commons-dbcp-1.4.jar

2.2    修改配置文件activemq.xml

将其中的这段配置:

<persistenceAdapter>
<kahaDB directory="${activemq.base}/data/kahadb"/>
</persistenceAdapter>

修改成下面这段内容:

<persistenceAdapter>

        <jdbcPersistenceAdapter  dataSource="# mysql-ds "/>

</persistenceAdapter>

 

</broker>结点以后,增长数据源的配置,以下:

   <!-- MySql DataSource Sample Setup -->  

 <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/activemq?relaxAutoCommit=true"/>  

      <property name="username" value="root"/>  

      <property name="password" value="123456"/>  

      <property name="poolPreparedStatements" value="true"/>  

    </bean>  

        

    <!-- Oracle DataSource Sample Setup -->  

    <!--  

    <bean id="oracle-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:@localhost:1521:AMQDB"/>  

      <property name="username" value="root"/>  

      <property name="password" value="123456"/>  

      <property name="poolPreparedStatements" value="true"/>  

    </bean>  

 -->  

  

 

2.3    新建数据库

从配置中能够看出数据库的名称是activemq,须要手动在MySql中新建一个activemq的空数据库。

此时,从新启动MQ,就会发现activemq库中多了三张表:activemq_acksactivemq_lockactivemq_msgsOK,说明已经持久化成功啦!

相关文章
相关标签/搜索