Wywołaj transakcje

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

Sekwencja operacji w przypadku transakcji Untimed Invoke Transaction
Ilustracja 1. Wywołanie transakcji bez limitu czasu

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.

Kolejność operacji w przypadku transakcji Timed Invoke Transaction
Rysunek 2. Transakcja wywołania czasowego

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.