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