mq数据写到oracle,ActiveMQ 消息持久化到數據庫(Mysql、SQL Server、Oracle、DB2等)

ActiveMQ具體就不介紹了,直接介紹如何講ActiveMQ持久化到本地數據庫,以SQL Server 2008 R2為例

1.下載ActiveMQ后直接解壓,我下載的是apache-activemq-5.14.5-bin.zip。

2.打開conf下的activemq.xml,我要配置的是將消息持久化到SQL Server 2008 R2

3.增加配置:

1 Mysql持久化bean:2

3

4

5

6

7

8

9

10

11 SQL Server持久化bean:12

13

14

15

17

18

19

20

21 Oracle持久化bean:22

23

24

25

26

27

28

29

30

31

32 DB2持久化bean:33

34

35

36

37

38

39

40

41

如圖所示:配置MSSQL數據庫

530f4605a3bf0350d19e2b3d9e8f5981.png

根據自己的服務器設定相關的信息。

4.修改持久化設置:

1

2   

3

如圖所示:配置jdbcPersistenceAdpater

25ad5c1fbdfcfc72b33c0aee68a9a54e.png

5.最后,別忘了將MSSQL Server JDBC驅動sqljdbc4-4.0.jar(可以到微軟官網下載https://msdn.microsoft.com/zh-cn/library/mt683464.aspx)拷貝到lib目錄下,

好了,運行bin下的activemq.bat。

在數據庫中已建立好ActiveMQ持久化需要的數據表。如圖所示:如果配置成功,默認會創建三張表:

activemq_acks:ActiveMQ的簽收信息。

activemq_lock:ActiveMQ的鎖信息。

activemq_msgs:ActiveMQ的消息的信息

8eb28416045aeaaece8da6471d7b356e.png

6.當表已成功創建,再次修改持久化設置中的創建表設置(只要第一次創建表成功就行了):

createTablesOnStartup="false"

7.管理登錄:

http://localhost:8161默認用戶和密碼均為admin

a86a49e45df86cb52b8ff49fffd3a1b2.png

OK配置完成!

PS:如果你發現ActiveMQ添加了持久化后,發了消息,為什么activemq_msgs表中沒有記錄任何數據,其實這個是需要我們自己在代碼里控制的,需要設置MsgDeliveMode為Persistent,具體代碼如下:

1 //PERSISTENT:保存到磁盤,consumer消費之后,message被刪除。2 //NON_PERSISTENT:保存到內存,消費之后message被清除。3 //注意:堆積的消息太多可能導致內存溢出。

4 producer.Send(msg,MsgDeliveryMode.Persistent,level,TimeSpan.MinValue);

f073124b0dcf3ef7c6295bf025053f92.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值