트랜잭션 호출

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

쓰기 트랜잭션과 유사한 방식으로 호출 트랜잭션은 시간 제한 트랜잭션과 시간 제한 없는 트랜잭션을 지원합니다. 시간 제한 트랜잭션에 관한 자세한 내용은 시간 제한 작업 및 시간 제한 없는 작업 섹션을 참고하세요.

시간 제한 없는 호출 트랜잭션

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

요청 작업 호출

방향: 개시자 -> 타겟

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

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

응답 작업 호출

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

타겟은 호출 요청 작업을 수신한 후 다음을 전달하는 호출 응답 작업으로 트랜잭션을 완료합니다.

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

시간 제한 없는 호출 제한

호출 요청 작업은 그룹캐스트일 수 있지만 이 경우 Suppress Response 플래그를 설정해야 합니다. 그 이유는 그렇지 않으면 그룹의 모든 구성원이 동시에 응답하여 네트워크가 과부하될 수 있기 때문입니다.

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

시간 제한 호출 트랜잭션

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

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

시간 제한 요청 작업

방향: 개시자 -> 타겟

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

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

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

요청 작업 호출

앞서 설명한 요청 작업 호출과 동일합니다.

응답 작업 호출

앞서 설명한 응답 작업 호출과 동일합니다.

시간 제한 호출 제한사항

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

호출 요청 작업은 그룹이 있는 경로와 와일드 카드의 사용을 지원하지만 호출 응답 작업은 와일드 카드 사용을 지원하지 않습니다.