트랜잭션 호출은 대상 노드에서 하나 이상의 클러스터 명령을 호출하는 데 사용됩니다. 클러스터에 정의된 명령에 대한 원격 프로시저 호출과 유사합니다.
쓰기 트랜잭션과 마찬가지로 호출 트랜잭션은 시간 제한 트랜잭션과 시간 제한이 없는 트랜잭션을 지원합니다. 시간 제한 거래에 대한 자세한 내용은 시간 제한 및 비시간 제한 작업 섹션을 참조하세요.
시간 제한 없는 호출 트랜잭션
요청 작업 호출
방향: 이니시에이터 -> 타겟
읽기 요청 작업 및 쓰기 요청 작업과 마찬가지로 이 작업에서 이니시에이터는 타겟에 다음을 제공합니다.
- 호출 요청: 클러스터 명령의 경로 목록과 명령의 선택적 인수(명령 필드라고 함)입니다.
- 시간 제한 요청: 이 작업이 시간 제한 호출 트랜잭션의 일부인지 여부를 나타내는 플래그입니다.
- 응답 억제: 응답 동작 호출을 억제할지 여부를 나타내는 플래그입니다.
- 상호작용 ID: 호출 요청 작업과 호출 응답 작업을 일치시키는 데 사용되는 정수입니다.
응답 작업 호출
방향: 타겟 -> 이니시에이터
타겟이 Invoke Request Action을 수신한 후 다음을 포함하는 Invoke Response Action을 통해 트랜잭션을 마무리합니다.
- 호출 응답: 전송된 모든 호출 요청에 대한 명령 응답 또는 상태 목록입니다.
- 상호작용 ID: 호출 응답 작업을 호출 요청 작업과 일치시키는 데 사용되는 정수입니다.
시간 제한 없는 호출 제한
Invoke Request Action은 그룹캐스트일 수 있지만 이 경우 Suppress Response 플래그를 설정해야 합니다. 그렇지 않으면 그룹의 모든 구성원의 동시 응답으로 인해 네트워크가 과부하될 수 있기 때문입니다.
이 동작을 활성화하려면 Invoke Requests 목록에 사용된 경로에 그룹이 포함될 수 있으며, 대안적으로 와일드카드가 포함될 수도 있지만 Endpoint 필드에서만 가능합니다. 게다가 액션이 그룹캐스트인 경우, 이 트랜잭션은 응답 없이 종료됩니다.
시간 제한 호출 트랜잭션
시간 제한 쓰기 트랜잭션과 마찬가지로 시간 제한 호출 트랜잭션도 시간 제한 요청 작업으로 시작합니다.
시간 제한 요청 작업
방향: 이니시에이터 -> 타겟
개시자는 다음이 포함된 작업을 전송하여 트랜잭션을 시작합니다.
- 시간 초과: 이 트랜잭션이 열려 있는 시간(밀리초)입니다. 이 기간 동안 개시자가 보낸 다음 작업은 유효한 것으로 간주됩니다.
시간 제한 요청 작업을 수신하면 타겟은 상태 응답 작업으로 시간 제한 요청 작업을 승인해야 합니다. 개시자가 오류가 없다고 보고하는 상태 응답 작업을 수신하면 호출 요청 작업을 보냅니다.
요청 작업 호출
이전에 설명한 요청 작업 호출과 동일합니다.
응답 작업 호출
이전에 설명한 응답 작업 호출과 동일합니다.
시간 제한 호출 제한
모든 호출 명령은 시간 제한 상호작용을 통해 호출될 수 있습니다. Timed Request Action, Invoke Request Action, Invoke Response Action은 Unicast 전용이므로 Timed Invoke Transactions에서 groupcast로 사용할 수 없습니다.
요청 작업 호출은 그룹 및 와일드 카드가 포함된 경로 사용을 지원하지만 응답 작업 호출은 와일드 카드 사용을 지원하지 않습니다.