• ActiveMQ持久化消息的三种方式


    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt362

    本文只介绍三种方式,分别是持久化为文件,MYSql,Oracle。下面逐一介绍。

    A:持久化为文件

         这个你装ActiveMQ时默认就是这种,只要你设置消息为持久化就可以了。涉及到的配置和代码有

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

    producer.Send(request, MsgDeliveryMode.Persistent, level, TimeSpan.MinValue);

    B:持久化为MySql

         你首先需要把MySql的驱动放到ActiveMQ的Lib目录下,我用的文件名字是:mysql-connector-java-5.0.4-bin.jar

         接下来你修改配置文件

       <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="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>

    从配置中可以看出数据库的名称是activemq,你需要手动在MySql中增加这个库。

    然后重新启动消息队列,你会发现多了3张表

    1:activemq_acks

    2:activemq_lock

    3:activemq_msgs

    C:持久化为Oracle

        和持久化为MySql一样。这里我说两点

    1;在ActiveMQ安装文件夹里的Lib文件夹中增加Oracle的JDBC驱动。驱动文件位于Oracle客户端安装文件中的product11.1.0client_1jdbclib文件夹下。

    2:

     <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:@10.53.132.47:1521:cmfudv1"/>
       <property name="username" value="qdcommu"/>
       <property name="password" value="qdcommu"/>
       <property name="maxActive" value="200"/>
       <property name="poolPreparedStatements" value="true"/>
     </bean>

    这里的jdbc:oracle:thin:@10.53.132.47:1521:cmfudv1按照自己实际情况设置一下就可以了,特别注意的是cmfudv1是SID即服务名称而不是TNS中配置的节点名。各位同学只需要替换IP,端口和这个SID就可以了。

  • 相关阅读:
    vim 学习笔记系列(前言)
    12306网站推出图片验证 反破解
    如何提升电脑的速度(五年时间收集各家精华,绝对史上最全)
    电脑维修和维护 毕业总结及经验报告
    留学生 电脑安全与维护手册 (留学须知)
    Progress数据库配置与应用
    润乾报表与DERBY数据库的创建连接详解
    图形报表部署在Linux下出现乱码解决办法
    sqlserver为数据库表增加自增字段
    五种常用web服务器jvm参数设置
  • 原文地址:https://www.cnblogs.com/grefr/p/6088390.html
Copyright © 2020-2023  润新知