`
cesymm
  • 浏览: 29189 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ActiveMq集群 JDBCMaster Slave 出现的问题,欢迎讨论

 
阅读更多
在做ActiveMq集群 JDBCMaster Slave遇到几个问题。

有三个broker,bk1,bk2,bk3共离同一数据库db

操作步聚.

1.启动bk1,bk2,bk3.不连入任何客户端,如果我停止bk1,怎么确认现在的mater是哪个bk???????????



2.如果一个客户端连上bk1,一直发送消息,此时down掉bk1,共发送10条消息,数据库中就有10条记录,最大的ID为10.
由于bk1down掉,请求转到bk2数据库继续持久化,此时如果down掉bk2时,又发送的10条消息,那么数据库中的消息最大id为20,共20条消息 。

bk2down 掉之后转到bk3,又增加了10条消息 最大id为30,共20条消息 。

此时我又启动了BK1,down掉bk3,此时再存入消息 时,id值为11,为上次bk1down掉时的最大消息 ID值。

存入数据时报错
va.lang.Throwable: org.h2.jdbc.JdbcBatchUpdateException: Unique index or primary key violation: "PRIMARY KEY ON PUBLIC.ACTIVEMQ_MSGS(ID)"; SQL statement:
INSERT INTO ACTIVEMQ_MSGS(ID, MSGID_PROD, MSGID_SEQ, CONTAINER, EXPIRATION, PRIORITY, MSG, XID) VALUES (?, ?, ?, ?, ?, ?, ?, ?) [23505-172]
at org.h2.jdbc.JdbcPreparedStatement.executeBatch(JdbcPreparedStatement.java:1167) ~[h2-1.3.172.jar:1.3.172]
at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297) ~[na:na]
at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297) ~[na:na]
at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297) ~[na:na]



请问有什么好的解决方案吗?????????????????
分享到:
评论
1 楼 cesymm 2013-07-26  
终于知道什么问题了,是数据库不支持锁。

我用的是h2数据库,不支持数据的各种特性

重复上面步聚,再当bk1启动时,由于数据库不支持,锁级别,bk1马上从数据库load最大值。

但切换到bk1时,bk1保存最大值,已是旧值 ,再保存数据库消息时,就会报主键重复的错误 !!!!!!

相关推荐

    ActiveMQ 集群——JDBC Master Slave + Broker Cluster

    ActiveMQ 集群中JDBC Master Slave + Broker Cluster的整合

    4.7、activemq 集群 conduitSubscriptions 均衡消费和master slave,jdbc存储1

    -- ${activemq.data}/kahadb"/> --> <jdbcPersistenceAdapter dat

    activemq集群安装

    从 ActiveMQ 5.9 开始,ActiveMQ 的集群实现方式取消了传统的 Master-Slave 方式,增加了基于 ZooKeeper + LevelDB 的 Master-Slave 实现方式,其他两种方式目录共享和数据库共享依然存在。 三种集群方式的对比: (1...

    ActiveMQ.rar

    包括: 队列消费者集群、Broker的集群、 Master Slave等 n 九: Destination高级特性 包括: 通配符、组合队列、配置启动的Destinations、 删除不活动的 Destinations、 Destination选项、虚拟Destinations、镜像...

    单点登录源码

    ActiveMQ | 消息队列 | [http://activemq.apache.org/](http://activemq.apache.org/) JStorm | 实时流式计算框架 | [http://jstorm.io/](http://jstorm.io/) FastDFS | 分布式文件系统 | ...

    java开源包1

    缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java...

    java开源包11

    缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java...

    java开源包2

    缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java...

    java开源包3

    缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java...

    java开源包6

    缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java...

    java开源包5

    缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java...

    java开源包10

    缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java...

    java开源包4

    缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java...

    java开源包8

    缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java...

    java开源包7

    缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java...

    java开源包9

    缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java...

    java开源包101

    缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java...

    Java资源包01

    缓存读取自redis的slave节点,写入到redis的master节点。 Java对象的SQL接口 JoSQL JoSQL(SQLforJavaObjects)为Java开发者提供运用SQL语句来操作Java对象集的能力.利用JoSQL可以像操作数据库中的数据一样对任何Java...

    JAVA上百实例源码以及开源项目

    百度云盘分享 简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对...

    JAVA上百实例源码以及开源项目源代码

    Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 ...

Global site tag (gtag.js) - Google Analytics