Предупреждение: JPA не поддерживает пользовательские уровни изоляции, поэтому при запуске заданий блокировки могут не выполняться - PullRequest
2 голосов
/ 04 марта 2020

Во время запуска моего приложения (Spring Boot, Spring Data JPA, Spring Batch, Postgres DB) я получаю такое предупреждение:

2020-03-04 11:53:24.559  WARN [-,,,] 25743 --- [           main] o.s.b.a.batch.JpaBatchConfigurer         : JPA does not support custom isolation levels, so locks may not be taken when launching Jobs

Я провел некоторые исследования по уровням изоляции пружинной загрузки, у нас есть : DEFAULT, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ и SERIALIZABLE.

Из предупреждения я понимаю, что JPA не поддерживает это, но просто используйте DEFAULT для данной БД, в моем случае, для Postgres есть READ_COMMITTED.

Также я прочитал, что уровень изоляции по умолчанию для пакетных транзакций Spring равен SERIALIZABLE, чтобы предотвратить одновременное выполнение одного и того же экземпляра задания.

Может кто-нибудь объяснить мне, когда я должен беспокоиться о это предупреждение? Я не знаю, должен ли я что-то сделать с этим.

1 Ответ

0 голосов
/ 05 марта 2020

READ_COMMITTED должно работать с Postgers. Из Конфигурации транзакций для раздела JobRepository документации Spring Batch:

Уровень изоляции по умолчанию для этого метода - SERIALIZABLE, что довольно агрессивно: READ_COMMITTED будет работать так же хорошо

Поэтому я считаю, что это предупреждение безопасно игнорировать.

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