ORACLE - 03113: конец файла в канале связи для конкретного запроса - PullRequest
0 голосов
/ 07 сентября 2011

Обращаясь ко всем руководителям Oracle, у меня возникает странная проблема с запросом sql ...

Локально работающий сервер IIS, на котором запущен базовый веб-сервис, выполняющий запрос через VPN-соединение с другой базой данных Oracle,

Многие другие запросы работают, некоторые еще требуют больше времени для возврата данных.

Это база данных Oracle 9i.

Сначала я использовал клиент Oracle 11g, затем переключился обратнодо 10g, думая, что это может быть.

Я думал, что это может быть проблема с драйвером ADO.NET Oracle, поэтому извлек sql в файл и запустил его непосредственно из sqlplus (консоль).То же самое.01331 примерно через 1 секунду.

Я могу выполнить тот же запрос на целевом сайте, используя старый редактор 4gl sql с использованием клиента 9i, и он работает.Я протестировал его на SQL Worksheet на клиенте на целевом сайте, где он работает.

Единственное, что необычно в этом операторе sql, - это то, что он выполняет обход дерева с помощью функции CONNECT BY.

Iне думайте, что это проблема времени ожидания, так как более сложные (ну, конечно, более крупные) запросы в конечном итоге возвращают данные.Я сделал что-то вроде select count (*) из largetable, где longstring не похож на «% test%», чтобы предоставить достаточно времени для повторного создания тайм-аута, но это не так.Кроме того, ошибка 03113 возникает довольно быстро после выполнения оператора.Я ничего не вижу в sqlnet.log.

Я был бы очень признателен за любые указатели?

Заранее спасибо,

Сэм

Ответы [ 2 ]

0 голосов
/ 09 сентября 2011

Я обнаружил, что проблема заключается в включении столбца типа long в запрос на выборку.

Кто-нибудь может придумать причину этого?

Попробовал два клиента Oracle (10/11) на двух гостевых ОС (Vista / Windows 7) и та же проблема. Различные локальные брандмауэры, нет журналов оповещений Oracle, нет журналов sqlnet. Понятия не имею.

Есть еще предложения? Или это время поддержки Oracle?


Мне удалось решить эту проблему. Я закончил тем, что портировал проект .net на .net 4 и использовал поставщика Oracle.DataAccess.

Исходный запрос содержал вложенный treewalk с использованием функции connect by, которая работала на сервере, но не на клиенте. Я продолжал получать ORA03113.

У меня возникли дополнительные проблемы при использовании версии ODP.NET 2.x - ORA-12560: TNS: ошибка адаптера протокола. Чтобы решить эту проблему, я установил последнюю версию клиента oracle 11.2 и последнюю версию клиента ODP.NET 11.2. Предоставлены разрешения на доступ к oracle home (и подпапкам / элементам) - перезагрузка.

Надеюсь, это кому-нибудь поможет.

0 голосов
/ 09 сентября 2011

Обычно это указывает на ошибку в механизме оптимизации запросов. Я столкнулся с некоторыми проблемами с этой самой вещи с 9i и совсем недавно 11g.

Вот ваши варианты

1)  ReWrite the query (check for joins to views, etc) and try to restructure it
2)  Work with Oracle support 

Я могу рассказать вам о проблеме, которую я обнаружил в 9i Oracle, отказался признать / исправить. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...