我需要处理春季mongotemplate事务。 除非符合条件,否则必须手动回滚事务。 我越来越喜欢 com.mongodb.MongoClientException:此客户端连接到的MongoDB群集不支持会话。 如何使用Spring mongodb事务。 请帮帮我。
@Autowired
MongoTransactionManager mongoTransactionManager;
@Autowired
TestDao testDao;
@Transactional
public void testMethod() {
int temp = 0;
try {
testDao.saveDatainTempTable();
testDao.saveMongoData();
if (temp == 0) {
System.out.println("=========================");
TransactionInterceptor.currentTransactionStatus().setRollbackOnly();
mongoTransactionManager.rollback(TransactionInterceptor.currentTransactionStatus());
}
} catch (Exception e) {
}
}
@Configuration
public class MongoTransactionConfig extends AbstractMongoConfiguration {
@Bean
MongoTransactionManager transactionManager(MongoDbFactory dbFactory) {
return new MongoTransactionManager(dbFactory);
}
@Override
protected String getDatabaseName() {
return "test";
}
@Override
public MongoClient mongoClient() {
return new MongoClient("127.0.0.1", 27017);
}
}
答案 0 :(得分:0)
在Linux上,包含一个默认的/etc/mongod.conf配置文件 使用程序包管理器安装MongoDB时。
在Windows上, 默认的<安装目录> /bin/mongod.cfg配置文件为 安装过程中包含的
在macOS上,包括默认的/usr/local/etc/mongod.conf配置文件 从MongoDB的官方Homebrew水龙头安装时。
添加以下配置
replication:
oplogSizeMB: 128
replSetName: "rs0"
enableMajorityReadConcern: true
sudo服务mongod重新启动;
mongo;
rs.initiate({
_id: "rs0",
version: 1,
members: [
{ _id: 0, host : "localhost:27017" }
]
}
)
检查以启用配置
rs.conf()
我们可以将连接URL 用作
mongodb://localhost/default?ssl=false&replicaSet=rs0&readPreference=primary