JMS 之 ActiveMQ 启动时报锁定数据库的问题解决:activeMQ 的 broker 在启动时会锁定数据库。我们每个人在调试时,自己的运行环境中就会运行一个 broker,所以会出现争用锁的现象(如果只有一个人运行则不会出现这样的问题),报错如下:
- 2017 - 04 - 03 16 : 21 : 13,
- 481 | WARN | Could not create JDBC tables;
- they could already exist.Failure was: INSERT INTO ACTIVEMQ_LOCK(ID) VALUES(1) Message: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row - based logging.InnoDB is limited to row - logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.SQLState: HY000 Vendor code: 1665 | org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter | main2017 - 04 - 03 16 : 21 : 13,
- 490 | WARN | Failure details: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row - based logging.InnoDB is limited to row - logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED. | org.apache.activemq.store.jdbc.JDBCPersistenceAdapter | mainjava.sql.SQLException: Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row - based logging.InnoDB is limited to row - logging when transaction isolation level is READ COMMITTED or READ UNCOMMITTED.at com.mysql.jdbc.SQLError.createSQLException(SQLError.java: 1084)[mysql - connector - java - 5.1.30 - bin.jar: ] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java: 4232)[mysql - connector - java - 5.1.30 - bin.jar: ] at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java: 4164)[mysql - connector - java - 5.1.30 - bin.jar: ] at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java: 2615)[mysql - connector - java - 5.1.30 - bin.jar: ] at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java: 2776)[mysql - connector - java - 5.1.30 - bin.jar: ] at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java: 2832)[mysql - connector - java - 5.1.30 - bin.jar: ] at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java: 2781)[mysql - connector - java - 5.1.30 - bin.jar: ] at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java: 908)[mysql - connector - java - 5.1.30 - bin.jar: ] at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java: 788)[mysql - connector - java - 5.1.30 - bin.jar: ] at org.apache.commons.dbcp.DelegatingStatement.execute(DelegatingStatement.java: 264)[commons - dbcp - 1.4.jar: 1.4] at org.apache.commons.dbcp.DelegatingStatement.execute(DelegatingStatement.java: 264)[commons - dbcp - 1.4.jar: 1.4] at org.apache.commons.dbcp.DelegatingStatement.execute(DelegatingStatement.java: 264)[commons - dbcp - 1.4.jar: 1.4] at org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter.executeStatement(DefaultJDBCAdapter.java: 114)[activemq - jdbc - store - 5.14.4.jar: 5.14.4] at org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter.doCreateTables(DefaultJDBCAdapter.java: 92)[activemq - jdbc - store - 5.14.4.jar: 5.14.4] at org.apache.activemq.store.jdbc.JDBCPersistenceAdapter.init(JDBCPersistenceAdapter.java: 304)[activemq - jdbc - store - 5.14.4.jar: 5.14.4] at org.apache.activemq.broker.LockableServiceSupport.preStart(LockableServiceSupport.java: 89)[activemq - broker - 5.14.4.jar: 5.14.4] at org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java: 54)[activemq - client - 5.14.4.jar: 5.14.4] at org.apache.activemq.broker.BrokerService.doStartPersistenceAdapter(BrokerService.java: 675)[activemq - broker - 5.14.4.jar: 5.14.4] at org.apache.activemq.broker.BrokerService.startPersistenceAdapter(BrokerService.java: 659)[activemq - broker - 5.14.4.jar: 5.14.4] at org.apache.activemq.broker.BrokerService.start(BrokerService.java: 623)[activemq - broker - 5.14.4.jar: 5.14.4] at org.apache.activemq.xbean.XBeanBrokerService.afterPropertiesSet(XBeanBrokerService.java: 73)[activemq - spring - 5.14.4.jar: 5.14.4] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[: 1.8.0_45] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 62)[: 1.8.0_45] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43)[: 1.8.0_45] at java.lang.reflect.Method.invoke(Method.java: 497)[: 1.8.0_45] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java: 1700)[spring - beans - 4.1.9.RELEASE.jar: 4.1.9.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java: 1639)[spring - beans - 4.1.9.RELEASE.jar: 4.1.9.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java: 1568)[spring - beans - 4.1.9.RELEASE.jar: 4.1.9.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java: 539)[spring - beans - 4.1.9.RELEASE.jar: 4.1.9.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java: 476)[spring - beans - 4.1.9.RELEASE.jar: 4.1.9.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java: 303)[spring - beans - 4.1.9.RELEASE.jar: 4.1.9.RELEASE] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java: 230)[spring - beans - 4.1.9.RELEASE.jar: 4.1.9.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java: 299)[spring - beans - 4.1.9.RELEASE.jar: 4.1.9.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java: 194)[spring - beans - 4.1.9.RELEASE.jar: 4.1.9.RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java: 755)[spring - beans - 4.1.9.RELEASE.jar: 4.1.9.RELEASE] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java: 762)[spring - context - 4.1.9.RELEASE.jar: 4.1.9.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java: 480)[spring - context - 4.1.9.RELEASE.jar: 4.1.9.RELEASE] at org.apache.xbean.spring.context.ResourceXmlApplicationContext. (ResourceXmlApplicationContext.java: 64)[xbean - spring - 4.2.jar: 4.2] at org.apache.xbean.spring.context.ResourceXmlApplicationContext. (ResourceXmlApplicationContext.java: 52)[xbean - spring - 4.2.jar: 4.2] at org.apache.activemq.xbean.XBeanBrokerFactory$1. (XBeanBrokerFactory.java: 104)[activemq - spring - 5.14.4.jar: 5.14.4] at org.apache.activemq.xbean.XBeanBrokerFactory.createApplicationContext(XBeanBrokerFactory.java: 104)[activemq - spring - 5.14.4.jar: 5.14.4] at org.apache.activemq.xbean.XBeanBrokerFactory.createBroker(XBeanBrokerFactory.java: 67)[activemq - spring - 5.14.4.jar: 5.14.4] at org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java: 71)[activemq - broker - 5.14.4.jar: 5.14.4] at org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java: 54)[activemq - broker - 5.14.4.jar: 5.14.4] at org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java: 87)[activemq - console - 5.14.4.jar: 5.14.4] at org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java: 63)[activemq - console - 5.14.4.jar: 5.14.4] at org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java: 154)[activemq - console - 5.14.4.jar: 5.14.4] at org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java: 63)[activemq - console - 5.14.4.jar: 5.14.4] at org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java: 104)[activemq - console - 5.14.4.jar: 5.14.4] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)[: 1.8.0_45] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 62)[: 1.8.0_45] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43)[: 1.8.0_45] at java.lang.reflect.Method.invoke(Method.java: 497)[: 1.8.0_45] at org.apache.activemq.console.Main.runTaskClass(Main.java: 262)[activemq.jar: 5.14.4] at org.apache.activemq.console.Main.main(Main.java: 115)[activemq.jar: 5.14.4] 2017 - 04 - 03 16 : 21 : 13,
- 526 | INFO | Database lock driver override not found
- for: [mysql_connector_java].Will use
- default implementation. | org.apache.activemq.store.jdbc.JDBCPersistenceAdapter | main2017 - 04 - 03 16 : 21 : 13,
- 535 | INFO | Attempting to acquire the exclusive lock to become the Master broker | org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main2017 - 04 - 03 16 : 21 : 13,
- 617 | INFO | Failed to acquire lock.Sleeping
- for 10000 milli(s) before trying again... | org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main2017 - 04 - 03 16 : 21 : 23,
- 623 | INFO | Failed to acquire lock.Sleeping
- for 10000 milli(s) before trying again... | org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main2017 - 04 - 03 16 : 21 : 33,
- 629 | INFO | Failed to acquire lock.Sleeping
- for 10000 milli(s) before trying again... | org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main2017 - 04 - 03 16 : 21 : 43,
- 635 | INFO | Failed to acquire lock.Sleeping
- for 10000 milli(s) before trying again... | org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main2017 - 04 - 03 16 : 21 : 53,
- 640 | INFO | Failed to acquire lock.Sleeping
- for 10000 milli(s) before trying again... | org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main2017 - 04 - 03 16 : 22 : 03,
- 643 | INFO | Failed to acquire lock.Sleeping
- for 10000 milli(s) before trying again... | org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main2017 - 04 - 03 16 : 22 : 13,
- 648 | INFO | Failed to acquire lock.Sleeping
- for 10000 milli(s) before trying again... | org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main2017 - 04 - 03 16 : 22 : 23,
- 651 | INFO | Failed to acquire lock.Sleeping
- for 10000 milli(s) before trying again... | org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main2017 - 04 - 03 16 : 22 : 33,
- 656 | INFO | Failed to acquire lock.Sleeping
- for 10000 milli(s) before trying again... | org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main2017 - 04 - 03 16 : 22 : 43,
- 662 | INFO | Failed to acquire lock.Sleeping
- for 10000 milli(s) before trying again... | org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main2017 - 04 - 03 16 : 22 : 53,
- 670 | INFO | Failed to acquire lock.Sleeping
- for 10000 milli(s) before trying again... | org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main2017 - 04 - 03 16 : 23 : 03,
- 675 | INFO | Failed to acquire lock.Sleeping
- for 10000 milli(s) before trying again... | org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main2017 - 04 - 03 16 : 23 : 13,
- 685 | INFO | Failed to acquire lock.Sleeping
- for 10000 milli(s) before trying again... | org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main2017 - 04 - 03 16 : 23 : 23,
- 693 | INFO | Failed to acquire lock.Sleeping
- for 10000 milli(s) before trying again... | org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main2017 - 04 - 03 16 : 23 : 33,
- 699 | INFO | Failed to acquire lock.Sleeping
- for 10000 milli(s) before trying again... | org.apache.activemq.store.jdbc.DefaultDatabaseLocker | main
处理办法:在 config 的 activemq.xml 中,修改 jdbcPersistenceAdapter 选项,添加一个:useDatabaseLock="false",结果如下:
就爱阅读 www.92to.com 网友整理上传, 为您提供最全的知识大全, 期待您的分享,转载请注明出处。
来源: http://www.92to.com/bangong/2017/04-14/20455478.html