Product SiteDocumentation Site

D.4. Восстановление после сбоя и независимые поддеревья

В большей части промышленных окружений обычным подходом при восстановлении работоспособности сервиса является его полный перезапуск в случае сбоя одного из компонентов. В примере D.6, “Нормальная процедура восстановления сервиса foo после сбоя”, если хотя бы один из скриптов, определенных в описании сервиса, завершается с ошибкой, в ходе обычной работы сервис будет перезапущен (перенесен, отключен, в зависимости от выбранной политики восстановления). Тем не менее, в некоторых условиях определенные компоненты сервиса могут рассматриваться как некритические; можно перезапустить только этот компонент сервиса. Для реализации этой возможности можно использовать атрибут __independent_subtree. В примере D.7, “Восстановление сервиса foo после сбоя с использованием атрибута __independent_subtree, атрибут __independent_subtree используется для реализации следующей логики:
<service name="foo">
      <script name="script_one" ...>
          <script name="script_two" .../>
      </script>
      <script name="script_three" .../>
</service>
Пример D.6. Нормальная процедура восстановления сервиса foo после сбоя

<service name="foo">
      <script name="script_one" __independent_subtree="1" ...>
          <script name="script_two" __independent_subtree="1" .../>
          <script name="script_three" .../>
      </script>
      <script name="script_four" .../>
</service>
Пример D.7. Восстановление сервиса foo после сбоя с использованием атрибута __independent_subtree