Transakcje wywołania służą do wywoływania co najmniej 1 polecenia klastra w węźle docelowym. Są one 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 limitem czasu znajdziesz w sekcji Działania z limitem czasu i bez limitu czasu.
Transakcja wywołania bez limitu czasu
Działanie żądania wywołania
Kierunek: inicjator -> cel
Podobnie jak w przypadku działania żądania odczytu i działania żądania zapisu, w tym działaniu inicjator przekazuje do celu:
- Żą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 należy pominąć działanie odpowiedzi na wywołanie.
- Identyfikator interakcji: liczba całkowita używana do dopasowywania działania żądania wywołania do działania odpowiedzi na wywołanie.
Działanie odpowiedzi na wywołanie
Kierunek: cel -> inicjator
Gdy cel otrzyma działanie żądania wywołania, zakończy transakcję działaniem odpowiedzi na wywołanie, które zawiera:
- Odpowiedzi na wywołanie: lista odpowiedzi na polecenia lub stan 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 wywołania bez limitu czasu
Działanie żądania wywołania może być grupowe, ale w tym przypadku należy ustawić flagę Pomiń odpowiedź. W przeciwnym razie sieć może zostać zalana jednoczesnymi odpowiedziami od każdego członka grupy.
Aby włączyć to zachowanie, ścieżka używana na liście żądań wywołania może zawierać grupy lub symbole wieloznaczne, ale tylko w polu punktu końcowego. Ponadto, jeśli działanie jest grupowe, ta 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 żądania z limitem czasu
Kierunek: inicjator -> cel
Inicjator rozpoczyna transakcję, wysyłając to działanie, które zawiera:
- Limit czasu: liczba milisekund, przez które ta transakcja może pozostać otwarta. W tym okresie następne działanie wysłane przez inicjatora będzie uznawane za prawidłowe.
Gdy cel otrzyma działanie żądania z limitem czasu, musi potwierdzić je działaniem odpowiedzi na stan. Gdy inicjator otrzyma działanie odpowiedzi na stan, które nie zgłasza błędów, wyśle działanie żądania wywołania.
Działanie żądania wywołania
Takie samo jak opisane wcześniej działanie żądania wywołania.
Działanie odpowiedzi na wywołanie
Takie samo jak opisane wcześniej działanie odpowiedzi na wywołanie.
Ograniczenia wywołania z limitem czasu
Wszystkie polecenia wywołania można wywoływać w ramach interakcji z limitem czasu. Działanie żądania z limitem czasu , działanie żądania wywołania i działanie odpowiedzi na wywołanie są Unicast-only, dlatego nie można ich używać jako grupowe w transakcjach wywołania z limitem czasu.
Działanie żądania wywołania obsługuje używanie ścieżek z grupami oraz symboli wieloznacznych, ale działanie odpowiedzi na wywołanie nie obsługuje symboli wieloznacznych.