트랜잭션 호출

트랜잭션 호출은 대상 노드에서 하나 이상의 클러스터 명령어를 호출하는 데 사용됩니다. 클러스터에 정의된 명령어에 대한 원격 프로시저 호출과 유사합니다.

쓰기 트랜잭션과 마찬가지로 호출 트랜잭션은 시간 설정된 트랜잭션과 시간 설정되지 않은 트랜잭션을 지원합니다. 시간 제한 트랜잭션에 관한 자세한 내용은 시간 제한 및 시간 제한 없는 작업 섹션을 참고하세요.

시간 제한 없는 호출 거래

시간 제한 없는 호출 트랜잭션의 작업 시퀀스
그림 1: 시간 제한 없는 호출 트랜잭션

요청 작업 호출

방향: 개시자 -> 대상

읽기 요청 작업 및 쓰기 요청 작업과 마찬가지로 이 작업에서 이니시에이터는 타겟에 다음을 제공합니다.

  • 호출 요청: 클러스터 명령어의 경로 목록과 명령어의 선택적 인수(명령어 필드라고 함) 목록입니다.
  • 시간 설정된 요청: 이 작업이 시간 설정된 호출 트랜잭션의 일부인지 여부를 나타내는 플래그입니다.
  • Suppress Response(응답 억제): 응답 작업 호출을 억제해야 하는지 여부를 나타내는 플래그입니다.
  • 상호작용 ID: 호출 요청 작업을 호출 응답 작업과 일치시키는 데 사용되는 정수입니다.

응답 작업 호출

방향: 타겟 -> 이니시에이터

타겟이 호출 요청 작업을 수신하면 다음을 전달하는 호출 응답 작업으로 거래를 완료합니다.

  • 호출 응답: 전송된 모든 호출 요청의 명령어 응답 또는 상태 목록입니다.
  • 상호작용 ID: 호출 응답 작업을 호출 요청 작업과 일치시키는 데 사용되는 정수입니다.

시간 제한 없는 호출 제한

호출 요청 작업은 그룹 전송일 수 있지만 이 경우 응답 억제 플래그를 설정해야 합니다. 그렇지 않으면 그룹의 모든 구성원의 동시 응답으로 인해 네트워크가 과부하될 수 있기 때문입니다.

이 동작을 사용 설정하려면 호출 요청 목록에 사용되는 경로에 그룹이 포함될 수 있으며, 또는 엔드포인트 필드에만 와일드 카드가 포함될 수 있습니다. 또한 작업이 그룹 전송인 경우 이 트랜잭션은 응답 없이 종료됩니다.

시간 표시 호출 거래

시간 제한 쓰기 트랜잭션과 마찬가지로 시간 제한 호출 트랜잭션도 시간 제한 요청 작업으로 시작됩니다.

시간 설정 호출 트랜잭션의 작업 순서
그림 2: 시간 설정 호출 트랜잭션

시간 설정된 요청 작업

방향: 개시자 -> 대상

이니시에이터는 다음을 포함하는 이 작업을 전송하여 트랜잭션을 시작합니다.

  • 제한 시간: 이 트랜잭션이 열려 있을 수 있는 밀리초입니다. 이 기간 동안 시작자가 전송하는 다음 작업은 유효한 것으로 간주됩니다.

시간 제한 요청 작업이 수신되면 타겟은 상태 응답 작업으로 시간 제한 요청 작업을 확인해야 합니다. 시작 조건자가 오류가 없음을 보고하는 상태 응답 작업을 수신하면 호출 요청 작업을 전송합니다.

요청 작업 호출

이전에 설명한 Invoke Request Action과 동일합니다.

응답 작업 호출

이전에 설명한 응답 작업 호출과 동일합니다.

시간 제한 호출 제한

모든 호출 명령어는 시간 제한된 상호작용에서 호출될 수 있습니다. 시간 설정된 요청 작업, 호출 요청 작업, 호출 응답 작업은 Unicast 전용이며 따라서 시간 설정된 호출 트랜잭션에서 그룹 전송으로 사용할 수 없습니다.

Invoke Request 작업은 그룹과 함께 경로를 사용하는 것과 와일드 카드를 사용하는 것을 모두 지원하지만 Invoke Response 작업은 와일드 카드 사용을 지원하지 않습니다.