7. Транзакция общего процесса по шаблону "Запрос/подтверждение"

7. Транзакция общего процесса по шаблону
"Запрос/подтверждение"

131. Транзакция общего процесса по шаблону "Запрос/подтверждение" выполняется, если инициатор запрашивает информацию, которая требует только подтверждения (например, запрос статусной информации).

Инициирование транзакции общего процесса осуществляется инициатором путем отправления сообщения с данными прикладного уровня, представляющими собой запрос информации для подтверждения респондентом.

Если истекло время для ответа, инициатор транзакции общего процесса должен повторно инициировать транзакцию общего процесса столько раз, сколько определено согласованным количеством повторов, или сигнализировать об ошибке, если исчерпано количество повторов.

132. Респондент может потребовать, чтобы инициатор транзакции общего процесса после получения им сообщения-ответа отправил сигнал-подтверждение "Получено" до истечения времени, определенного как время для подтверждения получения.

133. Транзакция общего процесса по шаблону "Запрос/подтверждение" выполняется с обеспечением или без обеспечения гарантированности доставки.

134. Последовательность выполнения транзакции общего процесса по шаблону "Запрос/подтверждение" без обеспечения гарантированности доставки аналогична последовательности выполнения транзакции общего процесса по шаблону "Вопрос/ответ".

135. В процессе выполнения транзакции общего процесса по шаблону "Запрос/подтверждение" с обеспечением гарантированности доставки реализуется следующая последовательность обмена сообщениями:

инициатор отправляет в адрес респондента сообщение-запрос;

респондент принимает сообщение-запрос;

респондент обеспечивает обработку принятого сообщения-запроса и отправляет инициатору сообщение-ответ;

инициатор принимает сообщение-ответ и как получатель информации подтверждает получение сообщения-ответа, отправляя респонденту сигнал-подтверждение "Получено";

после получения респондентом от инициатора сигнала-подтверждения "Получено" транзакция общего процесса считается завершенной;

если инициатор не получил сообщение-ответ до истечения времени, определенного как время ожидания ответа, или не смог сгенерировать и отправить респонденту сигнал-подтверждение "Получено" до истечения времени, определенного как время для подтверждения получения, он повторно инициирует транзакцию общего процесса, если не исчерпано количество повторов.

Последовательность выполнения транзакции общего процесса по шаблону "Запрос/подтверждение" с обеспечением гарантированности доставки представлена на рисунке 5.

┌───────────┐                                                 ┌───────────┐
│:инициатор │                                                 │:респондент│
└─────┬─────┘                                                 └─────┬─────┘

                           Сообщение-запрос
      ├────────────────────────────────────────────────────────────>│

      │                     Сообщение-ответ                         │
      │<────────────────────────────────────────────────────────────┤

      │             Сигнал-подтверждение "Получено"                 │
      │─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ >│

      │                                                             │

Рис. 5. Последовательность выполнения транзакции
общего процесса по шаблону "Запрос/подтверждение"
с обеспечением гарантированности доставки