jboss mq 持久化DB

8 篇文章 0 订阅
jboss默认持久化db是用hsql存到server\default\data\hypersonic\下。配置文件是server\default\deploy\jms\hsqldb-jdbc2-service.xml。
我们可以在这里把它换成oracle,以避免在loadbalance环境下,一个Jboss挂掉了,它的message就全丢了。
改动其实很简单,在docs\examples\jms\目录下有oracle-jdbc2-service.xml定义的oracle的datasource,修改它定义的
<depends optional-attribute-name="ConnectionManager">jboss.jca:service=DataSourceBinding,name=OracleDS</depends>
把OracleDS换成你自己定义的ds文件中的名字,然后把它丢到server\default\deploy\jms\下去,删除hsqldb-jdbc2-service.xml!


项目上遇到一个问题,想要两个queue存到同一个db。在研究过程中,发现jboss mq实现存oracle,创建表是写在oracle-jdbc2-service.xml里面的。两个不同的queue会产生相同的table —— JMS_TRANSACTION表。该表中Transaction_ID和Message_ID决定了message的次序。本来想看看这两个ID会不会是oracle db的sequence,结果发现不是……而是源代码中的自增。PersistenceManager.createPersistentTx()方法中有Tx id = new Tx(nextTransactionId.increment());
悲剧……………………
这样以来,唯一的解决方案就只有改表名,或者给不同的queue创建不同的schema……囧
本来还想研究下jboss MQ的cluster方案,后来被同事提醒——mq的cluster必然要求jboss cluster……汗~那就玩大了……会破坏已有系统……
就这样吧……唉~
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值