天天看點

ActiveMQ持久化消息的三種方式

本文隻介紹三種方式,分别是持久化為檔案,mysql,oracle。下面逐一介紹。

a:持久化為檔案

     這個你裝activemq時預設就是這種,隻要你設定消息為持久化就可以了。涉及到的配置和代碼有

       <persistenceadapter>

           <kahadb directory="${activemq.base}/data/kahadb"/>

       </persistenceadapter>

producer.send(request, msgdeliverymode.persistent, level, timespan.minvalue);

b:持久化為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

c:持久化為oracle

    和持久化為mysql一樣。這裡我說兩點

1;在activemq安裝檔案夾裡的lib檔案夾中增加oracle的jdbc驅動。驅動檔案位于oracle用戶端安裝檔案中的product\11.1.0\client_1\jdbc\lib檔案夾下。

2:

   <property name="driverclassname" value="oracle.jdbc.driver.oracledriver"/>

   <property name="url" value="jdbc:oracle:thin:@10.53.132.47:1521:cmfudv1"/>

   <property name="username" value="qdcommu"/>

   <property name="password" value="qdcommu"/>

這裡的jdbc:oracle:thin:@10.53.132.47:1521:cmfudv1按照自己實際情況設定一下就可以了,特别注意的是cmfudv1是sid即服務名稱而不是tns中配置的節點名。各位同學隻需要替換ip,端口和這個sid就可以了。

特别說明:尊重作者的勞動成果,轉載請注明出處哦~~~http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt362