Wywołaj transakcje

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

Sekwencja operacji w przypadku transakcji Untimed Invoke Transaction
Rysunek 1. 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.

Sekwencja operacji w przypadku transakcji wywołania czasowego
Rysunek 2. Transakcja wywołania 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.