Пружинная партия не может изменить уровень изоляции транзакций в середине транзакцииJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Пружинная партия не может изменить уровень изоляции транзакций в середине транзакции

Сообщение Anonymous »

После обновления до Spring Boot 3.4.3 и, следовательно, до Spring Pactor 3.5.5, я начал получать ошибку при запуске задания. Ранее я использовал пружинную партию 2.6.4, и ошибок не было.

Код: Выделить всё

@Configuration
@RequiredArgsConstructor
@EnableBatchProcessing
public class DeleteJobConfig {

private final JobRepository jobRepository;
private final Repository Repository;
private final PlatformTransactionManager platformTransactionManager;
private final ApplicationProperties applicationProperties;

@Bean
public Job deleteJob() {
return new JobBuilder("deleteJob", jobRepository)
.incrementer(new RunIdIncrementer())
.preventRestart()
.start(deleteStep())
.build();
}

@Bean
public Step deleteStep() {
return new StepBuilder("deleteStep", jobRepository)
.chunk(applicationProperties.getBatch().getDeleteJob().getChunkSize(), platformTransactionManager)
.reader(deleteReader())
.writer(deleteWriter())
.build();
}

@Bean
@StepScope
public ItemReader deleteReader() {
...
}

@Bean
public ItemWriter  deleteWriter() {
...
}
}
< /code>
Служба запуска: < /p>
@Service
@Slf4j
@RequiredArgsConstructor
public class ArchiverService {

private final JobLauncher jobLauncher;
private final Job deleteJob;

@Override
@Scheduled(
cron = "${app.scheduler.cron.deleting-time}",
zone = "${app.scheduler.zone-moscow}"
)
@SneakyThrows
public void deleteExpiredNotNews() {
log.info("Starting deleteExpiredNotNews");

JobParameters params = new JobParametersBuilder()
.addString("runId", UUID.randomUUID().toString())
.toJobParameters();

jobLauncher.run(deleteJob, params);

log.info("Finished deleteExpiredNotNews");
}
}
< /code>
Stacktrace: < /p>
org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction
at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:466) ~[spring-orm-6.2.3.jar:6.2.3]
at org.springframework.transaction.support.AbstractPlatformTransactionManager.startTransaction(AbstractPlatformTransactionManager.java:532) ~[spring-tx-6.2.3.jar:6.2.3]
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:405) ~[spring-tx-6.2.3.jar:6.2.3]
at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:639) ~[spring-tx-6.2.3.jar:6.2.3]
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:374) ~[spring-tx-6.2.3.jar:6.2.3]
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-6.2.3.jar:6.2.3]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) ~[spring-aop-6.2.3.jar:6.2.3]
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:223) ~[spring-aop-6.2.3.jar:6.2.3]
at jdk.proxy2/jdk.proxy2.$Proxy283.getLastJobExecution(Unknown Source) ~[?:?]
at org.springframework.batch.core.launch.support.TaskExecutorJobLauncher.run(TaskExecutorJobLauncher.java:109) ~[spring-batch-core-5.2.1.jar:5.2.1]
at com.my.sales.plan.scheduler.impl.ArchiverService.deleteExpiredNotNews(ArchiverService.java:56) ~[classes/:?]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
at org.springframework.scheduling.support.ScheduledMethodRunnable.runInternal(ScheduledMethodRunnable.java:130) ~[spring-context-6.2.3.jar:6.2.3]
at org.springframework.scheduling.support.ScheduledMethodRunnable.lambda$run$2(ScheduledMethodRunnable.java:124) ~[spring-context-6.2.3.jar:6.2.3]
at io.micrometer.observation.Observation.observe(Observation.java:498) ~[micrometer-observation-1.14.4.jar:1.14.4]
at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:124) ~[spring-context-6.2.3.jar:6.2.3]
at org.springframework.scheduling.config.Task$OutcomeTrackingRunnable.run(Task.java:85) ~[spring-context-6.2.3.jar:6.2.3]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) [spring-context-6.2.3.jar:6.2.3]
at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:96) [spring-context-6.2.3.jar:6.2.3]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) [?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
at java.base/java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: org.postgresql.util.PSQLException:  Cannot change transaction isolation level in the middle of a transaction.
at org.postgresql.jdbc.PgConnection.setTransactionIsolation(PgConnection.java:1075) ~[postgresql-42.7.5.jar:42.7.5]
at com.zaxxer.hikari.pool.ProxyConnection.setTransactionIsolation(ProxyConnection.java:421) ~[HikariCP-5.1.0.jar:?]
at com.zaxxer.hikari.pool.HikariProxyConnection.setTransactionIsolation(HikariProxyConnection.java) ~[HikariCP-5.1.0.jar:?]
at org.springframework.jdbc.datasource.DataSourceUtils.prepareConnectionForTransaction(DataSourceUtils.java:216) ~[spring-jdbc-6.2.3.jar:6.2.3]
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.beginTransaction(HibernateJpaDialect.java:165) ~[spring-orm-6.2.3.jar:6.2.3]
at org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:420) ~[spring-orm-6.2.3.jar:6.2.3]
... 27 more
Я также попытался удалить запланированное выполнение и запустить его через регулярный контроллер отдыха, но ошибка сохраняется.


Подробнее здесь: https://stackoverflow.com/questions/797 ... f-a-transa
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Пружинная партия не может изменить уровень изоляции транзакций в середине транзакции
    Anonymous » » в форуме JAVA
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • Как установить уровень изоляции транзакций в Laravel 5.5?
    Anonymous » » в форуме Php
    0 Ответы
    40 Просмотры
    Последнее сообщение Anonymous
  • Как Oracle Retail Xstore рассчитывает налог на уровень налога и уровень транзакций.
    Anonymous » » в форуме JAVA
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Как бороться с утечкой уровней изоляции транзакций из пула соединений SQL Server
    Anonymous » » в форуме C#
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Как получить уровень изоляции в EF для MSSQL?
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»