트랜잭션 호출

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

쓰기 트랜잭션과 비슷한 방식으로 호출자 트랜잭션은 시간 지정된 트랜잭션과 시간이 지정되지 않은 트랜잭션을 지원합니다. 시간 기반 거래에 관한 자세한 내용은 일정이 지정된 작업 및 시간이 지정되지 않은 작업 섹션을 참고하세요.

시간이 지정되지 않은 트랜잭션 호출

시간이 지정되지 않은 호출 트랜잭션의 작업 시퀀스
그림 1: 시간이 지정되지 않은 호출 트랜잭션

요청 작업 호출

방향: 개시자 -> 타겟

읽기 요청 작업 및 쓰기 요청 작업과 마찬가지로 이 작업에서 개시자는 대상에 다음을 제공합니다.

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

응답 작업 호출

안내: 타겟 -> 개시자

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

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

시간이 지정되지 않은 호출 제한

요청 호출 작업은 그룹캐스트일 수 있지만 이 경우 응답 억제 플래그를 설정해야 합니다. 그 근거는 그러지 않으면 그룹의 모든 멤버의 동시 응답으로 인해 네트워크가 플러드될 수 있기 때문입니다.

이 동작을 사용 설정하기 위해 호출 요청 목록에 사용된 경로에 그룹을 포함할 수 있습니다. 또는 와일드 카드를 포함할 수도 있지만 엔드포인트 필드에만 포함할 수 있습니다. 또한 작업이 그룹캐스트인 경우 이 트랜잭션은 응답 없이 종료됩니다.

시간 지정된 호출 트랜잭션

시간 지정 쓰기 트랜잭션과 마찬가지로 시간이 지정된 호출 트랜잭션도 시간 지정 요청 작업으로 시작합니다.

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

시간 지정 요청 작업

방향: 개시자 -> 타겟

개시자가 다음을 포함한 이 작업을 전송하는 거래를 시작합니다.

  • 시간 제한: 이 트랜잭션이 열린 상태로 유지될 수 있는 시간(밀리초)입니다. 이 기간 동안 시작자가 보낸 다음 작업은 유효한 것으로 간주됩니다.

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

요청 작업 호출

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

응답 작업 호출

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

시간 지정 호출 제한

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

호출 요청 작업은 와일드 카드와 그룹을 통한 경로 사용을 지원하지만 와일드 카드 사용 작업은 와일드 카드 사용을 지원하지 않습니다.