활동 잠금 워크플로우

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 2분
  • 잠금 활동은 잠금이 해제될 때까지 이 워크플로우의 다른 인스턴스가 이 활동을 지나 계속되지 않도록 합니다.

    동일한 워크플로우의 여러 인스턴스가 동시에 실행될 수 있습니다. 예를 들어 특정 테이블에 기록이 추가될 때 워크플로우가 트리거되는 경우입니다. 이 워크플로우는 여러 기록이 차례로 추가될 경우 기록을 삽입할 때마다 한 번씩 여러 번 트리거됩니다. 잠금 활동을 사용하여 워크플로우의 다른 인스턴스가 진행되기 전에 이 워크플로우 인스턴스가 하나 이상의 활동을 완료했는지 확인할 수 있습니다.

    워크플로우는 잠금 해제 활동으로 잠금을 명시적으로 해제할 수 있습니다. 최대 기간에 도달할 때도 잠금을 해제할 수 있습니다.

    워크플로우 인스턴스가 잠금 활동에 도달하면 잠금 활동에 지정된 키를 사용하여 잠금을 얻으려고 시도합니다. 다른 인스턴스가 이미 잠금을 획득했지만 아직 해제하지 않은 경우 이 잠금 시도는 실패합니다. 인스턴스는 최대 시도 에 도달할 때까지 잠금을 얻으려고 계속 시도합니다.

    주:

    잠금 활동 전에 1초 타이머 활동을 배치하는 것이 좋습니다. 이렇게 하면 잠금 활동으로 인해 하나의 워크플로우 인스턴스를 다른 워크플로우 인스턴스를 구별하지 못하는 드문 상황을 방지할 수 있습니다. 이 조건은 잠금을 소유하는 엔터티가 특정 워크플로 인스턴스가 아니라 해당 인스턴스가 실행되는 코드 실행 스레드이기 때문에 발생할 수 있습니다. 대부분의 경우 각 워크플로우 인스턴스는 서로 다른 스레드에서 실행됩니다. 타이머 활동을 추가하면 이것이 사실이 사실입니다.

    그림 1. 타이머 활동이 앞에 오는 잠금 활동의 예
    잠금 활동 전에 타이머 활동이 있는 워크플로우
    잠금 활동은 일시적으로만 다른 워크플로우 인스턴스의 처리를 차단할 수 있으므로 워크플로우가 잠금잠금 해제 활동 블록 사이에서 대기하게 하는 활동을 추가하지 마십시오. 이로 인해 잠금 해제 작업이 잠금을 획득하여 해제하지 못하고 완료하는 데 60초가 걸릴 수 있습니다. 제한된 대기 활동에는 다음이 포함됩니다.
    • 승인 활동
    • 작업 활동
    • 타이머 활동
    • 조건 활동 대기
    • WF 이벤트 활동 대기
    • PowerShell 스크립트와 같은 MID Server 활동

    결과

    표 1. 활동 결과 잠금
    결과 설명
    성공 활동이 성공적으로 잠금을 획득했습니다. 워크플로우의 이 인스턴스는 이 시점을 지나서 진행될 수 있지만 잠금이 해제될 때까지 다른 인스턴스는 진행할 수 없습니다.
    장애 잠금을 얻으려고 시도한 후 최대 시도 횟수, 활동에서 잠금을 얻을 수 없습니다.

    입력 변수

    입력 변수는 활동의 초기 동작을 결정합니다.

    표 2. 활동 입력 변수 잠금
    필드 설명
    고유한 뮤텍스 키입니다. 활동 잠금 해제 활동은 이 키를 사용하여 잠금을 해제합니다.
    지속 시간
    최대 기간 잠금이 지속되는 최대 시간입니다. 이 기간에 도달하면 잠금이 해제됩니다. 이러한 방식으로 잠금을 해제하는 것은 잠금 해제 작업을 실행하는 것과 같습니다.
    잠금 시도

    잠금 시도가 거부되는 경우 활동이 어떻게 작동하는지 지정합니다. 최종 잠금 시도가 실패하면 활동 상태가 "시간 제한"으로 설정되고 활동 결과는 "실패"로 설정됩니다.

    최대 시도 횟수 활동에서 잠금을 얻으려고 시도할 수 있는 최대 횟수를 지정합니다.
    시도 간 지연 잠금 시도에 실패한 후 다른 잠금 시도가 허용되기 전에 필요한 시간입니다.

    상태

    활동 상태는 워크플로우 엔진에 활동으로 수행할 작업을 알려줍니다.

    표 3. 활동 상태 잠금
    상태 설명
    대기 중 워크플로우 엔진이 잠금을 얻기 위해 대기하고 있습니다.
    완료됨 활동에서 잠금을 성공적으로 획득했습니다.
    시간 제한 활동은 최대 시도 입력 변수에 지정된 시도 횟수 내에서 잠금을 얻을 수 없습니다.