activemq数据库
1. 用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_acks
2:activemq_lock
3:activemq_msgs
2. apache-activemq-5.8.0怎么连接数据库
安装环境:linux rhe
activemq版本:5.8.0
1.从http://activemq.apache.org/download.html地址下载apache-activemq-5.8.0-bin.tar.gz包
2.解压缩到指定的目录
Shell代码
tar zxvf apache-activemq-5.8.0-bin.tar.gz -C /usr/local
解压缩后会在/usr/local下生成apache-activemq-5.8.0目录,其中bin目录下就是activeMQ的执行脚本存在的位置了。
3.如果启动脚本无法执行,我们需要修改一下权限
Shell代码
cd /usr/local/apache-activemq-5.8.0/bin
chmod 775 activemq
4.设置activeMQ配置环境.activemqrc
Shell代码
bin/activemq setup ~/.activemqrc
5.启动activeMQ
在activemq主目录键入如下命令:
Shell代码
bin/activemq start
然后会看到控制台日志输出如下:
Shell代码
INFO: Loading '/home/chenzhou/.activemqrc'
INFO: Using java '/usr/java/jdk1.6.0_03/bin/java'
INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details
INFO: pidfile created : '/usr/local/apache-activemq-5.8.0/data/activemq-localhost.localdomain.pid' (pid '18567')
我们也可以把日志输出到指定的日志文件中
Shell代码
bin/activemq start > /tmp/smlog 2>&1 &
然后日志就输出到/tmp/smlog文件中了
注意:官方文档中标明了如果按上述的方式启动后,如果我们把linux终端窗口关闭的话,则服务也会停止