activemq配置文件|用java代码如何设置activemq消息持久化到数据库中

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

ActiveMQ持久化消息的二种方式;1、持久化为文件这个装ActiveMQ时默认就是这种,只要设置消息为持久化就可以了。涉及到的配置和代码有:<persistenceAdapter><kahaDB directory="${activemq.base}/data/kahadb"/></persistenceAdapter>procer.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_acks2:activemq_lock3:activemq_msgs

㈡ 如何在linux上配置activemq集群

配置ActiveMQ的集群需要修改conf目录下的activemq.xml

具体信息

配置方式:Master-Slave方式

对于ActiveMQ有两种运行方式,一种是放入lib,和web应用一同启动,另外一种是作为单独的mq服务器运行,因为涉及了cluster,我们采用了单独运行的配置。

下载并解压后

我们进入activeMq目录。

进入%ActiveMQ%/bin

选择启动activemq.bat

如果启动过程中没有出现错误,我们就可以进行其他的配置。

配置文件的位置在%ActiveMQ%/conf中

编写测试程序:一个用来发送Message,一个用来接收Message

配置文件

修改conf目录下的activemq.xml文件

name="host61616" uri="static://(tcp://192.168.180.69:61616,tcp://192.168.180.69:11616)" />

name="host11616" uri="static://(tcp://192.168.180.69:61616,tcp://192.168.180.69:11616)" />

具体看http://embed.21ic.com/了解

㈢ c++ activemq start失败

原因及解决方法:1、主机hostname有非法字符修改主机hostname的时候,不小心写入了非法字符,如下划线“_”,导致服务启动失败。解决:修改hostname就可以了。修改hostname的方法:1、方法一hostnamectl命令修改,不需要重启新开一个窗口就生效。语法: hostnamectl set-hostname 新主机名。2、方法二:修改配置文件 /etc/hostname 保存退出。修改完成之后需要重启生效。3、方法三:临时修改主机名。hostname 新主机名。hostname命名规则可参考:https://en.wikipedia.org/wiki/Hostname2、配置文件IP配置不正确。配置文件conf/activemq.xml文件IP配置不正确,activemq启动失败。解决:IP修改正确就好了。不过网上也帖子提到关于“Cannot assign requested address”报错的其他原因和解决方法:1、/etc/hosts解析异常,不能解析本机IP,需手动添加 127.0.0.1 localhost。2、/etc/hosts文件权限异常,修改为644。

㈣ activemq 一台服务器如何配置多个broker

步骤如下:

1、把整个conf文件夹复制一份,比如叫conf2

2、修改里面的activemq.xml文件

①brokerName不能和原来的重复

②数据存放的文件名称不能重复,比如<kahaDB directory = "${activemq.data}/kahadb2"/>

③所有涉及的transportConnector的端口,都要和原来的不一样。注意不要超出端口的范围(0-65535)

3、修改jetty.xml,把里面的默认端口号8161改成别的,不如9161

4、到bin下面,复制一个activemq,比如叫activemq2

①修改程序的id,不能和原来的重复,ACTIVEMQ_PIDFILE="$ACTIVEMQ_DATA/activemq2.pid"

②修改配置文件路径ACTIVEMQ_CONF="$ACTIVEMQ_BASE/conf2"

③修改端口,tcp://localhost:61616把61616改成和activemq.xml里面的tcp端口一致。请注意,在activemq5.9.0版本中是这么修改。但我使用的是最新的5.12.1版本,在activemq中找不到该tcp端口的配置,折腾了半天才发现该版本把这个配置挪到了env文件。所以就需要拷贝一份env,比如就叫env2吧,然后再env2里面把61616改成和activemq.xml里面的tcp端口一致。最后别忘了把activemq2里面对env的引用改成env2。ACTIVEMQ_CONFIGS="/etc/default/activemq $HOME/.activemqrc $ACTIVEMQ_HOME/bin/env2"

现在你可以到activemq的bin目录下分别执行./activemq start 和 ./activemq2 start 了。这两个broker服务应该能正常启动了。


赞 (0)