Wywołaj transakcje

Transakcje wywołania służą do wywoływania jednego lub większej liczby poleceń klastra na węźle docelowym. Jest podobne do zdalnych wywołań procedur wykonywanych w przypadku polecenia zdefiniowanego w klastrze.

Podobnie jak w przypadku transakcji zapisu, transakcje wywołania obsługują transakcje z określonym i nieokreślonym czasem trwania. Więcej informacji na temat transakcji czasowych można znaleźć w sekcji Akcje czasowe i bezczasowe.

Transakcja wywołania bez czasu

Sekwencja operacji transakcji wywołania bez limitu czasu
Rysunek 1: Transakcja wywołania bez limitu czasu

Wywołaj akcję żądania

Kierunek: inicjator –> cel

Podobnie jak w przypadku akcji żądania odczytu i akcji żądania zapisu, w tej akcji inicjator dostarcza celowi:

  • Wywołaj żądania: lista ścieżek do poleceń klastra, a także opcjonalnych argumentów poleceń o nazwie pola poleceń.
  • Timed Request (Żądanie czasowe): flaga wskazująca, czy to działanie jest częścią transakcji Timed Invoke.
  • Wstrzymaj odpowiedź: flaga wskazująca, czy akcja Wywołaj odpowiedź powinna zostać wstrzymana.
  • Identyfikator interakcji: liczba całkowita służąca do dopasowania akcji żądania wywołania do akcji odpowiedzi wywołania.

Wywołaj akcję odpowiedzi

Kierunek: Cel -> Inicjator

Po otrzymaniu przez obiekt docelowy akcji żądania wywołania, transakcja zostanie sfinalizowana akcją odpowiedzi wywołania, która zawiera:

  • Odpowiedzi wywołania: lista odpowiedzi poleceń lub statusów dla każdego wysłanego żądania wywołania.
  • Identyfikator interakcji: liczba całkowita służąca do dopasowania akcji wywołania odpowiedzi do akcji wywołania żądania.

Ograniczenia wywołań bez limitu czasu

Akcja wywołania żądania może być akcją grupową, ale w takim przypadku należy ustawić flagę Suppress Response. W przeciwnym razie sieć może zostać zalana przez jednoczesne odpowiedzi wszystkich członków grupy.

Aby umożliwić takie zachowanie, ścieżka używana na liście Wywołaj żądania może zawierać Grupy, a alternatywnie może zawierać symbole wieloznaczne, ale tylko w polu Punkt końcowy. Ponadto, jeśli akcja ma charakter grupowy, transakcja ta kończy się bez odpowiedzi.

Transakcje wywołań czasowych

Podobnie jak transakcje zapisu czasowego, transakcje wywołania czasowego również rozpoczynają się od akcji żądania czasowego.

Sekwencja operacji transakcji wywołania czasowego
Rysunek 2: Transakcja wywołania czasowego

Akcja żądania czasowego

Kierunek: Inicjator -> Cel

Inicjator rozpoczyna transakcję wysyłając tę akcję, która zawiera:

  • Limit czasu: ile milisekund ta transakcja może pozostać otwarta. W tym okresie kolejna akcja wysłana przez Inicjatora będzie uważana za ważną.

Po otrzymaniu Akcji Żądania Czasowego, Cel musi potwierdzić Akcję Żądania Czasowego, wysyłając Akcję Odpowiedzi na Status. Gdy inicjator otrzyma informację o braku błędów w odpowiedzi na status, wyśle żądanie wywołania akcji.

Wywołaj akcję żądania

Tak samo jak poprzednio opisana opcja Wywołaj akcję żądania.

Wywołaj akcję odpowiedzi

Tak samo jak wcześniej opisana funkcja Wywołaj akcję odpowiedzi.

Ograniczenia czasowego wywołania

Wszystkie polecenia wywołania mogą być wywołane w ramach interakcji czasowej. Akcja żądania czasowego, akcja wywołania żądania i akcja wywołania odpowiedzi są dostępne wyłącznie w Unicast i dlatego nie można ich używać jako transmisji grupowej w transakcjach wywołania czasowego.

Akcja wywołania żądania obsługuje używanie ścieżek z grupami, a także symboli wieloznacznych, natomiast akcja wywołania odpowiedzi nie obsługuje używania symboli wieloznacznych.