ActiveMQ中使用mysql做持久化报错:Cannot execute statement: impossible to write to binary log since BINLOG_FORM
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,此时事务更严格,会影响性能,建议在 集群、强实时一致、不强调单机性能的情况下使用。
可以参见源码里的说明:
- /**
- * set the Transaction isolation level to something other that TRANSACTION_READ_UNCOMMITTED
- * This allowable dirty isolation level may not be achievable in clustered DB environments
- * so a more restrictive and expensive option may be needed like TRANSACTION_REPEATABLE_READ
- * see isolation level constants in {@link java.sql.Connection}
- * @param transactionIsolation the isolation level to use
- */
- public void setTransactionIsolation(int transactionIsolation) {
- this.transactionIsolation = transactionIsolation;
- }
相关推荐
### JIRA插件安装方法详解 #### 一、前言 在现代软件开发与项目管理领域,JIRA作为一款功能强大的工具,不仅能够帮助团队高效地跟踪问题、管理任务,还能通过丰富的插件进一步增强其功能性和灵活性。本文将详细...
安装Jira操作手册涉及的知识点涵盖了项目管理、缺陷跟踪、系统配置和部署等方面。Jira是一款专业的问题跟踪系统,广泛应用于软件开发团队中,用于提高项目管理的效率和质量。下面详细说明这些知识点: 1. 项目开发...
Linux系统JIRA安装借鉴 Linux系统JIRA安装借鉴是指在Linux操作系统下安装和配置JIRA项目管理工具的过程。JIRA是一款功能强大且灵活的项目管理工具,由Atlassian公司开发,可以帮助团队更好地管理项目和 TRACK 项目...
- 指定Jira安装路径为`/opt/jira`。 - 设置数据文件夹位置为`/data/jiradata`。 - 选择默认端口配置(HTTP:8080, Control:8005)。 - 选择安装为服务,以便自动启动。 #### 四、配置Jira 1. **安装MySQL驱动**...
- 执行安装文件,`./atlassian-jira-4.4-x64.bin`命令启动Jira安装程序。 - 使用命令行进行Jira的安装、配置以及启动服务。 2. Jira安装与配置: - 在安装过程中会根据提示选择是创建新的Jira安装还是升级现有的...
在本文中,我们将深入探讨如何在CentOS 7操作系统上安装和部署Atlassian的项目管理工具——Jira。Jira是一款强大的问题跟踪器和项目管理软件,广泛应用于软件开发团队,帮助他们进行缺陷追踪、任务管理和敏捷开发...
Linux下安装JIRA需要经过四个步骤:安装JDK、安装MySQL、安装Tomcat和安装JIRA文件。 Step 1: 安装JDK * 从官网下载JDK的安装包 * 将JDK的安装包上传到虚拟机或者服务器 * 在/usr/local/目录下面创建一个java目录 ...
6. 将MYSQL JDBC驱动包mysql-connector-java-版本号-bin.jar复制到JIRA安装目录下的/common/lib文件夹内。这样,JIRA应用在启动时能够加载并使用MYSQL JDBC驱动,与MYSQL数据库进行连接。 7. 如果希望JIRA服务在...
**JIRA安装说明书** JIRA是一款由Atlassian公司开发的项目管理和问题跟踪工具,广泛应用于软件开发团队,帮助团队管理任务、缺陷、需求和工作流程。以下是对JIRA安装过程的详细步骤和注意事项的总结: ### 一、...
首先,由于Jira(以版本7.2.3为例)与MySQL的新版本(如5.7)可能存在兼容性问题,因此我们需要安装MySQL 5.6。要卸载已有的MySQL 5.7,可运行以下命令: ```bash sudo dpkg -l | grep mysql sudo apt-get purge $...
JIRA产品非常完善且功能强大,安装配置简单,多语言支持、界面十分友好,和其他系统如CVS、Subversion(SVN)、VSS、LDAP、邮件服务整合得相当好,文档齐全,可用性以及可扩展性方面都十分出色,拥有完整的用户权限...
### Jira项目管理系统安装与配置详解 #### 一、Jira简介 Jira是一款由澳大利亚Atlassian公司开发的项目管理工具,集成了项目计划、任务分配、需求管理、错误跟踪等核心功能。它以强大的灵活性、友好的界面设计以及...
4. **启动JIRA**:进入JIRA安装目录下的bin目录,根据操作系统运行相应的启动脚本,如在Windows上双击`jira.bat`,在Linux或macOS上执行`./jira.sh`。 **二、JIRA配置** 1. **首次启动配置**:首次启动时,JIRA会...
《Jira安装指南》 1. 引言 本指南旨在提供详尽的Jira安装步骤,以便在项目开发过程中实现高效的任务管理、项目计划、需求跟踪和错误追踪。目标受众为所有系统管理员,无论您是初次接触还是有经验的Jira用户,此...
JDK的安装是Jira安装的前提条件。首先,需要下载JDK5.0,并安装到D:\JDK1.5目录下。安装过程中,需要注意的是双击安装时,先安装JDK,然后将安装文件夹改为D:\JDK1.5。接着,需要配置Java环境变量,新建系统变量JAVA...
【CentOS下安装JIRA详解】 在Linux环境中安装JIRA是一项关键的任务,特别是对于依赖高效项目管理和团队协作的企业而言。本文将详细介绍如何在CentOS操作系统上安装JIRA,包括必要的准备、安装步骤以及后续的配置。 ...
在Linux系统中安装Jira是一项常见的任务,尤其对于那些依赖这款强大的问题跟踪和项目管理工具的IT团队来说。本文档详细介绍了在Linux环境下安装Jira的步骤,包括JDK、MySQL和Tomcat的安装,以及Jira自身的部署。 ...
- 在JIRA安装过程中,可以选择连接外部MySQL数据库。 - 需要提供MySQL服务器的相关信息,如主机名、端口号、数据库名及登录凭据等。 - 确保MySQL驱动已正确安装并在JIRA配置文件中正确设置。 #### 运行设置向导 ...
**JIRA系统安装与使用手册** JIRA是一款由Atlassian公司开发的专业项目管理软件,尤其在敏捷开发领域中被广泛应用。本手册将详细介绍如何安装JIRA系统以及如何有效利用其功能进行项目管理和协作。 **一、JIRA系统...