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]
请问有什么好的解决方案吗?????????????????