mongock / mongock

Lightweight Java based migration tool

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

business related questions

puddinging opened this issue · comments

Description

Hello, I encountered some problems when using the standalone mode. I tried to use MongockRunner.setTransactionEnabled(false) to explicitly disable transactions, but I still encountered a prompt that the cluster does not support transactions,Please help me to see where is the problem, thanks a lot

Version and environment

Mongock

  • Mongock version 5.0.17.RC
  • Modules involved standalone
  • How Mongock is used builder

Environment

-MongoDB driver

Steps to Reproduce

            MongoSync4Driver mongoSync4Driver = MongoSync4Driver.withDefaultLock(tenantMongoClient, mongoNameByTenantId);
            mongoSync4Driver.disableTransaction();
            MongockRunner mongockRunner = MongockStandalone.builder()
                    .setDriver(mongoSync4Driver)
                    .addMigrationScanPackage("com.xdap.mongodbversion.changelogs")
                    .addDependency(MpaasQueryFactory.class)
                    .setTransactionEnabled(false)
                    .buildRunner();
            try {
                mongockRunner.execute();
            } catch (Exception e){
                log.info("", e);
            } finally {
                tenantMongoClient.close();
            }

Additional context

io.mongock.api.exception.MongockException: ERROR starting session. If Mongock is connected to a MongoDB cluster which doesn't support transactions, you must to disable transactions
at io.mongock.driver.mongodb.sync.v4.driver.MongoSync4DriverBase.prepareForExecutionBlock(MongoSync4DriverBase.java:37) ~[mongodb-sync-v4-driver-5.0.17.RC.jar:na]
at io.mongock.runner.core.executor.operation.change.MigrationExecutorBase.prepareForStageExecutionIfApply(MigrationExecutorBase.java:361) ~[mongock-runner-core-5.0.17.RC.jar:na]
at io.mongock.runner.core.executor.operation.change.MigrationExecutorBase.processSingleChangeLog(MigrationExecutorBase.java:120) ~[mongock-runner-core-5.0.17.RC.jar:na]
at io.mongock.runner.core.executor.operation.change.MigrationExecutorBase.processChangeLogs(MigrationExecutorBase.java:113) ~[mongock-runner-core-5.0.17.RC.jar:na]
at io.mongock.runner.core.executor.operation.change.MigrationExecutorBase.lambda$processMigration$1(MigrationExecutorBase.java:108) ~[mongock-runner-core-5.0.17.RC.jar:na]
at io.mongock.runner.core.executor.operation.change.MigrationExecutorBase.processMigration(MigrationExecutorBase.java:108) ~[mongock-runner-core-5.0.17.RC.jar:na]
at io.mongock.runner.core.executor.operation.change.MigrationExecutorBase.executeMigration(MigrationExecutorBase.java:95) ~[mongock-runner-core-5.0.17.RC.jar:na]
at io.mongock.runner.core.executor.operation.change.MigrationExecutorBase.executeMigration(MigrationExecutorBase.java:38) ~[mongock-runner-core-5.0.17.RC.jar:na]
at io.mongock.runner.core.executor.MongockRunnerImpl.execute(MongockRunnerImpl.java:53) ~[mongock-runner-core-5.0.17.RC.jar:na]
at com.xdap.mongodbversion.init.XdapTenantMongoVersionListener.onApplicationEvent(XdapTenantMongoVersionListener.java:59) [classes/:na]
at com.xdap.mongodbversion.init.XdapTenantMongoVersionListener.onApplicationEvent(XdapTenantMongoVersionListener.java:27) [classes/:na]
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) [spring-context-5.2.6.RELEASE.jar:5.2.6.RELEASE]
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) [spring-context-5.2.6.RELEASE.jar:5.2.6.RELEASE]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) [spring-context-5.2.6.RELEASE.jar:5.2.6.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:403) [spring-context-5.2.6.RELEASE.jar:5.2.6.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:360) [spring-context-5.2.6.RELEASE.jar:5.2.6.RELEASE]
at org.springframework.boot.context.event.EventPublishingRunListener.running(EventPublishingRunListener.java:103) [spring-boot-2.2.7.RELEASE.jar:2.2.7.RELEASE]
at org.springframework.boot.SpringApplicationRunListeners.running(SpringApplicationRunListeners.java:77) [spring-boot-2.2.7.RELEASE.jar:2.2.7.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:330) [spring-boot-2.2.7.RELEASE.jar:2.2.7.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) [spring-boot-2.2.7.RELEASE.jar:2.2.7.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) [spring-boot-2.2.7.RELEASE.jar:2.2.7.RELEASE]
at com.xdap.mongodbversion.XdapMongodbVersionApplication.main(XdapMongodbVersionApplication.java:11) [classes/:na]
Caused by: com.mongodb.MongoClientException: Sessions are not supported by the MongoDB cluster to which this client is connected
at com.mongodb.client.internal.MongoClientImpl.startSession(MongoClientImpl.java:127) ~[mongo-java-driver-3.11.2.jar:na]
at com.mongodb.client.internal.MongoClientImpl.startSession(MongoClientImpl.java:113) ~[mongo-java-driver-3.11.2.jar:na]
at io.mongock.driver.mongodb.sync.v4.driver.MongoSync4DriverBase.prepareForExecutionBlock(MongoSync4DriverBase.java:35) ~[mongodb-sync-v4-driver-5.0.17.RC.jar:na]
... 21 common frames omitted

Thanks @puddinging , we'll take a look and will get back to you as soon as we can .

According to the log,
Sessions are not supported by the MongoDB cluster to which this client is connected. It seems that it is caused by startSession. MongoClientsSession does not seem to support MongoDB deployed in Standalone mode.

Thanks @puddinging , we'll take a look and will get back to you as soon as we can .

@puddinging ,we think we already fixed it. Can you check version 5.3.3 and let us know?
Thanks

Hello @puddinging , can you update us on this, please?

Hello @puddinging , can you update us on this, please?

Ok, I'll test it out soon, thanks for the help