Wywołania transakcji służą do wywoływania co najmniej 1 polecenia klastra w węźle docelowym. Jest to 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. Więcej informacji o transakcjach czasowych znajdziesz w sekcji Działania czasowe i bez ograniczeń czasowych.
Untimed Invoke Transaction
Wywołaj działanie dotyczące prośby
Kierunek: inicjator –> cel
Podobnie jak w przypadku działań Read Request Action i Write Request Action, w tym działaniu inicjator przekazuje do elementu docelowego:
- Invoke Requests (Wywołaj żądania): lista ścieżek do poleceń klastra oraz opcjonalnych argumentów poleceń o nazwie Command Fields (Pola poleceń).
- Timed Request (Żądanie czasowe): flaga wskazująca, czy to działanie jest częścią transakcji Timed Invoke.
- Suppress Response (Pomiń odpowiedź): flaga wskazująca, czy należy pominąć działanie Invoke Response Action.
- Identyfikator interakcji: liczba całkowita używana do dopasowywania działania żądania wywołania do działania odpowiedzi wywołania.
Wywołaj działanie w odpowiedzi
Kierunek: Cel –> Inicjator
Po otrzymaniu działania Invoke Request Target zakończy transakcję za pomocą działania Invoke Response, które zawiera:
- Invoke Responses (Odpowiedzi na wywołania): lista odpowiedzi na polecenia lub stan każdego wysłanego żądania wywołania.
- Identyfikator interakcji: liczba całkowita używana do dopasowywania działania Invoke Response Action do działania Invoke Request Action.
Ograniczenia wywoływania bez limitu czasu
Działanie Invoke Request Action może być grupowe, ale w tym przypadku musi być ustawiona flaga Suppress Response. W przeciwnym razie sieć może zostać zalana przez jednoczesne odpowiedzi wszystkich członków grupy.
Aby włączyć to zachowanie, ścieżka użyta na liście Wywołaj żądania może zawierać grupy lub symbole wieloznaczne, ale tylko w polu Punkt końcowy. Ponadto, jeśli działanie jest typu groupcast, transakcja kończy się bez odpowiedzi.
Transakcje wywoływane w określonym czasie
Podobnie jak w przypadku transakcji z limitem czasu na zapis, transakcje z limitem czasu na wywołanie również rozpoczynają się od działania Timed Request Action.
Działanie związane z żądaniem ograniczonym czasowo
Kierunek: inicjator –> cel
Inicjator rozpoczyna transakcję, wysyłając to działanie, które zawiera:
- Limit czasu: ile milisekund może pozostać otwarta ta transakcja. W tym okresie następne działanie wysłane przez inicjatora będzie uznawane za prawidłowe.
Po otrzymaniu działania Timed Request Action urządzenie docelowe musi potwierdzić je za pomocą działania Status Response Action. Gdy inicjator otrzyma działanie Status Response Action (Odpowiedź o stanie) informujące o braku błędów, wyśle działanie Invoke Request Action (Wywołaj żądanie).
Wywołaj działanie dotyczące prośby
Tak samo jak opisane wcześniej wywołanie działania żądania.
Wywołaj działanie w odpowiedzi
Tak samo jak w przypadku opisanego wcześniej działania Invoke Response Action.
Ograniczenia wywoływania w określonym czasie
Wszystkie polecenia wywołania można wywoływać w przypadku interakcji czasowej. Działania Timed Request Action, Invoke Request Action i Invoke Response Action są Unicast-only i nie można ich używać jako groupcast w transakcjach Timed Invoke.
Działanie Invoke Request Action obsługuje używanie ścieżek z grupami, a także symboli wieloznacznych, ale działanie Invoke Response Action nie obsługuje symboli wieloznacznych.