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
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.
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.