Как предотвратить откат вложенного сервисного вызова в Java EE, когда внешняя транзакция (конечная точка) возвращает ошиJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как предотвратить откат вложенного сервисного вызова в Java EE, когда внешняя транзакция (конечная точка) возвращает оши

Сообщение Anonymous »

В нашем приложении Java EE у нас есть настройка, где Service A является конечной точкой. В некоторых действительных бизнес -случаях эта конечная точка бросает исключение и возвращает код ошибки клиенту - это ожидаемое поведение и не может быть изменено. Служба B выполняет обновление (данные о работе с активностью), которое мы хотим сохранить , даже когда обслуживание A -ожидаемой ошибки. Class = "Lang-Java PrettyPrint-Override">

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

// Service A (has maven dep on ServiceB)
@POST
@Path("/{id}/book")
public Response bookXXXX(..) {
try {
serviceB.doSmth(); // should persist even if error follows
...
} catch (SpecificServiceBException e) {
throw Response.error(Status.CONFLICT, someInfo); // expected and cannot be changed
}
}
< /code>
// Service B
@ApplicationScoped
public class ServiceB {

@Inject
private IRepository repository;

public void deleteActivity(Long key) {
ActivityEntity activity = find...;

activity.updateLastDate(null);

repository.update(activity);
}
}
мы пробовали использовать @transactional (tress_new) , но это приводит к тупикам в базе данных (Oracle). Поскольку база данных теперь имеет две одновременные транзакции и ожидает первого («Внешний») для совершения и наоборот. Весна.


Подробнее здесь: https://stackoverflow.com/questions/796 ... ransaction
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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