next up previous contents
Next: Ключи DIPC Up: DIPC - Распределенные межпроцессные Previous: Кластеры   Contents

Сбои работы при использовании DIPC

В программах, использующих DIPC, могут возникать два вида ошибок:

  1. Некоторые ошибки совпадают с теми, которые встречаются в обычных IPC, например, ссылка на несуществующую структуру IPC, или попытка получения доступа к структуре без наличия соответствующих прав доступа. Синхронные ошибки обнаруживаются с помощью значений, возвращаемых системными вызовами. При наличии асинхронных ошибок приходится применять асинхронные механизмы - сигналы.
  2. Ошибки, являющиеся специфическими ошибками DIPC. Они могут быть вызваны следующими ситуациями:

Считается, что когда где-либо возникает ошибка, сообщение о ней не передается (ошибка - остановка), а для ее обнаружения может быть использован механизм тайм-аута - это именно то, что реализовано в DIPC. При этом в DIPC используется ряд различных величин тайм-аута.

Процесс попытки вывода системы из ошибочной ситуации (такой, как ошибка сети) сложен, а иногда и невозможен, что добавляет сложности DIPC. Таким образом, когда DIPC обнаруживают ошибку, они не пытаются осуществить повторное выполнение, а делают в точности то, что и IPC: пытаются информировать приложение об ошибке через код возврата, или, в случае, когда процесс пытается получить доступ к разделяемому сегменту памяти через сигнал (SIGSEGV). Остальное возлагается на приложение. Следует помнить, что только ``ответственные'' процессы будут проинформированы об ошибке - для того, чтобы они предприняли что-нибудь, - а не все процессы распределенной программы.

DIPC пытаются что-либо предпринять не более одного раза. Это либо получается, либо не получается, однако повторных попыток не делается (в смысле: ``не более одного раза''). Это означает, что один и тот же запрос не имеет возможности быть обработанным более одного раза.

Следует отметить, что ошибки могут порождаться невнимательным отношением к системе. Например, структура IPC может быть окончательно удалена на одном компьютере, а другие могут не знать об этом. Они могут считать, что структура продолжает существовать - это может вызвать затруднения в дальнейшем (см. программы в каталоге tools, частично разрешающие эту проблематику).



2004-06-22