mysql - Running two flyway migration simultaneously using tomcat cluster, fails the migration on one of the server -
mysql - Running two flyway migration simultaneously using tomcat cluster, fails the migration on one of the server -
i trying run application in cluster 2 tomcat, when starting 2 tomcat simultaneously, migration on 1 tomcat failing. spring configuration -
<bean id="flyway" class="com.googlecode.flyway.core.flyway" init-method="migrate"> <property name="datasource" ref="datasource"/> <property name="initonmigrate" value="true" /> </bean> i increased innodb_lock_wait_timeout 900 , mysql version 5.6.15
please help me this,logs -
org.springframework.beans.factory.beancreationexception: error creating bean name 'flyway' defined in class path resource [spring/db.xml]: invocation of init method failed; nested exception com.googlecode.flyway.core.api.flywayexception: unable insert row version '1' in metadata table connect_dev.schema_version @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.initializebean(abstractautowirecapablebeanfactory.java:1554) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.docreatebean(abstractautowirecapablebeanfactory.java:539) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.createbean(abstractautowirecapablebeanfactory.java:475) @ org.springframework.beans.factory.support.abstractbeanfactory$1.getobject(abstractbeanfactory.java:302) @ org.springframework.beans.factory.support.defaultsingletonbeanregistry.getsingleton(defaultsingletonbeanregistry.java:228) @ org.springframework.beans.factory.support.abstractbeanfactory.dogetbean(abstractbeanfactory.java:298) @ org.springframework.beans.factory.support.abstractbeanfactory.getbean(abstractbeanfactory.java:193) @ org.springframework.beans.factory.support.abstractbeanfactory.dogetbean(abstractbeanfactory.java:292) @ org.springframework.beans.factory.support.abstractbeanfactory.getbean(abstractbeanfactory.java:193) @ org.springframework.context.support.abstractapplicationcontext.getbean(abstractapplicationcontext.java:975) @ org.springframework.context.support.abstractapplicationcontext.finishbeanfactoryinitialization(abstractapplicationcontext.java:752) @ org.springframework.context.support.abstractapplicationcontext.refresh(abstractapplicationcontext.java:482) @ org.springframework.web.context.contextloader.configureandrefreshwebapplicationcontext(contextloader.java:403) @ org.springframework.web.context.contextloader.initwebapplicationcontext(contextloader.java:306) @ org.springframework.web.context.contextloaderlistener.contextinitialized(contextloaderlistener.java:106) @ org.apache.catalina.core.standardcontext.listenerstart(standardcontext.java:4937) @ org.apache.catalina.core.standardcontext.startinternal(standardcontext.java:5434) @ org.apache.catalina.util.lifecyclebase.start(lifecyclebase.java:150) @ org.apache.catalina.core.containerbase.addchildinternal(containerbase.java:901) @ org.apache.catalina.core.containerbase.addchild(containerbase.java:877) @ org.apache.catalina.core.standardhost.addchild(standardhost.java:633) @ org.apache.catalina.startup.hostconfig.deploydirectory(hostconfig.java:1120) @ org.apache.catalina.startup.hostconfig$deploydirectory.run(hostconfig.java:1678) @ java.util.concurrent.executors$runnableadapter.call(executors.java:511) @ java.util.concurrent.futuretask.run(futuretask.java:266) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1142) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:617) @ java.lang.thread.run(thread.java:745) caused by: com.googlecode.flyway.core.api.flywayexception: unable insert row version '1' in metadata table connect_dev.schema_version @ com.googlecode.flyway.core.metadatatable.metadatatableimpl.addappliedmigration(metadatatableimpl.java:158) @ com.googlecode.flyway.core.metadatatable.metadatatableimpl.addinitmarker(metadatatableimpl.java:280) @ com.googlecode.flyway.core.command.dbinit$1.dointransaction(dbinit.java:95) @ com.googlecode.flyway.core.command.dbinit$1.dointransaction(dbinit.java:74) @ com.googlecode.flyway.core.util.jdbc.transactiontemplate.execute(transactiontemplate.java:72) @ com.googlecode.flyway.core.command.dbinit.init(dbinit.java:74) @ com.googlecode.flyway.core.flyway$1.execute(flyway.java:841) @ com.googlecode.flyway.core.flyway$1.execute(flyway.java:819) @ com.googlecode.flyway.core.flyway.execute(flyway.java:1200) @ com.googlecode.flyway.core.flyway.migrate(flyway.java:819) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:483) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.invokecustominitmethod(abstractautowirecapablebeanfactory.java:1682) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.invokeinitmethods(abstractautowirecapablebeanfactory.java:1621) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.initializebean(abstractautowirecapablebeanfactory.java:1550) ... 27 more caused by: com.mysql.jdbc.exceptions.jdbc4.mysqltransactionrollbackexception: deadlock found when trying lock; seek restarting transaction @ sun.reflect.nativeconstructoraccessorimpl.newinstance0(native method) @ sun.reflect.nativeconstructoraccessorimpl.newinstance(nativeconstructoraccessorimpl.java:62) @ sun.reflect.delegatingconstructoraccessorimpl.newinstance(delegatingconstructoraccessorimpl.java:45) @ java.lang.reflect.constructor.newinstance(constructor.java:408) @ com.mysql.jdbc.util.handlenewinstance(util.java:406) @ com.mysql.jdbc.util.getinstance(util.java:381) @ com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.java:1045) @ com.mysql.jdbc.sqlerror.createsqlexception(sqlerror.java:956) @ com.mysql.jdbc.mysqlio.checkerrorpacket(mysqlio.java:3491) @ com.mysql.jdbc.mysqlio.checkerrorpacket(mysqlio.java:3423) @ com.mysql.jdbc.mysqlio.sendcommand(mysqlio.java:1936) @ com.mysql.jdbc.mysqlio.sqlquerydirect(mysqlio.java:2060) @ com.mysql.jdbc.connectionimpl.execsql(connectionimpl.java:2542) @ com.mysql.jdbc.preparedstatement.executeinternal(preparedstatement.java:1734) @ com.mysql.jdbc.preparedstatement.executeupdate(preparedstatement.java:2019) @ com.mysql.jdbc.preparedstatement.executeupdate(preparedstatement.java:1937) @ com.mysql.jdbc.preparedstatement.executeupdate(preparedstatement.java:1922)
configure maxwait value in spring datasource , see if changing situation.
mysql flyway
Comments
Post a Comment