활동 잠금 워크플로우

  • 릴리스 버전: Washingtondc
  • 업데이트 날짜 2024년 02월 01일
  • 읽기2분
  • Lock 활동은 잠금이 해제될 때까지 이 워크플로의 다른 인스턴스가 이 활동을 지나 계속되지 않도록 합니다.

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

    워크플로는 Unlock 작업을 사용하여 잠금을 명시적으로 해제할 수 있습니다. 최대 기간에 도달하면 잠금이 해제될 수도 있습니다.

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

    주:

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

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

    결과

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

    입력 변수

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

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

    잠금 시도가 거부되는 경우 활동이 동작하는 방식을 지정합니다. 최종 잠금 시도가 실패하면 활동 상태는 '시간 초과'로 설정되고 활동 결과는 '실패'로 설정됩니다.

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

    상태

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

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