用java代码如何设置activemq消息持久化到数据库中?

 我来答
匿名用户
推荐于2018-04-14
展开全部
  ActiveMQ持久化消息的二种方式;
  1、持久化为文件
  这个装ActiveMQ时默认就是这种,只要设置消息为持久化就可以了。涉及到的配置和代码有:
  <persistenceAdapter>
  <kahaDB directory="${activemq.base}/data/kahadb"/>
  </persistenceAdapter>
  producer.Send(request, MsgDeliveryMode.Persistent, level, TimeSpan.MinValue);

  2、持久化为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
糜初蕊
推荐于2016-05-07 · 超过80用户采纳过TA的回答
知道答主
回答量:145
采纳率:83%
帮助的人:63.8万
展开全部
<persistence>
<jdbcPersistence dataSourceRef=" mysql-ds"/>
</persistence>
<bean id="mysql-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="poolPreparedStatements" value="true"/></bean>我能否在java代码中进行设置呢?因为我是在eclipse中导入的activemq-all-5.2.0.jar包,开发的系统,包中没有activemq.xml文件。而且时间比较紧,我没有用spring。 而且我是把broker嵌入在eclipse中启动的,代码如下:
BrokerService broker = new BrokerService();
broker.setUseJmx(true);
broker.setBrokerName(brokerName);
broker.addConnector("tcp://localhost:61616");
broker.start();
问题补充:robertliudeqiang 写道引用我能否在java代码中进行设置呢?因为我是在eclipse中导入的activemq-all-5.2.0.jar包,开发的系统,包中没有activemq.xml文件。而且时间比较紧,我没有用spring。 而且我是把broker嵌入在eclipse中启动的,代码如下: 恩,你的使用情况我也是头一次听到,提供一种思路吧,可以试试,不一定行:
你可以把activemq-all-5.2.0.jar解包,然后把activemq.xml放进去(可以放在根目录和META-INF目录都试一下),再重新打成jar包。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式