Я РАЗРЕШЕН ПРЯМО СЕЙЧАС.
Но я не уверен, правда ли это. Я увеличил actionLifetimeLimitSeconds . Я не знаю, правильно ли менять эту настройку. Я не мог сделать это, давая конфиг из проекта. Я решил проблему из команды Монго. Я запустил команду ниже.
db.adminCommand ({setParameter: 1 ,actionLifetimeLimitSeconds: 200})
Я использую Spring Mongodb в моем проект. Я делаю все свои транзакции сохранения транзакций. (@ Transactional) У меня большие данные. Я хочу сохранить эти данные в БД. Поскольку данные велики, я сохраняю данные, разделяя их. Однако я получаю ошибку, потому что мой процесс занимает слишком много времени. Или я получаю сообщение об ошибке, потому что я сделал более одного сохранения в транзакции. В качестве решения я подумал об увеличении времени ожидания транзакции. Но я не мог найти, как это сделать. Может кто-нибудь помочь, если у них есть идея получше?
Basi c Пример кода:
@Transactional
public void saveUserList(Map<String,List<Users>> usersList) {
for (List<Users> users : usersList.values()) {
userRepository.saveAll(users);
}
}
Сообщение об ошибке:
**com.mongodb.MongoCommandException: Command failed with error 251 (NoSuchTransaction):
'Transaction 4 has been aborted.' on server localhost:27017.
The full response is {"errorLabels": ["TransientTransactionError"],
"operationTime": {"$timestamp": {"t": 1584210546, "i": 1}}, "ok": 0.0,
"errmsg": "Transaction 1 has been aborted.", "code": 251, "codeName": "NoSuchTransaction",
"$clusterTime": {"clusterTime": {"$timestamp": {"t": 1584210546, "i": 1}},
"signature": {"hash": {"$binary": "AAAAAAAAAAAAAAAAAAAAAAAAAAA=", "$type": "00"},
"keyId": {"$numberLong": "0"}}}}**