Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.09.13;
Скачать: CL | DM;

Вниз

Oracle и путь к клиентскому приложению   Найти похожие ветки 

 
Palladin ©   (2008-11-12 14:52) [0]

После двух суток борьбы со сверхъестественной ситуацией, когда одни приложения и сервисы прекрасно поднимали соединения, а другой отдельно взятый сервис не мог, возвещая об ошибке (12154: Невозможно разрешить заданный идентификатор соединения), - выяснилось, что оракловский клиент не может вставить CID (грубо говоря полное имя файла приложения) в параметры соединения, по причине присутствия в нем круглых скобок.

Клиент оракла: OraClient10g_Home1
Доступ через ADO, строка соединения:
Provider=OraOLEDB.Oracle;Data Source=ASMPBASE;User Id=AAB;Password=123456;

Победить победил конечно. :) Вопрос просто возник к более опытным, это именно в этой ситуации такой нюанс или вообще любые приложения не смогут работать с подобным путем? :)


 
Игорь Шевченко ©   (2008-11-13 11:10) [1]


> (12154: Невозможно разрешить заданный идентификатор соединения),
>  


А что говорит трассировка SQL*Net (если в %ORACLE_HOME%\NETWORK\ADMIN\SQLNET.ORA добавить строчки:
TRACE_LEVEL_CLIENT=16
TRACE_FILE_CLIENT=C:\sqlnet.trc
)

?

Обычно эта ошибка с именем файла не связана, как мне представляется


 
Palladin ©   (2008-11-13 11:54) [2]

Мне тоже так представлялось. Грешил на отсутствие/содержимое tnsnav.ora.

Трассировка умирает после Inserting CID

(540) [13-НОЯ-2008 13:03:17:765] --- TRACE CONFIGURATION INFORMATION FOLLOWS ---
(540) [13-НОЯ-2008 13:03:17:765] New trace stream is c:\oracle\logs\trace\timurrv_540_1.trc
(540) [13-НОЯ-2008 13:03:17:765] New trace level is 6
(540) [13-НОЯ-2008 13:03:17:765] --- TRACE CONFIGURATION INFORMATION ENDS ---
(540) [13-НОЯ-2008 13:03:17:765] --- PARAMETER SOURCE INFORMATION FOLLOWS ---
(540) [13-НОЯ-2008 13:03:17:765] Attempted load of system pfile source C:\oracle\product\10.2.0\client_1\network\admin\sqlnet.ora
(540) [13-НОЯ-2008 13:03:17:765] Parameter source loaded successfully
(540) [13-НОЯ-2008 13:03:17:765]
(540) [13-НОЯ-2008 13:03:17:765] Attempted load of local pfile source C:\WINDOWS\system32\sqlnet.ora
(540) [13-НОЯ-2008 13:03:17:765] Parameter source was not loaded
(540) [13-НОЯ-2008 13:03:17:765]
(540) [13-НОЯ-2008 13:03:17:765]  -> PARAMETER TABLE LOAD RESULTS FOLLOW <-
(540) [13-НОЯ-2008 13:03:17:765] Successful parameter table load
(540) [13-НОЯ-2008 13:03:17:765]  -> PARAMETER TABLE HAS THE FOLLOWING CONTENTS <-
(540) [13-НОЯ-2008 13:03:17:765]   TRACE_LEVEL_CLIENT = ADMIN
(540) [13-НОЯ-2008 13:03:17:765]   TRACE_FILE_CLIENT = timurrv
(540) [13-НОЯ-2008 13:03:17:765]   SQLNET.AUTHENTICATION_SERVICES = (NTS)
(540) [13-НОЯ-2008 13:03:17:765]   LOG_DIRECTORY_CLIENT = c:\oracle\logs\logs
(540) [13-НОЯ-2008 13:03:17:765]   TRACE_DIRECTORY_CLIENT = c:\oracle\logs\trace
(540) [13-НОЯ-2008 13:03:17:765]   LOG_FILE_CLIENT = cli.txt
(540) [13-НОЯ-2008 13:03:17:765] --- PARAMETER SOURCE INFORMATION ENDS ---
(540) [13-НОЯ-2008 13:03:17:765] --- LOG CONFIGURATION INFORMATION FOLLOWS ---
(540) [13-НОЯ-2008 13:03:17:765] Log stream will be "c:\oracle\logs\logs\cli.txt.log"
(540) [13-НОЯ-2008 13:03:17:765] Log stream validation not requested
(540) [13-НОЯ-2008 13:03:17:765] --- LOG CONFIGURATION INFORMATION ENDS ---

