ActiveMQ中如果使用mysql innodb的同时,开启了binlog,那么在ack消息的时候,日志里就可会报错:java.sql.SQLException: Cannot execute statement: binlogging impossible since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.
这是因为,mysql默认的binlog_format是STATEMENT,而在READ COMMITTED或READ UNCOMMITTED隔离级别下,innodb只能使用的binlog_format是ROW。
而在ActiveMQ的store JDBC实现中(TransactionContext),为了提高并发性能,使用的是READ UNCOMMITTED:
- // a cheap dirty level that we can live with
- private int transactionIsolation = Connection.TRANSACTION_READ_UNCOMMITTED;
解决办法有两个:
1、在mysql里设置binlog_format为ROW,此时binlog会增大,但是一般来说对数据复制支持的更好,建议单机高性能环境下使用。
2、在activemq.xml的jdbcPersistenceAdapter里配置transactionIsolation=“4”,即TRANSACTION_REPEATABLE_READ,此时事务更严格,会影响性能,建议在集群、强实时一致、不强调单机性能的情况下使用。
相关推荐
ActiveMQ配置Mysql8为持久化方式所需Jar包
activemq-5.15.15 JDBC持久化mysql8.0+的activemq.xml
NULL 博文链接:https://showlike.iteye.com/blog/2000117
本人在学习activemq,然后 测试完成的demo, 包含了queue,topic,持久化到mysql,订阅模式,包好用
运行环境是 win10 64位系统,开发环境是VS2015 ,Qt 5.11.2。开发activemq发送程序,遇到问题 (1)Qt5AxContainer.lib error LNK2038: 检测到“_ITERATOR_...activemq::library::ActiveMQCPP::initializeLibrary();
spring +activemq topic消息持久化订阅实例,整个项目中有activemq和spring的整合的所有实例,topic的持久化配置是在ApplicationContext3C、ApplicationContext3C2以及ApplicationContext3P三个中,消息生产者:...
在网上找了很多的topic持久化的Demo做了很多的测试,现把熟肉呈上。
一个订阅通道,支持多个客户端监听,当某个客户端掉线后,再上线的时候可以收到它没有接收到的消息。
activemq消息持久化所需Jar包,详情请参见博文:http://blog.csdn.net/l1028386804/article/details/68997105
activeMQ-5.15版本,里面更改了activeMQ配置,新增了mysql的连接内容。lib里添加了durid和mysql连接的jar文件
ActiveMQ_使用failover模式进行连接切换时,线程断开 ,ActiveMQ_使用failover模式进行连接切换时,线程断开
该文档详细描述了linux环境下的 Activemq 持久化、集群环境的搭建步骤,以及测试步骤
activemq消息持久化所需Jar包,亲测可用https://blog.csdn.net/weixin_42109071/article/details/91349406
一份详细ActiveMQ的使用教程
这个是官网的activeMQ软件,免安装版,5.15.4版本,包括32/64位
ActiveMQ整合MySql实现消息持久化配置文件
activemq+springMVC+mysql 应用实例(完整工程,创建数据库后可用) eclipse导入后,创建数据库,配置tomcat后启动即可使用 创建数据库的语句如下: create database activemq; use activemq; create table user ...
java连接mysql的驱动包(包含源码文档等,亲测可用)
前端:angularJS + Bootstrap 后台:SSM( springmvc+spring+mybatis) 数据库:mysql,使用mycat读写分离 开发模式:SOA 服务中间件:dubbox,需要和zookeeper配合使用 注册中心:zookeeper 消息中间件:Activemq,...
该demo主要用于activeMQ初学,队列消息监听和Topic消息监听