보상은 완료된 프로세스의 조작을 실행 취소할 수 있는 수단입니다.
보상 처리는 프로세스 모델에 보상이 정의된 실행 중 프로세스 인스턴스에서 오류가 발생할 때 시작됩니다. 보상은 오류가 발생할 때까지 확약된 조작의 효과를 반대로 하여 다시 일관된 상태로 돌아가게 합니다.
프로세스 모델에서 장기 실행 프로세스 및 마이크로플로우에 대한 보상을 정의할 수 있습니다.
장기 실행 프로세스에 대한 보상을 비즈니스 레벨 보상이라고도 합니다. 이 유형의 보상은 범위 레벨에서 정의됩니다. 이는 프로세스의 일부 또는 전체 프로세스를 보상할 수 있습니다.
보상은 범위 또는 프로세스의 결함 핸들러 또는 보상 핸들러에 의해 트리거됩니다. 즉 보상은 프로세스의 또 다른 탐색 경로입니다.
장기 실행 프로세스는 포함하는 상위 범위가 보상될 때 성공적으로 완료된 서브프로세스를 자동으로 보상합니다. 프로세스 내에서 성공적으로 완료되는 호출 및 범위 활동만이 보상됩니다.
마이크로플로우에 대한 보상은 기술 보상이라고도 합니다. 이 유형의 보상은 마이크로플로우를 포함하는 작업 단위(트랜잭션 또는 활동 세션)가 롤백될 때 트리거됩니다. 그러므로 작업 단위를 롤백하여 반대로 할 수 없는 활동에 대해 실행 취소 조치가 지정됩니다. 프로세스 인스턴스가 실행되면 보상 가능 활동에 대한 실행 취소 조치가 엔클로징 작업 단위에 등록됩니다. 이 작업 단위의 결과(롤백 또는 확약)에 따라 보상이 시작됩니다.
마이크로플로우가 보상 가능한 장기 실행 프로세스의 하위인 경우, 마이크로플로우가 완료될 때 마이크로플로우의 실행 취소 조치가 상위 프로세스에 사용 가능하게 됩니다. 그러므로 비인터럽트 가능 프로세스는 상위 프로세스의 보상에 참여할 수 있습니다. 이러한 유형의 마이크로플로우 경우에는 프로세스 모델을 정의할 때 프로세스의 모든 활동에 대해 실행 취소 조치를 지정하는 것이 좋습니다.
보상 처리 중에 오류가 발생할 경우 보상 조치에 오류 해결을 위한 수동 해석이 필요합니다. Business Process Choreographer 탐색기를 사용하여 이들 보상 조치를 복구할 수 있습니다.
ⓒ Copyright IBM Corporation 2005, 2006.
이 Information Center는 Eclipse 기술을 기반으로 합니다. (http://www.eclipse.org)