24.09.2014 16:55
Mr_Vito
 
Есть самописная программа, все работало до определенного момента, потом стала вылетать с ошибкой ORA-03113: end-of-file on communication channel
стал разбираться, выяснилось вылетает на запросе абсолютно безобидном запросе:
SELECT TREE, NAME
FROM SUPERMAG.SACARDCLASS
WHERE TREE LIKE '16.7.2.%'
AND INSTR( TREE,'.',1,4 ) > 0
AND INSTR( TREE,'.',1,5 ) = 0

дальше выяснилось, что если в тексте добавить или убрать пробел
запрос замечательно выполняется.
Растолкуйте, почему? и как с этим бороться?
24.09.2014 17:58
OlegON
 
В тексте американской конституции? Или где пробел добавляете?
Сколько времени проходит до вылета с момента запуска? Сколько работает, если пробел куда-то добавить?
Где цитаты из алертлога за момент 3113?
24.09.2014 22:51
Mr_Vito
 
в запросе меняешь например
было: AND INSTR( TREE,'.',1,4 ) > 0
меняешь на: AND INSTR(TREE,'.',1,4 ) > 0
и все работает

вылет мгновенный при запуске запроса например из девелопера
нажал выполнить, девелопер отвалился от базы :)))

а в алерте я не нашел цитат на этот момент :(
24.09.2014 23:18
Troll
 
SQL Plus тоже вылетает?
25.09.2014 08:54
Mr_Vito
 
sqlplus тоже вылетал, сегодня перестало, добиться того же эффекта не могу
вроде практически ничего не делал
единственное, это вечером статистику убил через
DBMS_STATS.DELETE_SCHEMA_STATS(ownname=>'SUPERMAG');
и запустил сбор
DBMS_STATS.gather_schema_stats(ownname=>'SUPERMAG', Estimate_Percent => 100, cascade=> TRUE);
но сбор ночью вылетел с той же ошибкой:
ERROR at line 2:
ORA-03113: end-of-file on communication channel
в алерте опять пусто
25.09.2014 08:56
OlegON
 
Если в алерте пусто, то проблема на клиенте, либо кто-то дисконнектит сессию.
25.09.2014 11:39
student
 
сейчас с ораклом дела практически не имею - просто у меня ранее было подобное на тяжелых запросах - коннект к ораклу был через одбс - отваливало по таймауту соединения - лечил установкой в реестре параметра ConnectionTimeout в ноль - не разрывать коннект до окончания выполнения

также - из загашников :) - нытырил пока свою проблемау не разрешил
==================================================
ORA-03113: end-of-file on communication channel
Cause: The connection between Client and Server process was broken. It may also happen if the external agent extproc crashes for some reason.
Action: There was a communication error that requires further investigation. First, check for network problems and review the SQL*Net setup.
Also, look in the alert.log file for any errors. Finally, test to see whether the server process is dead and whether a trace file was generated
at failure time. There may be some system calls in the .NET function which might terminate the process. Remove such calls.
==================================================
На самом деле 3113 часто (не всегда) является следствием каких-либо багов Oracle, так что вопрос может потребовать более детального исследования вплоть до обращения в техподдержку Oracle.
Ну а alert.log в подобных случаях желательно посмотреть в любом случае

Оказывается одним из способов решения этой проблемы является простое удаление статистики. Именно статистики, а не индексов.
В случае, если это не помогло, ее всегда можно восстановить средствами Оракл
==================================================
Обычно связана с аппаратными сбоями, при этом нередко имеет
динамический характер: то есть, то нет. При возникновении нужно
искать соответствующий trace file и анализировать его.
Посмотрите хватает операционке памяти и т. п.
Возможно ваш запрос съел большую часть ресурсов и оракл не поймал их.
Скорей всего это вопрос к админам (пусть ставят патчи).

6.2.34 ORA-03113: End-of-File on Communication Channel
Cause: This error can occur under several circumstances and indicates that the
Oracle server process has failed.

Action: There is one case that may be encountered during an upgrade that has a
known solution. When running on certain 64-bit platforms, the RDBMS bug 2614728
may cause the defnavpg.sql script to fail. If you are on a 64-bit platform, check
your upgrade log file to see if the problem is encountered in the following
context:

#-- Beginning inner script: wwd/defnavpg
# Create seeded navigation pages for page groups declare
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
If it is in this context, apply the patch for bug 2614728 for your platform.
Restore from your backup, and run the upgrade again.
==================================================

упс, упустил - еще непосредственно установка ODBCTimeout на сам запрос перед выполнением в 0 - тоже где то в реестре есть, но мне так проще было
26.09.2014 09:02
Mr_Vito
 
по идее так и получилось, что после удаления и сбора статистики с нуля, глюк пропал :)
Часовой пояс GMT +3, время: 15:59.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.