호출 트랜잭션 은 대상 노드에서 클러스터 명령어 하나 이상을 호출하는 데 사용됩니다. 클러스터에 정의된 명령어에 대한 원격 프로시져 콜과 유사합니다.
쓰기 트랜잭션과 마찬가지로 호출 트랜잭션은 시간 지정 트랜잭션과 시간 미지정 트랜잭션을 지원합니다. 시간 지정 트랜잭션에 관한 자세한 내용은 시간 지정 및 시간 미지정 작업 섹션을 참고하세요.
시간 미지정 호출 트랜잭션
호출 요청 작업
방향: 이니시에이터 -> 대상
읽기 요청 작업 및 쓰기 요청 작업과 마찬가지로 이 작업에서 이니시에이터는 대상에 다음을 제공합니다.
- 호출 요청: 클러스터 명령어의 경로 목록과 명령어의 선택적 인수(이름은 명령어 필드)입니다.
- 시간 지정 요청: 이 작업이 시간 지정 호출 트랜잭션의 일부인지 나타내는 플래그입니다.
- 응답 표시 안 함: 호출 응답 작업을 표시하지 않아야 하는지 나타내는 플래그입니다.
- 상호작용 ID: 호출 요청 작업을 호출 응답 작업과 일치시키는 데 사용되는 정수입니다.
호출 응답 작업
방향: 대상 -> 이니시에이터
대상이 호출 요청 작업을 수신하면 다음을 전달하는 호출 응답 작업으로 트랜잭션을 완료합니다.
- 호출 응답: 전송된 모든 호출 요청의 명령어 응답 또는 상태 목록입니다.
- 상호작용 ID: 호출 응답 작업을 호출 요청 작업과 일치시키는 데 사용되는 정수입니다.
시간 미지정 호출 제한사항
호출 요청 작업은 그룹캐스트일 수 있지만 이 경우 응답 표시 안 함 플래그를 설정해야 합니다. 그렇지 않으면 그룹의 모든 구성원의 동시 응답으로 인해 네트워크가 과부하될 수 있습니다.
이 동작을 사용 설정하려면 호출 요청 목록에 사용된 경로에 그룹이 포함될 수 있으며, 또는 와일드 카드가 포함될 수 있지만 엔드포인트 필드에만 포함될 수 있습니다. 또한 작업이 그룹캐스트인 경우 이 트랜잭션은 응답 없이 종료됩니다.
시간 지정 호출 트랜잭션
시간 지정 쓰기 트랜잭션과 마찬가지로 시간 지정 호출 트랜잭션도 시간 지정 요청 작업으로 시작됩니다.
시간 지정 요청 작업
방향: 이니시에이터 -> 대상
이니시에이터는 다음을 포함하는 이 작업을 전송하여 트랜잭션을 시작합니다.
- 제한 시간: 이 트랜잭션이 열린 상태로 유지될 수 있는 시간(밀리초)입니다. 이 기간 동안 이니시에이터가 전송한 다음 작업은 유효한 것으로 간주됩니다.
시간 지정 요청 작업을 수신하면 대상은 상태 응답 작업으로 시간 지정 요청 작업을 승인해야 합니다. 이니시에이터가 오류가 없음을 보고하는 상태 응답 작업을 수신하면 호출 요청 작업을 전송합니다.
호출 요청 작업
앞서 설명한 호출 요청 작업과 동일합니다.
호출 응답 작업
앞서 설명한 호출 응답 작업과 동일합니다.
시간 지정 호출 제한사항
모든 호출 명령어는 시간 지정 상호작용에서 호출될 수 있습니다. 시간 지정 요청 작업, 호출 요청 작업, 호출 응답 작업은 Unicast-전용이므로 시간 지정 호출 트랜잭션에서 그룹캐스트로 사용할 수 없습니다.
호출 요청 작업은 그룹이 있는 경로와 와일드 카드 사용을 지원하지만 호출 응답 작업은 와일드 카드 사용을 지원하지 않습니다.