這一段給公司開發消息總線有機會研究ActiveMQ,今天撰文給你們介紹一下他的持久化消息。本文只介紹三種方式,分別是持久化爲文件,MYSql,Oracle。下面逐一介紹。java
這個你裝ActiveMQ時默認就是這種,只要你設置消息爲持久化就能夠了。涉及到的配置和代碼有mysql
<persistenceAdapter> <kahaDB directory="${activemq.base}/data/kahadb"/> </persistenceAdapter> producer.Send(request, MsgDeliveryMode.Persistent, level, TimeSpan.MinValue);
你首先須要把MySql的驅動放到ActiveMQ的Lib目錄下,我用的文件名字是:mysql-connector-java-5.0.4-bin.jarsql
接下來你修改配置文件數據庫
<persistenceAdapter> <jdbcPersistenceAdapter dataDirectory="${activemq.base}/data" dataSource="#derby-ds"/> </persistenceAdapter>
在配置文件中的broker節點外增長apache
<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中增長這個庫。oracle
而後從新啓動消息隊列,你會發現多了3張表url
1:activemq_acksspa
2:activemq_lockcode
3:activemq_msgsxml
和持久化爲MySql同樣。這裏我說兩點
1;在ActiveMQ安裝文件夾裏的Lib文件夾中增長Oracle的JDBC驅動。驅動文件位於Oracle客戶端安裝文件中的product\11.1.0\client_1\jdbc\lib文件夾下。
2:
<bean id="derby-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <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"/> <property name="maxActive" value="200"/> <property name="poolPreparedStatements" value="true"/> </bean>
這裏的jdbc:oracle:thin:@10.53.132.47:1521:cmfudv1按照本身實際狀況設置一下就能夠了,特別注意的是cmfudv1是SID即服務名稱而不是TNS中配置的節點名。各位同窗只須要替換IP,端口和這個SID就能夠了。