ActiveMQ配置JDBC / JDBC message store with active 持久化

1.ActiveMQ配置JDBC来持久化消息

  1. 首先更改activemq.xml    在你安装地址 conf文件夹里
  2. 将ActiveMQ默认的持久化存储方式kahaDB 注释掉换成<jdbcPersistenceAdapter ....
  3. createTablesOnStartup 第一次启动为ture  会自动创建三个表,第二次改为false 否在表已存在报异常 
<persistenceAdapter>
            <!--<kahaDB directory="${activemq.data}/kahadb"/>-->
	    <jdbcPersistenceAdapter dataDirectory="${activemq.base}/data" dataSource="#mysql-ds" createTablesOnStartup="true"/>						
        </persistenceAdapter>

在</broker>外  添加jdbc的bean

<bean id="mysql-ds" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://127.0.0.1:3306/activemqjdbc?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=UTC&amp;relaxAutoCommit=true"/>
        <property name="username" value="root"/>
        <property name="password" value="root"/>
        <property name="poolPreparedStatements" value="true"/>
    </bean>

serverTimezone=UTC   UTC代表的是全球标准时间,MySQL jdbc 6.0 版本以上必须配置此参数 否则会报异常如下

Could not get JDBC connection: Cannot create PoolableConnectionFactory (The server time zone value '???ú±ê×??±??' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.) | org.apache.activemq.store.jdbc.JDBCPersistenceAdapter | main
java.sql.SQLException: Cannot create PoolableConnectionFactory (The server time zone value '???ú±ê×??±??' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.)

我引的org.apache.commons.dbcp2.BasicDataSource

其次往lib文件夹里添加包 

链接:百度网盘-链接不存在
提取码:7etq

ActiveMQ配置JDBC message store with azhiive 持久化

  1.  只需要把activemq.xml里的<persistenceAdapter></persistenceAdapter>整段注释掉换成
  2. <!--消息存储持久化JDBC message store with activemq journal-->
    <persistenceFactory>
    	<journalPersistenceAdapterFactory 
    		journalLogFiles="4" 
    		journalLogFileSize="32768" 
    		useJournal="true" 
    		useQuickJournal="true"
    		dataSource="#mysql-ds"
    		dataDirectory="activemq-data"/>
    </persistenceFactory>

    启动就好使了

第一次写文章,多多支持!!!

还有如果出错起不来一定要看看data文件夹里的activemq.log日志里报什么错,一般看看就懂了就能解决

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值