14.04.2007 19:22
OlegON
 
В абсолютном большинстве случаев в ошибках ORA-600 нет ничего смешного. Это внутренняя ошибка Oracle, говорящая о том, что разработчики этой СУБД где-то ошиблись и чего-то не учли. Когда сталкиваешься с такой ошибкой, то выбор невелик -- либо смотреть, не выпущен ли патч, закрывающий эту ошибку, либо надо искать обходные пути (что может и не получиться).

На каждую ORA-600 делается запись в alert.log и формируется trace файл, в который пишется дополнительная информация. Примерно такая:

ORA-00600: internal error code, arguments: [xxxx]

Вот в этом первом аргументе в скобках и заключается почти вся необходимая информация. Сама по себе ORA-600 слишком общая ошибка и первый аргумент указывает на то, в чём именно суть ошибки. Точнее, он позволяет найти описание ошибки на metalink'е. Если ещё точнее, то это можно сделать с помощью Note:153788.1.

Так вот, оказывается существует ORA-600 [12235], которую на metalink'е расшифровывают так: "Oracle process has no purpose in life !".
Когда я впервые увидел описание, то мне сначала даже показалось, что это своеобразное "easter egg".

Однако, когда я почитал описание ошибки, то ситуация прояснилась. Действительно, ошибка возникает, когда Oracle процесс соображает, что он непонятно для чего запущен, т.е. у него нет смысла в жизни! В таком случае он генерит ORA-600 [12235] и завершается.

Но в какой же ситуации на него может снизойти такое понимание? Оказывается, в очень простой. Достаточно просто набрать oracle в командной строке. Процесс запустится, но сразу поймет, что жить/работать ему не с чем и не для чего. После чего он сгенерит ORA-600 [12235] и покончит жизнь самоубийством.

Часовой пояс GMT +3, время: 05:11.

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