Oracle BPEL, catch 중 보상이 예외를 처리 할 수있는 이유

Esca Tran

Oracle BPEL에서 보상의 목적은 비즈니스 롤백입니다. 그러나 catch는 거의 유사한 작업을 수행 할 수 있습니다 (완료 역순의 롤백 제외). 왜 우리에게 여전히 보상이 필요한지 이해가 안 되나요?

다니엘 루에 브케

오류 처리기에서 수동으로 코딩 된 보상은 작성이 불가능하지는 않지만 매우 어렵고 많은 중복 코드를 포함하는 시나리오가 많이 있습니다.

다음과 같은 프로세스가 있다고 상상해보십시오.

<flow>
  <sequence>
    <invoke name="I1"/>
    <invoke name="I2"/>
  </sequence>
  <sequence>
    <invoke name="I3"/>
    <invoke name="I4"/>
  </sequence>
</flow>

보상 처리를 수행하려면 모든 호출에 보상 핸들러를 추가하기 만하면됩니다.

오류 처리기를 사용하면 어떤 활동이 이미 실행되었는지 확인해야합니다. I4가 결함을 던진다 고 상상해보십시오. I3가 완료되었으며 보상이 필요하다는 것을 알고 있습니다. 그러나 I1 또는 I2가 아직 시작되었는지 또는 완료되었는지는 알 수 없습니다. 격리 된 활동 등에 대해 설정해야하는 변수로 플래그를 조작해야합니다. 또한 I2, I3 및 I4에 대한 오류 처리기에는 I1에 대한 보상 논리가 포함되어야합니다. 보상 핸들러를 사용하는 것은 그들을 재발 명하는 것보다 훨씬 깨끗하고 쉽습니다. :)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

catch 블록없이 예외를 catch 할 수 있습니까?

분류에서Dev

는 자바에서 변수를 초기화 할 수 이중 입력 예외 처리를위한 방법을 생성 할 수있다?

분류에서Dev

이 IndexOutOfBounds 예외를 어떻게 처리 할 수 있습니까?

분류에서Dev

catch (...)가 처리 할 수 있지만 catch (exception & ex)가 처리 할 수없는 예외가 있습니까?

분류에서Dev

외부 소멸자에서 발생한 예외를 처리 할 수없는 이유는 무엇입니까?

분류에서Dev

예외 사유에 제공된 정보를 분리 할 수있는 방법이 있습니까?

분류에서Dev

왜이 예외는 처리 할 수없는 이유는 무엇입니까?

분류에서Dev

처리되지 않은 예외에 대해 try catch를 사용하는 이상한 동작

분류에서Dev

요청 처리에 실패했습니다. 중첩 된 예외는 org.hibernate.exception.ConstraintViolationException : JDBC 일괄 업데이트를 실행할 수 없습니다.

분류에서Dev

catch가이 오류를 처리하지 않는 이유 C ++

분류에서Dev

Java 웹 애플리케이션에서 예외 및 오류를 어떻게 처리 할 수 있습니까?

분류에서Dev

내 파이썬 다중 처리가 모든 CPU를 사용할 수없는 이유는 무엇입니까?

분류에서Dev

jquery 처리되지 않은 예외이 예외를 처리하는 방법

분류에서Dev

Kotlin 코 루틴 예외 처리-try-catch를 추상화하는 방법

분류에서Dev

Mule 3.5.0-파일을 'Failed'디렉토리로 이동하고 처리 중에 예외가 발생할 때 이메일을 보내는 방법

분류에서Dev

C ++의 catch 블록에서 예외를 어떻게 처리 할 수 있습니까?

분류에서Dev

C ++의 catch 블록에서 예외를 어떻게 처리 할 수 있습니까?

분류에서Dev

PHP : 누구든지이 예외 처리기 오류를 설명 할 수 있습니까?

분류에서Dev

PHP : 누구든지이 예외 처리기 오류를 설명 할 수 있습니까?

분류에서Dev

의도 예외를 처리 할 활동이 없습니다.

분류에서Dev

홈 페이지를 제외 할 수있는 권한-Oracle Apex

분류에서Dev

중복 열 이름을 처리 할 수있는 pandas DataFrame reset_index?

분류에서Dev