(540) [13-НОЯ-2008 13:03:17:765] nlstdipi: entry
(540) [13-НОЯ-2008 13:03:17:765] nlstdipi: exit
(540) [13-НОЯ-2008 13:03:17:765] nigini: entry
(540) [13-НОЯ-2008 13:03:17:765] nigini: Count in the NL global area is now 1
(540) [13-НОЯ-2008 13:03:17:765] nigini: Count in NI global area now: 1
(540) [13-НОЯ-2008 13:03:17:765] nrigbi: entry
(540) [13-НОЯ-2008 13:03:17:765] nrigbni: entry
(540) [13-НОЯ-2008 13:03:17:765] nrigbni: Unable to get data from navigation file tnsnav.ora
(540) [13-НОЯ-2008 13:03:17:765] nrigbni: exit
(540) [13-НОЯ-2008 13:03:17:765] nrigbi: exit
(540) [13-НОЯ-2008 13:03:17:765] nigini: exit
(540) [13-НОЯ-2008 13:03:17:765] niqname: Hst is already an NVstring.
(540) [13-НОЯ-2008 13:03:17:765] niqname: Inserting CID.
(540) [13-НОЯ-2008 13:03:17:765] nigtrm: Count in the NI global area is now 0
(540) [13-НОЯ-2008 13:03:17:765] nrigbd: entry
(540) [13-НОЯ-2008 13:03:17:765] nrigbd: exit
(540) [13-НОЯ-2008 13:03:17:765] nigtrm: Count in the NL global area is now 0
(540) [13-НОЯ-2008 13:03:17:765] nlse_term_audit: entry
(540) [13-НОЯ-2008 13:03:17:765] nlse_term_audit: exit


Если запускать с "нормального" пути, то полет нормальный. На мысль недопустимости скобок натолкнула строчка в файле с успешной трассировкой, после niqname: Inserting CID.

(668) [12-НОЯ-2008 16:56:42:343] niqname: Inserting CID.
(668) [12-НОЯ-2008 16:56:42:343] niotns: entry
(668) [12-НОЯ-2008 16:56:42:343] niotns: Not trying to enable dead connection detection.
(668) [12-НОЯ-2008 16:56:42:343] niotns: Calling address: (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.254)(PORT=1521 )))(CONNECT_DATA=(SID=asmpbase)(CID=(PROGRAM=C:\gtns\g3ns.exe)(HOST=MICROSOF-E18456)(USER=SYSTEM))))


 
Игорь Шевченко ©   (2008-11-13 12:55) [3]

ради интереса запустил приложение с полным именем "D:\argoNext.Demo\BIN(1)\argonext.exe" и с "D:\argoNext.Demo\BIN(1)\argonext(1).exe" - с ораклом соединяется.

в файле трассировки написано следующее:
[13-NOV-2008 12:50:27:625] niotns: Calling address: (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.16)(PORT=1521) ))(CONNECT_DATA=(Service_Name=XE)(SERVER=dedicated)(CID=(PROGRAM=D:\argoNext.Dem o\BIN?1?\ArgoNext.exe)(HOST=host)(USER=user))))
для первого случая

и

[13-NOV-2008 12:52:58:265] niotns: Calling address: (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.16)(PORT=1521) ))(CONNECT_DATA=(Service_Name=XE)(SERVER=dedicated)(CID=(PROGRAM=D:\argoNext.Dem o\BIN?1?\ArgoNext?1?.exe)(HOST=host)(USER=user))))

Оракл 10.2.0.3


 
Palladin ©   (2008-11-13 13:15) [4]

а можешь глянуть версию Oracle Provider for OLE DB ?
у меня 10.2.0.1.0


 
Palladin ©   (2008-11-13 13:18) [5]

