Ошибка при сохранении данных транзакционно в Spring mongodb (@Transactional) - PullRequest
0 голосов
/ 14 марта 2020

Я РАЗРЕШЕН ПРЯМО СЕЙЧАС.

Но я не уверен, правда ли это. Я увеличил 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"}}}}**
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...