Python과 Oracle 간의 예외 핸드 셰이크를 처리하는 올바른 방법

분류에서Dev

코 루틴 예외 처리기가 원래 예외를 두 배로 늘리는 이유는 무엇입니까?

분류에서Dev

데코레이터없이 예외 처리 코드를 재사용 할 수있게 만드는 방법은 무엇입니까?

분류에서Dev

내 노트북이 특정 해상도를 처리 할 수 있는지 확인

분류에서Dev

예외를 처리하는 더 좋은 방법이 있습니까? try-catch 블록은 정말 추합니다

분류에서Dev

MySQL InnoDB는 동시 업데이트를 처리 할 수 있지만 PostgreSQL은 처리 할 수없는 이유는 무엇입니까?

분류에서Dev

파이썬이 트리플 중첩에서 메모리 예외를 던지는 이유는 무엇입니까?

Related 관련 기사

  1. 1

    catch 블록없이 예외를 catch 할 수 있습니까?

  2. 2

    는 자바에서 변수를 초기화 할 수 이중 입력 예외 처리를위한 방법을 생성 할 수있다?

  3. 3

    이 IndexOutOfBounds 예외를 어떻게 처리 할 수 있습니까?

  4. 4

    catch (...)가 처리 할 수 있지만 catch (exception & ex)가 처리 할 수없는 예외가 있습니까?

  5. 5

    외부 소멸자에서 발생한 예외를 처리 할 수없는 이유는 무엇입니까?

  6. 6

    예외 사유에 제공된 정보를 분리 할 수있는 방법이 있습니까?

  7. 7

    왜이 예외는 처리 할 수없는 이유는 무엇입니까?

  8. 8

    처리되지 않은 예외에 대해 try catch를 사용하는 이상한 동작

  9. 9

    요청 처리에 실패했습니다. 중첩 된 예외는 org.hibernate.exception.ConstraintViolationException : JDBC 일괄 업데이트를 실행할 수 없습니다.

  10. 10

    catch가이 오류를 처리하지 않는 이유 C ++

  11. 11

    Java 웹 애플리케이션에서 예외 및 오류를 어떻게 처리 할 수 있습니까?

  12. 12

    내 파이썬 다중 처리가 모든 CPU를 사용할 수없는 이유는 무엇입니까?

  13. 13

    jquery 처리되지 않은 예외이 예외를 처리하는 방법

  14. 14

    Kotlin 코 루틴 예외 처리-try-catch를 추상화하는 방법

  15. 15

    Mule 3.5.0-파일을 'Failed'디렉토리로 이동하고 처리 중에 예외가 발생할 때 이메일을 보내는 방법

  16. 16

    C ++의 catch 블록에서 예외를 어떻게 처리 할 수 있습니까?

  17. 17

    C ++의 catch 블록에서 예외를 어떻게 처리 할 수 있습니까?

  18. 18

    PHP : 누구든지이 예외 처리기 오류를 설명 할 수 있습니까?

  19. 19

    PHP : 누구든지이 예외 처리기 오류를 설명 할 수 있습니까?

  20. 20

    의도 예외를 처리 할 활동이 없습니다.

  21. 21

    홈 페이지를 제외 할 수있는 권한-Oracle Apex

  22. 22

    중복 열 이름을 처리 할 수있는 pandas DataFrame reset_index?

  23. 23

    Python과 Oracle 간의 예외 핸드 셰이크를 처리하는 올바른 방법

  24. 24

    코 루틴 예외 처리기가 원래 예외를 두 배로 늘리는 이유는 무엇입니까?

  25. 25

    데코레이터없이 예외 처리 코드를 재사용 할 수있게 만드는 방법은 무엇입니까?

  26. 26

    내 노트북이 특정 해상도를 처리 할 수 있는지 확인

  27. 27

    예외를 처리하는 더 좋은 방법이 있습니까? try-catch 블록은 정말 추합니다

  28. 28

    MySQL InnoDB는 동시 업데이트를 처리 할 수 있지만 PostgreSQL은 처리 할 수없는 이유는 무엇입니까?

  29. 29

    파이썬이 트리플 중첩에서 메모리 예외를 던지는 이유는 무엇입니까?

뜨겁다태그

보관