Wywoływanie transakcji służy do wywoływania co najmniej 1 polecenia 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. 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 celu:
- Invoke Requests (Wywołaj żądania): lista ścieżek do poleceń klastra oraz opcjonalne argumenty 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 Invoke Request Action do działania Invoke Response Action.
Wywołaj działanie w odpowiedzi
Kierunek: miejsce docelowe –> 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łanie): lista odpowiedzi na polecenia lub stan każdego wysłanego żądania wywołania.
- Identyfikator interakcji: liczba całkowita używana do dopasowania 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. 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 odpowiedzi o stanie, które nie zgłasza błędów, wyśle działanie żądania wywołania.
Wywołaj działanie dotyczące prośby
Tak samo jak opisana wcześniej czynność Invoke Request Action.
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, więc 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.