хотя подозреваю, что все, что 10.2.0.1, грешит подвохами... пока в интернете рылся, не раз натыкался на это утверждение, с настоятельными советами обновления до 10.2.0.2


 
Игорь Шевченко ©   (2008-11-13 14:28) [6]


> а можешь глянуть версию Oracle Provider for OLE DB ?


Установлен 10.2.0.3, но я им не пользуюсь, я по сути сразу через OCI


 
Palladin ©   (2008-11-13 14:43) [7]

"Картина ясная!" (С) Гендальф в исполнении Гоблина
будем обновиться...


 
Игорь Шевченко ©   (2008-11-13 14:47) [8]

На клиенте 10.2.0.1 твоя ситуация воспроизводится - либо патчись до 10.2.0.2(3), либо убирай скобки из полного пути к файлу (что скобки в имени файла, что скобки в пути дают один и тот же эффект)


 
Palladin ©   (2008-11-13 14:54) [9]

Я с ораклом знаком с прошлого воскресенья только :) откуда"ж я знал :)


> либо убирай скобки из полного пути к файлу (что скобки в
> имени файла, что скобки в пути дают один и тот же эффект)

та оно и понятно... пока убрал, но надо обновлятся... чувствую, что не только "фичи" не только "скобочные" могут встретиться...


 
Petr V. Abramov ©   (2008-11-14 00:02) [10]


> Доступ через ADO, строка соединения:
> Provider=OraOLEDB.Oracle;Data Source=ASMPBASE;User Id=AAB;
> Password=123456;

более опытные к ораклу коннектятся через DOA под Delphi и через oranet под VS
P.S. на всяк, не по сабжу: если несколько инсталляций оракла на машине, как минимум в path путь к /bin желаемой д.б быть первым :)


 
ANB   (2008-11-19 17:49) [11]


> P.S. на всяк, не по сабжу: если несколько инсталляций оракла
> на машине, как минимум в path путь к /bin желаемой д.б быть
> первым :)

Или давать возможность явно указывать хом. Хотя тоже не всегда помогает.

Автору - лучше перейти на ODAC. Или хотя бы DOA.


 
Palladin ©   (2008-11-19 18:06) [12]


> Автору - лучше перейти на ODAC. Или хотя бы DOA.

в чем прелести? избавит от ошибки скобок в пути приложения для клиента 10.2.0.1?


 
Palladin ©   (2008-11-19 18:11) [13]

Нет, я, конечно, все понимаю, любимы плюшевые мишки, в обнимку с которыми лучше засыпается, любимые схемы доступа к Ораклу. Но это должно быть хоть как то обосновано. То бишь, оплеваны другие плюшевые игрушки и другие схемы доступа. Пока я не вижу препятствий для использования ADO в качестве доступа к БД. Ни один запрос не выходит за рамки SQL92/99 без каких либо акцентов на какой то конкретный диалект.


 
ANB   (2008-11-19 19:19) [14]


> Ни один запрос не выходит за рамки SQL92/99 без каких либо
> акцентов на какой то конкретный диалект.

По этому поводу уже спорили :)
Давай через полгодика к этому вопросу вернемся. :)


 
Palladin ©   (2008-11-19 19:24) [15]

конечно помню, спорили (там конечно более жесткая тема затрагивалась), но почему через столько времени? :)


 
ANB   (2008-11-20 10:28) [16]


> но почему через столько времени? :)

К тому времени уж точно оценишь фичи ораклового диалекта SQL. И удобства pl/sql.
И сам уже решишь - стоит универсальность того, чтобы от них отказываться.

Добро пожаловать в мир Оракла. :)



Страницы: 1 вся ветка

Текущий архив: 2009.09.13;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.013 c
2-1247126875
b/@.
2009-07-09 12:07
2009.09.13
Можно ли назначить ListBox.Items без копирования ?


1-1214989005
dreamse
2008-07-02 12:56
2009.09.13
Вопрос по работе потока (Thead)


15-1247439968
Bruth
2009-07-13 03:06
2009.09.13
Исходник резалки баннеров


2-1247150550
Elephon
2009-07-09 18:42
2009.09.13
Загрузить в combobox имена папок из указанной директории


15-1247493335
Цукор5
2009-07-13 17:55
2009.09.13
Win2003 + запуск программы