весенняя интеграция реестра блокировки jdbc - истекло время ожидания удаления из запроса INT_LOCK - PullRequest
0 голосов
/ 10 сентября 2018

Я использую интеграцию Spring 4.3.14, Spring batch 3.8.0 и драйвер mssql 6.1.0.

У меня есть несколько процессов, работающих параллельно (2 модуля), и все идет в агрегатор с хранилищем сообщений jdbc и реестром блокировки.

Для этой работы каждый модуль может использовать не более 8 потоков. Для небольших данных это нормально, но когда данные большие и все потоки заняты выполнением операций с БД, я получаю исключение тайм-аута для запроса на удаление таблицы INT_LOCK.

Тайм-аут запроса не установлен для соединения с БД. Другие длинные запросы выполняются без тайм-аута.

Как только возникает ошибка, сообщение переходит к errorChannel, и задание не выполняется.

Пожалуйста, помогите мне в этом.

Сообщение об ошибке:

org.springframework.messaging.MessageHandlingException: error occurred in message handler [org.springframework.integration.config.AggregatorFactoryBean#0]; nested exception is org.springframework.dao.CannotAcquireLockException: Failed to lock mutex at f53339e4-9017-3231-821d-5a6d11144496; nested exception is org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [<code>DELETE FROM INT_LOCK WHERE REGION=? AND LOCK_KEY=? AND CREATED_DATE<?]; SQL штат [HY008]; код ошибки [0]; Время запроса истекло. Вложенное исключение - com.microsoft.sqlserver.jdbc.SQLServerException: истекло время ожидания запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...