Wywołaj transakcje

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

Sekwencja operacji transakcji wywołania bez limitu czasu
Rysunek 1. Transakcja wywołania bez ograniczenia czasowego

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.

Sekwencja operacji transakcji wywołania z limitem czasu
Rysunek 2. Transakcja wywołania 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.