Transakcje wywołania służą do wywoływania co najmniej 1 polecenia klastra w węźle docelowym. Jest to podobne do zdalnych wywołań procedur wykonywanych w przypadku polecenia zdefiniowanego w klastrze.
Podobnie jak transakcje zapisu, transakcje wywołania obsługują transakcje z limitem czasu i bez limitu czasu. Więcej informacji o transakcjach z określonym czasem znajdziesz w sekcji Działania z określonym i nieokreślonym czasem.
Transakcja wywołania bez pomiaru czasu
Wywołaj działanie żądania
Kierunek: inicjator -> cel
Podobnie jak w przypadku działania żądania odczytu i działania żądania zapisu, w tym działaniu inicjator przekazuje celowi:
- Żądania wywołania: lista ścieżek do poleceń klastra oraz opcjonalne argumenty poleceń o nazwie Pola poleceń.
- Żądanie z limitem czasu: flaga wskazująca, czy to działanie jest częścią transakcji wywołania z limitem czasu.
- Pomiń odpowiedź: flaga wskazująca, czy działanie wywołania odpowiedzi powinno zostać pominięte.
- Identyfikator interakcji: liczba całkowita używana do dopasowywania działania wywołania żądania do działania wywołania odpowiedzi.
Wywołaj działanie związane z odpowiedzią
Kierunek: cel -> inicjator
Po otrzymaniu działania żądania wywołania cel sfinalizuje transakcję za pomocą działania odpowiedzi na wywołanie, które zawiera:
- Invoke Responses (Odpowiedzi na wywołania): lista odpowiedzi na polecenia lub stanów każdego wysłanego żądania wywołania.
- Identyfikator interakcji: liczba całkowita używana do dopasowywania działania odpowiedzi na wywołanie do działania żądania wywołania.
Ograniczenia dotyczące wywoływania bez limitu czasu
Działanie żądania wywołania może być grupowe, ale w tym przypadku musi być ustawiona flaga Pomiń odpowiedź. W przeciwnym razie sieć mogłaby zostać przeciążona przez jednoczesne odpowiedzi od wszystkich członków grupy.
Aby włączyć to zachowanie, ścieżka używana na liście żądań wywołania może zawierać grupy, a alternatywnie może zawierać symbole wieloznaczne, ale tylko w polu punktu końcowego. Co więcej, jeśli działanie jest wysyłane do grupy, transakcja kończy się bez odpowiedzi.
Transakcje wywołania z limitem czasu
Podobnie jak transakcje zapisu z limitem czasu, transakcje wywołania z limitem czasu również rozpoczynają się od działania żądania z limitem czasu.
Działanie związane z prośbą o czas
Kierunek: inicjator -> cel
Inicjator rozpoczyna transakcję, wysyłając to działanie, które zawiera:
- Timeout: liczba milisekund, przez które transakcja może pozostać otwarta. W tym okresie następne działanie wysłane przez inicjatora zostanie uznane za prawidłowe.
Po otrzymaniu działania żądania z limitem czasu cel musi potwierdzić działanie żądania z limitem czasu za pomocą działania odpowiedzi na stan. Gdy inicjator otrzyma działanie odpowiedzi stanu bez błędów, wyśle działanie żądania wywołania.
Wywołaj działanie żądania
Tak samo jak w przypadku opisanego wcześniej wywołania działania żądania.
Wywołaj działanie związane z odpowiedzią
Tak samo jak w przypadku opisanej wcześniej czynności wywołania odpowiedzi.
Ograniczenia dotyczące wywoływania z opóźnieniem
Wszystkie polecenia wywołania można wywołać w interakcji z limitem czasu. Działanie żądania z limitem czasu, działanie żądania wywołania i działanie odpowiedzi wywołania są dostępne tylko w Unicast, więc nie można ich używać jako transmisji grupowej w przypadku transakcji wywołania z limitem czasu.
Działanie wywołania żądania obsługuje używanie ścieżek z grupami, a także symboli wieloznacznych, ale działanie wywołania odpowiedzi nie obsługuje używania symboli wieloznacznych.