ActiveMQ具体就不介绍了,直接介绍如何讲ActiveMQ持久化到本地数据库,以SQL Server 2008 R2为例
1.下载ActiveMQ后直接解压,我下载的是apache-activemq-5.14.5-bin.zip。

2.打开conf下的activemq.xml,我要配置的是将消息持久化到SQL Server 2008 R2

3.增加配置:

  1. Mysql持久化bean

  2. <bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  3. <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
  4. <property name="url" value="jdbc:mysql://localhost/activemq?relaxAutoCommit=true"/>
  5. <property name="username" value="activemq"/>
  6. <property name="password" value="activemq"/>
  7. <property name="poolPreparedStatements" value="true"/>
  8. </bean>
  9.  
  10. SQL Server持久化bean

  11. <bean id="mssql-ds" class="net.sourceforge.jtds.jdbcx.JtdsDataSource" destroy-method="close">
  12. <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/>
  13. <property name="url" value="jdbc:sqlserver://xx.xxx.x.xxx:1433;databaseName=DATANAME;user=USER;password=PASSWORD"/>
  14. <property name="user" value="USER"/>
  15. <property name="password" value="PASSWORD"/>
  16. </bean>
  17.  
  18. Oracle持久化bean

  19. <bean id="oracle-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  20. <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
  21. <property name="url" value="jdbc:oracle:thin:@10.53.132.47:1521:activemq"/>
  22. <propertyname="username" value="activemq"/>
  23. <property name="password" value="activemq"/>
  24. <property name="maxActive" value=""/>
  25. <property name="poolPreparedStatements" value="true"/>
  26. </bean>
  27.  
  28. DB2持久化bean

  29. <bean id="db2-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  30. <property name="driverClassName" value="com.ibm.db2.jcc.DB2Driver"/>
  31. <property name="url" value="jdbc:db2://hndb02.bf.ctc.com:50002/activemq"/>
  32. <property name="username" value="activemq"/>
  33. <property name="password" value="activemq"/>
  34. <property name="maxActive" value=""/>
  35. <property name="poolPreparedStatements" value="true"/>
  36. </bean>

  如图所示:配置MSSQL数据库

根据自己的服务器设定相关的信息。

4.修改持久化设置:

  1. <persistenceAdapter>
  2.   <jdbcPersistenceAdapter dataSource="#mssql-ds" createTablesOnStartup="true"/>
  3. </persistenceAdapter>

如图所示:配置jdbcPersistenceAdpater

