ORA-600 [12235]: Oracle process has no purpose in life!
В абсолютном большинстве случаев в ошибках 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] и покончит жизнь самоубийством.