Activemq持久化消息到MySql数据库中

阅读更多

1.添加MySql数据源

       打开Activemq安装目录下的conf/activemq.xml文件,添加MySql数据源。默认情况下Activemq使用KahaDB存储,注解掉KahaDB配置,改为mysql配置如下:

 


< persistenceAdapter >
   
< jdbcPersistenceAdapter dataSource ="#MySQL-DS" />
persistenceAdapter >

 

该配置表示,我们将要使用名称为“MySQL-DS”的作为mysql数据源。

2. 配置MySql数据源

      在节点后面,增加MySQL数据源配置:

 


< bean id ="MySQL-DS" class ="org.apache.commons.dbcp.BasicDataSource" destroy-ethod ="close" >
   
< property name ="driverClassName" value ="com.mysql.jdbc.Driver" />
   
< property name ="url" value ="jdbc:mysql://127.0.0.1:3306/activemq?relaxAutoCommit=true" />
   
< property name ="username" value ="用户名" />
   
< property name ="password" value ="登录密码" />
   
< property name ="poolPreparedStatements" value ="true" />
bean >

 

此处配置类似于spring的Bean配置,id 要与上面的保持一致。

 

3. 配置完成后,将mysql驱动包加入到 Activemq 的 lib目录下,启动Activemq。查看activemq数据库会有三张表:activemq_acks  ,activemq_lock  ,activemq_msgs 

数据表activemq_msgs即为持久化消息表;

 

整个activemq持久消息到mysql数据库配置如下:

 

xml version="1.0" encoding="UTF-8" ?>
< beans xmlns ="http://www.springframework.org/schema/beans" xmlns:amq ="http://activemq.apache.org/schema/core" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation
="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd"
>

   

   
< bean class ="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" >
       
< property name ="locations" >
           
< value > classpath:/META-INF/credentials.properties value >
       
property >
   
bean >

   

   
< broker xmlns ="http://activemq.apache.org/schema/core" brokerName ="localhost" >
       

       
< destinationPolicy >
           
< policyMap >
               
< policyEntries >
                   
< policyEntry topic =">" producerFlowControl ="true" memoryLimit ="1mb" >
                       
< pendingSubscriberPolicy >
                           
< vmCursor />
                       
pendingSubscriberPolicy >
                   
policyEntry >
                   
< policyEntry queue =">" producerFlowControl ="true" memoryLimit ="1mb" >
                       

                   
policyEntry >
               
policyEntries >
           
policyMap >
       
destinationPolicy >

       

       
< managementContext >
           
< managementContext createConnector ="false" />
       
managementContext >

       

       

       
< persistenceAdapter >
           
< jdbcPersistenceAdapter dataSource ="#MySQL-DS" />
       
persistenceAdapter >

       

       
< transportConnectors >
           
< transportConnector name ="openwire" uri ="tcp://0.0.0.0:61616" />
       
transportConnectors >
   
broker >

   

   
<bean id="MySQL-DS" class="org.apache.commons.dbcp.BasicDataSource" destroy-thod="close">
   
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
   
<property name="url" value="jdbc:mysql://127.0.0.1:3306/activemq?relaxAutoCommit=true"/>
   
<property name="username" value="用户名"/>
   
<property name="password" value="登录密码"/>
   
<property name="poolPreparedStatements" value="true"/>
bean>
   

   
< import resource ="jetty.xml" />

beans >

 

你可能感兴趣的:(activemq,JMS,持久化消息,activemq持久化消息,mysql数据库)