当前位置: 首页 > news >正文

ActiveMq持久化数据

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客户端安装文件中的product\11.1.0\client_1\jdbc\lib文件夹下。

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就可以了。

后记:

这篇文章就是简单的记录一下操作过程,避免后来的同学走弯路

以上从网上摘录,不过我下载的是apache-activemq-5.14.3,改成向mySql持久化数据时,启动mq报错,报cannot find class 【org.apache.commons.dbcp.BasicDataSource】,相信有个别

同学从官网下载的最新mq,也会报这个错。

解决办法:

首先分析BasicDataSource在.apache.commons.dbcp.BasicDataSource下,但是mq中没有这个jar包,只有(commons-dbcp2-2.1.1)org.apache.commons.dbcp2.BasicDataSource,所以配置mysql时,要将dbcp改成dbcp2,由于commons-dbcp所用的连接池出现版本升级,因此commons-dbcp2中的数据库池连接配置也发生了变化,并且

版本1.x中最大活动连接数属性名称为:maxActive;

版本2.x中最大活动连接数属性名称为:maxTotal

也要修改。

重启成功

可以参考:https://my.oschina.net/u/2284972/blog/662033

 

相关文章:

  • ERROR! The server quit without updating PID file (/usr/local/var/mysql/bogon.pid).
  • 前端知识小计
  • Sql语法巩固哦!
  • C++中将string类型转化为int类型
  • lduan office 365 ActiveDirectory同步 八
  • error: src refspec XXX matches more than one
  • 标记,上传并下载自己创建的镜像 image
  • Xamarin.Forms中为WebView指定数据来源Source
  • LLVM 4中将加入新的LLVM链接器LLD
  • SpringInAction--Bean参数的自动注入
  • [Asp.net MVC]Bundle合并,压缩js、css文件
  • 初识kbmmw 5 中httpsys的支持
  • 算法笔记_052:蓝桥杯练习Multithreading(Java)
  • 单独一页插入页脚
  • 上传网站流程
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • C++11: atomic 头文件
  • CSS中外联样式表代表的含义
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • express.js的介绍及使用
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • JavaScript-Array类型
  • laravel with 查询列表限制条数
  • mac修复ab及siege安装
  • markdown编辑器简评
  • Odoo domain写法及运用
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • Vue官网教程学习过程中值得记录的一些事情
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 复杂数据处理
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 简单实现一个textarea自适应高度
  • 通过npm或yarn自动生成vue组件
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • Android开发者必备:推荐一款助力开发的开源APP
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • # .NET Framework中使用命名管道进行进程间通信
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #QT(一种朴素的计算器实现方法)
  • (4)logging(日志模块)
  • (5)STL算法之复制
  • (C语言)fread与fwrite详解
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (zt)最盛行的警世狂言(爆笑)
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .Net FrameWork总结
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .net获取当前url各种属性(文件名、参数、域名 等)的方法
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2