При вызове процедуры: declare begin rco_context.FuzzyCreateindex('setting'); end; Возникает ошибка: ORA-20100: RCO_CONTEXT.FuzzyCreateIndex failed extVC2Request: RequestRelay initialization failed - check the process 'rco_lsnr' is running ORA-06512: на "CTXSYS.RCO_CONTEXT", line 815 ORA-06512: на "CTXSYS.RCO_CONTEXT", line 5163
При этом в $RCO_HOME/log не создается никаких RequestRelay_*.err файлов.
Сам процесс rco_lsnr стартует успешно: DEBUG: 15:45:16 2.02.10 rco_lsnr: main: RCO_HOME = '/opt/rco/' INFO: 15:45:16 2.02.10 rco_lsnr:RequestRelayIni: initial parameters got: RCO_TRACE_LEVEL = DEBUG RCO_MAX_SEGS = 5 RCO_SEG_SIZE = 65536 RCO_BUFF_SIZE = 512 RCO_MAX_CLIENTS = 10 RCO_MAX_EXECS = 4 RCO_MAX_SETTINGS = 5 RCO_MAX_EXECS_PER_SET = 2 DEBUG: 15:45:16 2.02.10 CMessageQueue::Create: for path ('/opt/rco/'-1) & key=100033e created mqid=1081344 DEBUG: 15:45:16 2.02.10 CMessageQueue::Create: for path ('/opt/rco/'-2) & key=200033e created mqid=1114113 DEBUG: 15:45:16 2.02.10 CMessageQueue::Create: for path ('/opt/rco/'-3) & key=300033e created mqid=1146882 DEBUG: 15:45:16 2.02.10 CreateSharedMemory: shm segment created for path ('/opt/rco/'-4), full size 65544, attached to address 24753000 DEBUG: 15:45:16 2.02.10 CSharedMemory:Create: Created sm '/opt/rco/', size=65536, handle=0x100002 DEBUG: 15:45:16 2.02.10 CreateSharedMemory: shm segment created for path ('/opt/rco/lib/morphdct.dat'-1), full size 3204554, attached to address 2476a000 DEBUG: 15:45:16 2.02.10 CSharedMemory:Create: Created sm '/opt/rco/lib/morphdct.dat', size=3204546, handle=0x108003 INFO: 15:45:16 2.02.10 Waiting for request ...
Остановка процесса rco_lsnr выполняется с помощью: cat <<EOF | sqlplus ctxsys/oracle11g exec rco_context.stoplist(); exit; EOF При этом сервис успешно останавливается и появляется соответствующий RequestRelay_*.err-файл в /opt/rco/log/
Это было первое, что я проверил. Вопрос, видимо, в том, подключаемся мы напрямую к базе (первый случай) или через listener (второй случай).
[oracle@torino ~]$ sqlplus username/password
SQL*Plus: Release 11.1.0.6.0 - Production on Tue Feb 2 16:44:47 2010
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Connected to: Oracle Database 11g Release 11.1.0.6.0 - 64bit Production
SQL> select rco_context.get_normal_form('президента', 'setting', 30) from dual;
RCO_CONTEXT.GET_NORMAL_FORM('ПРЕЗИДЕНТА','SETTING',30) -------------------------------------------------------------------------------- президент
SQL> Disconnected from Oracle Database 11g Release 11.1.0.6.0 - 64bit Production [oracle@torino ~]$ sqlplus username/password@local
SQL*Plus: Release 11.1.0.6.0 - Production on Tue Feb 2 16:45:03 2010
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Connected to: Oracle Database 11g Release 11.1.0.6.0 - 64bit Production
SQL> select rco_context.get_normal_form('президента', 'setting', 30) from dual; select rco_context.get_normal_form('президента', 'SETTING', 30) from dual * ERROR at line 1: ORA-20100: RCO_CONTEXT.get_normal_form failed - extVC2Request: RequestRelay initialization failed - check the process 'rco_lsnr' is running ORA-06512: at "CTXSYS.RCO_CONTEXT", line 815 ORA-06512: at "CTXSYS.RCO_CONTEXT", line 952 ORA-06512: at line 1
SQL> Disconnected from Oracle Database 11g Release 11.1.0.6.0 - 64bit Production [oracle@torino ~]$ tnsping local
TNS Ping Utility for Linux: Version 11.1.0.6.0 - Production on 02-FEB-2010 16:45:15
Copyright (c) 1997, 2007, Oracle. All rights reserved.
Used parameter files: /opt/oracle/11.1/network/admin/sqlnet.ora
Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl))) OK (0 msec)
Алексей Дмитровский
02.02.10, 18:06
re: RCO_CONTEXT не видит процесс rco_lsnr
Попробуйте перезапустить tns listener. предварительно задав в окружении RCO_HOME.
Да нет, RequestRelay_*.err-логи появлялись только в $RCO_HOME/log/ Т.е. если я локально делал запросы к rco_context, требующие обращения к rco_lsnr, то эти лог-файлы появлялись. При удаленной работе - не видел lsnr и не появлялись логи. В чем было дело - даже не догадываюсь, но перезагрузка linux помогла (скорей всего, было достаточно только oracle перегрузить, но я уж все сразу).