|
Форум
|
Сергей Цветков |
17.08.05, 16:56 |
|
Не находится RCO setting |
|
Установлен RCO на Linux SuSe, Oracle 10g.
Создаю настройку TEST, выполняю скрипт, который создает индекс:
declare SetID pls_integer := 3; SetName varchar2(30):='TEST'; Tbl varchar2(30):='PROPERTIES'; TxCol varchar2(30):='TMP'; Own varchar2(30):='MAK'; begin insert into ctxsys.rco_settings (SettingID,SettingName,Owner,TableName,KeyName,TextName,DocFormat,UsingRcoFilter,DocCodePage,FuzzyStatus,ThemeStatus) values (3,lower(SetName),Own,Tbl,rco_context.GetPKCol(Own,Tbl),TxCol,'TEXT_or_HTML','N','CL8MSWIN1251','EMPTY','EMPTY'); commit; execute immediate 'create index '||SetName||' on '||Tbl||'('||TxCol||') indextype is ctxsys.context'; end; /
Вроде бы все нормально, настройка сохраняется и индекс создается - работает обычный поиск Oracle Text (where contains...)
Но при попытке выполнить какие-то функции с данной настройкой (TEST) получается такая ошибка:
begin rco_context.FuzzyCreateIndex('TEST'); end; ORA-20110: RCO_CONTEXT.GetSettingID: Given RCO Setting (context index) 'TEST'-'mak.test' does not exist ORA-06512: на "CTXSYS.RCO_CONTEXT", line 169 ORA-06512: на "CTXSYS.RCO_CONTEXT", line 208 ORA-01403: данных не найдено ORA-06512: на "CTXSYS.RCO_CONTEXT", line 4064 ORA-06512: на line 2
Пользователь тот. Скрипт, создающий индекс выполнялся даже в той же сессии. Название настройки не важно (пробовалось и не TEST).
Спустя некоторое время идеи кончились. Что может быть не так? |
|
|
Алексей Дмитровский |
17.08.05, 17:04 |
|
re: Не находится RCO setting |
|
Добрый день, Сергей!
Попробуйте задать имя настройки lower-case |
|
|
Сергей Цветков |
17.08.05, 18:33 |
|
re: re: Не находится RCO setting |
|
>Добрый день, Сергей! > >Попробуйте задать имя настройки lower-case
Спасибо, помогло. Хотя в нижний регистр пришлось опустить не только имя настройки, а и имена таблицы, столбца и пользователя.
Правда, теперь получается такая ошибка:
ORA-28595: Агент Extproc: неверный путь к DLL ORA-06512: на "CTXSYS.RCO_CONTEXT", line 25 ORA-06512: на "CTXSYS.RCO_CONTEXT", line 4096 ORA-06512: на line 2
rco_lsnr вроде бы запущен нормально. LD_LIBRARY_PATH тоже содержит путь к библиотеке. |
|
|
Алексей Дмитровский |
18.08.05, 17:12 |
|
re: re: re: Не находится RCO setting |
|
Это ошибка конфигурации вызова внешних процедур Oracle. Если база 9.*, то была ли задана переменная EXTPROC_DLLS в секции (SID_DESC = (PROGRAM = extproc) ... (ENVS = "EXTPROC_DLLS=ANY") ...
файла listener.ora? Проверьте верность записи пути библиотеки RequestRelay.dll / libRequestRelay.so в базе данных. |
|
|
Сергей Цветков |
18.08.05, 17:50 |
|
re: re: re: re: Не находится RCO setting |
|
>Это ошибка конфигурации вызова внешних процедур Oracle. >Если база 9.*, то была ли >задана переменная EXTPROC_DLLS в секции >(SID_DESC = > (PROGRAM = extproc) > ... > (ENVS = "EXTPROC_DLLS=ANY") > ... > >файла listener.ora? >Проверьте верность записи пути библиотеки >RequestRelay.dll / libRequestRelay.so >в базе данных.
Спасибо, почти помогло. Путь в БД правильный. А вот вместо ANY в кофиге листенера действительно стоял зачем-то путь к библиотеке.
Правда, теперь, как и полагается возникла другая ошибка.
На любые попытки выполнить функции пакета rco_context выдает таймаут:
ORA-20100: RCO_CONTEXT.get_normal_form failed - RequestRelay: request timed out ORA-06512: на "CTXSYS.RCO_CONTEXT", line 169 ORA-06512: на "CTXSYS.RCO_CONTEXT", line 295 ORA-06512: на line 1
rco_lsnr запущен. Причем, в логах видно, что библиотека соединяется с rco_lsnr, принимает от него хэндшейк и отправляет запрос. И все. Вот из лога библиотеки:
DEBUG: 17:37:22 18.08.05 RequestRelay: received mess MT_HANDSHAKE: Addr (pid)=14472, clnt_rqID=2, rqID=5, SegID=0, BuffID=4, pidExec=13975 DEBUG: 17:37:22 18.08.05 GetSharedMemory: shm segment attached for path ('/opt/rco/'-4), full size 65544, address 412ef000 DEBUG: 17:37:22 18.08.05 CSharedMemory::Open: sm for path ('/opt/rco/'-4) gotten, size=65536, handle=278004 DEBUG: 17:37:22 18.08.05 RequestRelay: sent mess MT_EXEC: Addr (pidExec)=13975, rqID=5, pidClnt=14472, rqType=1, rqSize=26, SegID=0, BuffID=4 INFO: 17:37:52 18.08.05 alarm_hdl: signal SIGALRM=14 catched
Все заканчивается через 30 секунд таймаутом.
Со стороны листенера rco все еще проще: DEBUG: 17:37:22 18.08.05 LsnrRun: sent mess MT_HANDSHAKE: Addr (pidClnt) = 14472, clnt_rqID=2, rqID=5, SegID=0, BuffID=4, pidExec=13975 INFO: 17:37:22 18.08.05 Waiting for request ... DEBUG: 17:37:52 18.08.05 LsnrRun: got mess MT_DONE_CLNT: Addr (pidClnt) = 14472, rqID=-5
|
|
|
Алексей Дмитровский |
18.08.05, 17:55 |
|
re: re: re: re: re: Не находится RCO setting |
|
Есть ли в $RCO_HOME/lib файлы rco_exec_*.err? Судя по логам под-процессы rco_exec запускаются, т.е. эти файлы должны быть. |
|
|
Сергей Цветков |
18.08.05, 18:00 |
|
re: re: re: re: re: re: Не находится RCO setting |
|
>Есть ли в $RCO_HOME/lib файлы rco_exec_*.err? >Судя по логам под-процессы rco_exec запускаются, т.е. эти файлы должны быть.
Нет, этих файлов нет. Есть только файлы $RCO_HOME/log/RequestRelay_nnnnn.err - из одного я выдержку и привел. |
|
|
Алексей Дмитровский |
18.08.05, 18:01 |
|
re: re: re: re: re: re: re: Не находится RCO setting |
|
Виноват, в $RCO_HOME/log, конечно. |
|
|
Сергей Цветков |
18.08.05, 18:07 |
|
re: re: re: re: re: re: re: re: Не находится RCO setting |
|
>Виноват, в $RCO_HOME/log, конечно.
Нет, и в каталоге log файлов rco_exec*.err нет. Только RequestRelay*.err и rco_lsnr*.err |
|
|
Алексей Дмитровский |
18.08.05, 18:28 |
|
re: re: re: re: re: re: re: re: re: Не находится RCO setting |
|
Попробуйте в command prompt'е запустить rco_exec "отдельно": $ cd $RCO_HOME/bin $ ./rco_exec 1 и посмотреть ошибки, если таковые появятся. |
|
|
Сергей Цветков |
18.08.05, 18:50 |
|
re: re: re: re: re: re: re: re: re: re: Не находится RCO setting |
|
>Попробуйте в command prompt'е запустить rco_exec "отдельно": >$ cd $RCO_HOME/bin >$ ./rco_exec 1 >и посмотреть ошибки, если таковые появятся.
Ошибка появилась, причем довольно интересная - оказывается, rco_exec не находил библиотеки libclntsh.so.8.0. Поскольку в наличии имелась лишь libclntsh.so.10.1 (и симлинк на просто libclntsh.so), сделал симлинк с нужным именем на библиотеку "десятки".
После этого rco_exec стала запускаться из командной строки, судя по логам нормально. если ее запустить просто с ID конфигурации в качестве параметра, то запускается и останавливается на Waiting for request.
Если же делать запрос БД, то rco_exec, похоже, просто не запускается :( |
|
|
Алексей Дмитровский |
19.08.05, 11:16 |
|
re: re: re: re: re: re: re: re: re: re: re: Не находится RCO setting |
|
Включает ли сейчас LD_LIBRARY_PATH путь $ORACLE_HOME/lib в окружении rco_lsnr'а? |
|
|
Сергей Цветков |
19.08.05, 12:08 |
|
re: re: re: re: re: re: re: re: re: re: re: re: Не находится RCO setting |
|
>Включает ли сейчас LD_LIBRARY_PATH путь $ORACLE_HOME/lib в окружении rco_lsnr'а?
Да. rco_lsnr запущен из этой сессии: echo $LD_LIBRARY_PATH /opt/oracle/OraHome_1/lib:/opt/rco/lib |
|
|
Алексей Дмитровский |
19.08.05, 12:21 |
|
re: re: re: re: re: re: re: re: re: re: re: re: re: Не находится RCO setting |
|
Итак: 1. Существует линк libclntsh.so.8.0->libclntsh.so.10.1 2. В отдельной сессии rco_exec запускается 3. В качестве порождённого процесса rco_exec не запускается, причём отсутствуют лог-файлы $RCO_HOME/log/rco_exec_* Всё правильно? |
|
|
Сергей Цветков |
19.08.05, 12:30 |
|
re: re: re: re: re: re: re: re: re: re: re: re: re: re: Не находится RCO setting |
|
>Итак: >1. Существует линк > libclntsh.so.8.0->libclntsh.so.10.1 >2. В отдельной сессии rco_exec запускается >3. В качестве порождённого процесса rco_exec не запускается, причём отсутствуют лог-файлы $RCO_HOME/log/rco_exec_*
>Всё правильно?
Да, все именно так. Могу прислать на какой-нибудь адрес полные файлы .err при запуске из командной строки и при запросе из БД, если это поможет делу. |
|
|
Алексей Дмитровский |
19.08.05, 12:42 |
|
re: re: re: re: re: re: re: re: re: re: re: re: re: re: re: Не находится RCO setting |
|
Ещё одно уточнение. Нет ли файлов rco_exec_*.err где-либо ещё - (find / ... )? |
|
|
Сергей Цветков |
19.08.05, 12:54 |
|
re: re: re: re: re: re: re: re: re: re: re: re: re: re: re: re: Не находится RCO setting |
|
>Ещё одно уточнение. >Нет ли файлов rco_exec_*.err где-либо ещё - (find / ... )?
Нет, нигде такие файлы не находятся. |
|
|
Алексей Дмитровский |
19.08.05, 13:15 |
|
re: re: re: re: re: re: re: re: re: re: re: re: re: re: re: re: re: Не находится RCO setting |
|
Хорошо, я попытаюсь воспроизвести. Какая версия OS, БД? |
|
|
Сергей Цветков |
19.08.05, 13:52 |
|
re: re: re: re: re: re: re: re: re: re: re: re: re: re: re: re: re: re: Не находится RCO setting |
|
>Хорошо, я попытаюсь воспроизвести. >Какая версия OS, БД?
OS - SuSe 9.3 Ядро: Linux SuSe 2.6.8-24-smp #1 SMP Wed Oct 6 09:16:23 UTC 2004 i686 i686 i386 GNU/Linux
БД - Oracle 10.1.0.3g |
|
|
Сергей Цветков |
19.08.05, 13:53 |
|
re: re: re: re: re: re: re: re: re: re: re: re: re: re: re: re: re: re: re: Не находится RCO setting |
|
>OS - SuSe 9.3 >Ядро: >Linux SuSe 2.6.8-24-smp #1 SMP Wed Oct 6 09:16:23 UTC 2004 i686 i686 i386 GNU/Linux
Пардон, это SuSe 9.2, а не 9.3. |
|
|
|
|
|
| |