DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

ORA-03113: TNS: end of file on communication channel

Причины выдачи сообщений об ошибках ORA-12571 и ORA-ОЗПЗво многом похожи. Оба сообщения свидетельствуют о преждевременном разрыве соединения. Отчасти это может быть обусловлено большим расстоянием между клиентом и сервером. Одно из возможных решений состоит в увеличении числа попыток повторного соединения для протокола TCP/IP. Для этого нужно внести изменения в реестр Windows на машине клиента.
При операциях с реестром всегда есть риск принести больше вреда,
чем пользы. Следует подходить к этому делу с большой осторожностью. Не забудьте сделать резервную копию перед внесением каких-либо изменений.
Вам предстоит добавить параметр TcpMaxDataRetransmissions (типа REG_DWORD) со значением 15 в реестр Windows NT на машине клиента.
Ниже приводится подробное пошаговое описание этой процедуры.
Откройте меню Start и выберите пункт Run. Откроется диалоговое окно Run.
Введите regedt32 в поле Open и нажмите Enter. Использование regedt32 вместо regedit вызвано тем, что вы добавляете параметр, а не просто просматриваете или удаляете данные реестра.
Убедитесь, что в меню View установлен режим "Tree and Data".
Найдите окно с заголовком "HKEY_LOCAL_MACHTNE on Local Machine" и дважды щелкните на папке SYSTEM. На рис. 14.8 показан редактор реестра с окном HKEY_LOCAL_MACHINE и выбранным разделом
Дважды щелкните на папке CurrentControlSet.
Дважды щелкните на папке Services.
Дважды щелкните на папке Tcpip.
Щелкните на папке Parameters.
Выберите в меню Edit пункт Add Value.
В поле Value Name введите TcpMaxDataRetransmissions.
Выберите REG_DWORD в раскрывающемся списке Data Туре.
Щелкните на кнопке ОК.
В диалоговом окне DWORD Editor введите число 15 в поле Data и убедитесь, что выбран переключатель Hex.
Щелкните на кнопке ОК.
В панели данных должен появиться новый параметр. Если этого произошло, повторите описанные шаги.
Если на машине клиента установлена Windows 95, то для увеличения числа попыток повторной передачи нужно добавить в реестр параметр MaxDataRetries типа REG_DWORD со значением 15. Это делается практически также, как и в Windows NT, однако вместо regedt32 используется regedit. Первые шесть шагов полностью совпадают, а остальные шаги, начиная с седьмого, перечислены ниже.
Дважды щелкните на папке vxd.
Щелкните на папке MSTCP.
В меню Edit выберите New, а затем String Value.
10.        В правой панели появится поле со строкой "New Value #1".
Введите вместо нее MaxDataRetries и нажмите Enter.
Щелкните правой кнопкой на новом параметре и выберите в появившемся контекстном меню пункт Modify.
Введите число 15 в поле Value Data.
В панели данных должен появиться новый параметр. Если этого не произошло, повторите описанные шаги.
Другая причина, по которой можно получить сообщение ORA-03113, заключается в том, что Net8 пытается передать пакет пять раз, пока не зафиксирует отказ сети. Значение 5 — это число попыток передачи пакета, устанавливаемое по умолчанию для протокола TCP/IP в Windows 95 и Windows NT. С другой стороны, сервер может не получить последний переданный пакет. В этом случае возвращается ошибка с номером 54, интерпретируемая как "connection reset/network is busy" ("сброс соединения/занятость сети"). Получив такую ошибку, Net8 предполагает, что сервер отключился, и закрывает соединение. Необходимо проверить, что произошло на самом деле — отказ сети (возможно, временный) или отключение сервера.
Если вам потребуется дополнительная информация по диагностике этой ошибки, обратитесь к документации на операционную систему.
ORA-03121: no interface driver connection-function not performed
Вы получите это сообщение, если по ошибке укажете в строке соединения Net8 префикс в стиле SQL*Net версии I. Очевидное решение - не использовать перечисленные ниже префиксы:
Т:
X:
Р:
Другая возможная причина состоит в том, что на клиентской машине, не имеющей локальной базы данных, в строке соединения были указаны только имя пользователя и пароль. Решение столь же очевидно — убедитесь, что вводится полная строка соединения.
 









jAntivirus