永发信息网

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

答案:3  悬赏:80  手机版
解决时间 2021-01-24 23:53
用java代码如何设置activemq消息持久化到数据库中?
最佳答案
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
全部回答
<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包。
我能否在java代码中进行设置呢?因为我是在eclipse中导入的activemq-all-5.2.0.jar包,开发的系统,包中没有activemq.xml文件。而且时间比较紧,我没有用spring。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
茅台赖茅1816多少钱
这个角蛙是死了吗
当志愿者用英语怎么说
下列不属于鲫鱼适应水中生活的特点的是DA. 身
三相异步电动机的调速方法有那三种?
关于我的世界里的HIM
魅族mx6好看的全局主题
你好,我最近从日本买了个HMZ-T2,想看3D,(
发现lol里没有既能法强,同时大规模增加生命
日本挑起甲午战争的根本目的是A. 把朝鲜变成
地下城与勇士战记罗克希的眼泪简谱是什么拜托
【一块砖的尺寸】一块红砖厚度是多少厘米
松原江南好还是江北好?
曾经没追到。还吵了一架。把我们拉黑的女生解
【鲸鱼是什么动物】黄鲸是什么动物
推荐资讯
阿拉的地盘美发店地址在哪,我要去那里办事
我和我女朋友在饭店上班,每天都很累,我还要
鱼缸生绿藻怎么去除
Changing schools made a big difference___h
厕所冲水的声音…好恐怖吖
蓝月网络怎么去啊,我要去那办事
阿余轮胎商行地址好找么,我有些事要过去
兰溪市金顺汽车贸易有限公司地址在什么地方,
淅川县南阳美肤宝美容连锁我想知道这个在什么
张艺兴代言过什么
航拍美国字幕下载
污水处理厂TOT项目和参股项目前期费用的会计
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?