Wywołaj transakcje

Transakcje wywołania służą do wywoływania co najmniej 1 polecenia klastra w węźle docelowym. Są 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

Kolejność operacji w przypadku transakcji wywołania bez limitu czasu
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 wywołania.
  • Identyfikator interakcji: liczba całkowita używana do dopasowania działania żądania wywołania do działania odpowiedzi wywołania.

Działanie odpowiedzi wywołania

Kierunek: cel -> inicjator

Gdy cel otrzyma działanie żądania wywołania, zakończy transakcję działaniem odpowiedzi wywołania, które zawiera:

  • Odpowiedzi wywołania: lista odpowiedzi poleceń lub stan każdego wysłanego żądania wywołania.
  • Identyfikator interakcji: liczba całkowita używana do dopasowania działania odpowiedzi wywołania 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 przez jednoczesne odpowiedzi 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ływanej w określonym czasie
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: ile milisekund 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 stanu. Gdy inicjator otrzyma działanie odpowiedzi stanu, 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 wywołania

Takie samo jak opisane wcześniej działanie odpowiedzi wywołania.

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 wywołania 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 wywołania nie obsługuje symboli wieloznacznych.