Quarkus Panache Reactive, почему транзакция не может быть отправлена/подписана из потока исполнителяJAVA

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

Сообщение Anonymous »


Я пытаюсь использовать реактивную версию Panache вместо классической Hibernate-ORM.

Я пытаюсь обернуть свою функцию, возвращающую Uni, аннотацией @ReactiveTransactional

в моем слое ресурсов:

@GET @Produces(MediaType.APPLICATION_JSON) @Path("/транзакционный-тест") public Uni testTxnQuerySearch() { вернуть mySQLService.testTransactional(); } в классе MySQLService:

@ReactiveTransactional public Uni testTransactional() { // создание данных Uni uni1 = mySqlRepo1.doTransaction(data1); Uni uni2 = mySqlRepo2.doTransaction(data2); Uni uni3 = mySqlRepo3.doTransaction(data3); // присоединение к универу вернуться в университет .runSubscriptionOn(Infrastructure.getDefaultWorkerPool()); } когда я вызываю API, я получаю следующее исключение:

[Exception 0] java.lang.IllegalStateException: HR000069: обнаружено использование реактивного сеанса из потока, отличного от того, который использовался для открытия реактивного сеанса — это предполагает недопустимую интеграцию; исходная тема [136]: 'vert.x-eventloop-thread-1' текущая тема [142]: 'executor-thread-1' [Исключение 1] java.lang.IllegalStateException: HR000068: этот метод следует вызывать исключительно из потока EventLoop Vert.x; в настоящее время работает в потоке «executor-thread-1» Думаю, это потому, что я добавил эту строку:

.runSubscriptionOn(Infrastructure.getDefaultWorkerPool()); Но почему это незаконно? Разве операция блокировки (например, транзакция БД) не должна выполняться с использованием рабочего пула?

Я относительно новичок в реактивном программировании и Quarkus, поэтому извините, если это очень простой вопрос
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Почему findById возвращает устаревшие данные с помощью Hibernate Reactive и Panache?
    Anonymous » » в форуме JAVA
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Почему findById возвращает устаревшие данные с помощью Hibernate Reactive и Panache?
    Anonymous » » в форуме JAVA
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Одно сеанс вход с использованием Quarkus: реализация одного сеанса в время с Quarkus-Hibernate-Reactive
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Одно сеанс вход с использованием Quarkus: реализация одного сеанса в время с Quarkus-Hibernate-Reactive
    Anonymous » » в форуме JAVA
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Quarkus Panache находит нулевой столбец в запросе
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

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