Compensate 셰이프 구성 방법
오케스트레이션에서 중첩 트랜잭션을 사용하는 경우 보정 블록 또는 트랜잭션 scope 예외 블록에 보정 셰이프를 추가할 수 있습니다. 이렇게 하면 오케스트레이션이 중첩된 트랙잭션에 명시적으로 보정을 수행할 수 있습니다. 보정 셰이프에서 보정할 트랜잭션을 지정하고 트랜잭션이 성공적으로 커밋된 경우 중첩 트랜잭션의 모든 보정 코드가 실행됩니다.
참고
Compensation 속성은 트랜잭션 scope 고유 식별자를 참조하며 scope 이름을 참조하지 않습니다.
둘 이상의 중첩 트랜잭션을 보정하려는 경우 각 트랜잭션에 대해 보 정 셰이프를 추가합니다.
외부 트랜잭션에 다른 보정 코드가 없으면 보정 셰이프가 필요하지 않습니다. 중첩된 트랜잭션의 보정 코드가 자동으로 실행됩니다. 보정 셰이프를 사용하면 중첩된 트랜잭션을 보정할지 여부를 결정할 수 있도록 하여 프로세스를 제어할 수 있습니다.
Compensate 셰이프를 구성하려면 다음을 수행하십시오.
속성 창 보상 드롭다운 목록에서 호출할 보정 블록을 선택합니다.
드롭다운 목록에는 현재 트랜잭션과 이 트랜잭션의 직접 자식 트랜잭션을 포함하여, 보정할 수 있는 모든 트랜잭션이 나열됩니다. 원하는 트랜잭션이 목록에 없는 경우에는 트랜잭션 간 관계 때문에 표시되지 않는 것일 수 있습니다.
참고
트랜잭션 본문 안에서는 현재 트랜잭션을 보정할 수 없습니다. 현재 트랜잭션은 트랜잭션의 예외 블록이나 보정 블록에서만 보정할 수 있습니다.
현재 트랜잭션을 보정하도록 선택하면 명시적인 보정 블록(있을 경우) 대신 기본 핸들러가 호출됩니다. 이러한 방식은 성공적으로 완료된 직접 중첩 트랜잭션을 자동으로 보정하기 위한 메커니즘입니다.