5.最后,别忘了将MSSQL Server JDBC驱动sqljdbc4-4.0.jar(可以到微软官网下载https://msdn.microsoft.com/zh-cn/library/mt683464.aspx)拷贝到lib目录下,
好了,运行bin下的activemq.bat。
在数据库中已建立好ActiveMQ持久化需要的数据表。如图所示:如果配置成功,默认会创建三张表:

activemq_acks:ActiveMQ的签收信息。
activemq_lock:ActiveMQ的锁信息。
activemq_msgs:ActiveMQ的消息的信息

6.当表已成功创建,再次修改持久化设置中的创建表设置(只要第一次创建表成功就行了):
createTablesOnStartup="false"

7.管理登录:
http://localhost:8161默认用户和密码均为admin

OK配置完成!

PS:如果你发现ActiveMQ添加了持久化后,发了消息,为什么activemq_msgs表中没有记录任何数据,其实这个是需要我们自己在代码里控制的,需要设置MsgDeliveMode为Persistent,具体代码如下:

  1. //PERSISTENT:保存到磁盘,consumer消费之后,message被删除。
  2. //NON_PERSISTENT:保存到内存,消费之后message被清除。
  3. //注意:堆积的消息太多可能导致内存溢出。
  4. producer.Send(msg,MsgDeliveryMode.Persistent,level,TimeSpan.MinValue);

PS:如有疑问,请留言,未经允许,不得私自转载,转载请注明出处:https://www.cnblogs.com/xuliangxing/p/6866892.html

ActiveMQ 消息持久化到数据库(Mysql、SQL Server、Oracle、DB2等)的更多相关文章

  1. 从运维的角度分析使用阿里云数据库RDS的必要性--你不应该在阿里云上使用自建的MySQL/SQL Server/Oracle/PostgreSQL数据库

    开宗明义,你不应该在阿里云上使用自建的MySQL or SQL Server数据库,对了,还有Oracle or PostgreSQL数据库. 云数据库 RDS(Relational Database ...

  2. SQL Server,Oracle,DB2索引建立语句的对比

    原文引至:http://jvortex.blog.163.com/blog/static/16961890020122141010878/ 我们知道,索引是用于加速数据库查询的数据库对象.原理就是减少 ...

  3. MySQL&SQL server&Oracle&Access&PostgreSQL数据库sql注入详解

    判断数据库的类型 当我们通过一些测试,发现存在SQL注入之后,首先要做的就是判断数据库的类型. 常用的数据库有MySQL.Access.SQLServer.Oracle.PostgreSQL.虽然绝大 ...

  4. [PowerDesign]将数据库从SQL Server数据库转换为MySQL

    原文:[PowerDesign]将数据库从SQL Server数据库转换为MySQL 一.迁移Database Schema. 首先使用Sybase Powerdesigner的逆向工程功能,逆向出S ...

  5. .net(C#数据库访问) Mysql,Sql server,Sqlite,Access四种数据库的连接方式

    便签记录Mysql,Sql server,Sqlite,Access四种数据库的简单连接方式 //using MySql.Data.MySqlClient; #region 执行简单SQL语句,使用M ...

  6. 未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持。如果希望使用通知,请为此数据库启用 Service Broker

    昨晚遇到的这个问题,也知道Notifications service依赖底层的Service broker的.本以为只需要执行以下脚本对数据库启用Service broker即可. alter dat ...

  7. 在Windows Server 2008 R2 Server中,连接其他服务器的数据库遇到“未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持。如果希望使用通知,请为此数据库启用 Service Broker ”

    项目代码和数据库部署在不同的Windows Server 2008 R2 Server中,错误日志显示如下: "未启用当前数据库的 SQL Server Service Broker,因此查 ...

  8. SQL问题:未启用当前数据库的 SQL Server Service Broker

    数据库分离后,附加回到数据库,然后在程序中打开调用数据库的页面,出现如下问题:“未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持.如果希望使用通知,请为此数 ...

  9. 如何转换SQL Server 2008数据库到SQL Server 2005

        背景介绍: 公司一套系统使用的是SQL SERVER 2008数据库,突然一天收到邮件,需要将这套系统部署到各个不同地方(海外)的工厂,需要在各个工厂部署该数据库,等我将准备工作做好,整理文档 ...

随机推荐

  1. Linux环境下Redis安装配置步骤[转]

    在LInux下安装Redis的步骤如下: 1.首先下载一个Redis安装包,官网下载地址为:https://redis.io/ 2.在Linux下解压redis: tar -zxvf redis-2. ...

  2. FXAA

    无抗锯齿 SSAA  硬件抗锯齿,OpenGL自带,4x FXAA 从图中可以看出 FXAA抗锯齿,没有硬件MSAA抗锯齿效果好

  3. Opengl的gl_NormalMatrix

    原文地址:http://blog.csdn.net/ichild1964/article/details/9728357 参考:http://www.gamedev.net/topic/598985- ...

  4. 安卓开发笔记——TabHost组件(一)(实现底部菜单导航)

    什么是TabHost? TabHost组件的主要功能是可以进行应用程序分类管理,例如:在用户使用windows操作系统的时候,经常见到如图所示的图形界面.     TabHost选项卡,说到这个组件, ...

  5. GCT之数学公式(几何部分)

    一.平面图形   二.空间几何体

  6. KSImageNamed项目图片智能提示

    下载地址:https://github.com/ksuther/KSImageNamed-Xcode PS:如果在插件未更新到支持Xcode 6.3.2的情况下,要在Xcode 6.3.2中使用,需要 ...

  7. 【Ubuntu】全局代理

    配置代理,Ubuntu下是修改/etc/environment,在后面加入: http_proxy="http://****.com:8080/" https_proxy=&quo ...

  8. 页面加载中jquery逐渐消失效果实现

    为了获得更好的用户体验,现在大多数网页都会在页面中加一个加载中效果,这里实现一个加载中逐渐消失的效果,以至于看上去不那么生硬. html: <div id="loading" ...

  9. requireJs压缩合并路径问题

    描述 随着前端开发的重要性,以及业务的复杂性,前端的模块化开发也被大众所接收,最常见的js框架requireJs,一个js文件对应一个模块,方便开发人员调试与维护,但是一个文件对应一个模块增加了htt ...

  10. SpringMVC由浅入深day01_2springmvc入门程序

    2 入门程序 2.1 需求 以案例作为驱动. springmvc和mybaits使用一个案例(商品订单管理). 功能需求:商品列表查询 2.2 环境准备 数据库环境:mysql5.5 先导入sql_t ...