Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Создание гетерогенного сервиса с использованием ODBC в Oracle, нужна помощь. (FAQ читал)  [new]
dimm22
Member

Откуда:
Сообщений: 94
Прошел пошагово по инструкции из ФАКа https://www.sql.ru/faq/faq_topic.aspx?fid=163
Разница только в том, что вместо Excell у меня MS Sql.
Платформа Win2003Srv +Oracle 10.1.0.
На тестовом сервере все прошло отлично. А на боевом - облом.

Прохожу этап проверки tnsping'ом - все отлично. Создаю линк, пытаюсь запросить данные -

SQL> select table_name, column_name from dba_tab_columns@tomssql;
select table_name, column_name from dba_tab_columns@tomssql
*
ERROR at line 1:
ORA-28545: error diagnosed by Net8 when connecting to an agent
NCRO: Failed to make RSLV connection
ORA-02063: preceding 2 lines from TOMSSQL

В логе листнера наблюдаю следующую ошибку:

29-FEB-2008 07:59:00 * (CONNECT_DATA=(SID=tomssql)(CID=(PROGRAM=)(HOST=***\***)(USER=***\***))) * (ADDRESS=(PROTOCOL=tcp)(HOST=my ip)(PORT=2275)) * establish * tomssql * 12500
TNS-12500: TNS:listener failed to start a dedicated server process
 TNS-12560: TNS:protocol adapter error

Почему?

Удалось нагуглить http://www.minisoft.com/pages/middleware/ODBC_UNIX/odbc_oracle_faq.htm
Там в частности говориться:


Execution of the Oracle application "hsodbc" should return a banner. If you receive an error message, that the application cannot be run or has a problem with a required library, review your Oracle installation to ensure all components are correctly installed.

$ hsodbc


Oracle Corporation --- FRIDAY SEP 26 2003 08:26:47.268

Heterogeneous Agent based on the following module(s):
- External Procedure Module
- Transaction Module
- SQL/PLSQL Module

If a library is missing you may see the following

SQL> select * from customer@a;
select * from customer@a
*
ERROR at line 1:
ORA-28509: unable to establish a connection to non-Oracle system
ORA-02063: preceding line from A

Your listener.log file will show:

26-SEP-2003 08:31:13 * (CONNECT_DATA=(SID=mscard)) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.23.118)(PORT=49349)) * establish * mscard * 12500
TNS-12500: TNS:listener failed to start a dedicated server process
TNS-12547: TNS:lost contact
TNS-12560: TNS:protocol adapter error
TNS-00517: Lost contact
HPUX Error: 32: Broken pipe

Не мое? Как удостовериться в нормальной работе hsodbc?

select view_name from dba_views  where owner='SYS' and view_name='HS_FDS_CLASS';
выдает

VIEW_NAME
------------------------------
HS_FDS_CLASS
29 фев 08, 08:25    [5352607]     Ответить | Цитировать Сообщить модератору
 Re: Создание гетерогенного сервиса с использованием ODBC в Oracle, нужна помощь. (FAQ читал)  [new]
PaulEr
Member

Откуда:
Сообщений: 3794
Если нормально всё работает, то и выбирать должен этот источник из таблиц MS_SQL. Можно сделать просто выборку
select * from dual@ms_sql
29 фев 08, 09:13    [5352697]     Ответить | Цитировать Сообщить модератору
 Re: Создание гетерогенного сервиса с использованием ODBC в Oracle, нужна помощь. (FAQ читал)  [new]
PaulEr
Member

Откуда:
Сообщений: 3794
Покажите listener.ora и tnsnames.ora, initMS_SQL.ora из hs.
29 фев 08, 09:20    [5352719]     Ответить | Цитировать Сообщить модератору
 Re: Создание гетерогенного сервиса с использованием ODBC в Oracle, нужна помощь. (FAQ читал)  [new]
dimm22
Member

Откуда:
Сообщений: 94
# tnsnames.ora Network Configuration File: e:\Oracle\product\10.1.0\Client_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

tomssql = 
 (DESCRIPTION =
   (ADDRESS_LIST =  
     (ADDRESS = (PROTOCOL = TCP)(HOST = myip)(PORT = 1521))) 
        (CONNECT_DATA =(SID = tomssql)
  )   
 (HS = OK)  
 )

sid_name =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = myip)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = sid_name)
    )
  )


# sqlnet.ora Network Configuration File: e:\Oracle\product\10.1.0\Client_1\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.

SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES)

initTOMSSQL.ora
HS_FDS_CONNECT_INFO=tomssql

select * from dual@TOMSSQL
Минуту думает, потом
ORA-28545: error diagnosed by Net8 when connecting to an agent
NCRO: Failed to make RSLV connection
ORA-02063: preceding 2 lines from TOMSSQL
29 фев 08, 09:48    [5352811]     Ответить | Цитировать Сообщить модератору
 Re: Создание гетерогенного сервиса с использованием ODBC в Oracle, нужна помощь. (FAQ читал)  [new]
dimm22
Member

Откуда:
Сообщений: 94
PaulEr
Если нормально всё работает

tnsping tomssql проходит удачно.
29 фев 08, 09:50    [5352822]     Ответить | Цитировать Сообщить модератору
 Re: Создание гетерогенного сервиса с использованием ODBC в Oracle, нужна помощь. (FAQ чита  [new]
oleg_dov
Member

Откуда:
Сообщений: 188
А где лиснера конфиг?
Я конечно могу ошибаться, но я вот так настраивал:
tnsnames.ora
........
WORKLSNR =
  (ADDRESS = (PROTOCOL = TCP)(HOST = work)(PORT = 1521))


HS_DB  =
  (DESCRIPTION=
    (ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))
    (CONNECT_DATA=(SID=HS_DB))
    (HS=OK)
  ) 
listener.ora
WORKLSNR =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = work)(PORT = 1521))
      )
    )
  )


SID_LIST_WORKLSNR =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = HS_DB)
      (ORACLE_HOME = C:\oracle)
      (PROGRAM = hsodbc)
    )
.....
 )

initHS_DB.ora
HS_FDS_CONNECT_INFO = HS_DB
HS_FDS_TRACE_LEVEL = 0

HS_FDS_TRACE_FILE_NAME = "C:\\oracle\\hs\\admin\\HS_DB.trc"
HS_LANGUAGE = RUSSIAN_CIS.CL8MSWIN1251

P.S. все это дело под виндой настроено и работает
29 фев 08, 11:02    [5353259]     Ответить | Цитировать Сообщить модератору
 Re: Создание гетерогенного сервиса с использованием ODBC в Oracle, нужна помощь. (FAQ чита  [new]
oleg_dov
Member

Откуда:
Сообщений: 188
Забыл сказать - рестарт лиснеров сделали?
А что говрит
lsnrctl status
?
29 фев 08, 11:07    [5353319]     Ответить | Цитировать Сообщить модератору
 Re: Создание гетерогенного сервиса с использованием ODBC в Oracle, нужна помощь. (FAQ читал)  [new]
PaulEr
Member

Откуда:
Сообщений: 3794
Погуглите, на форуме Oracle есть эта проблема, на других сайтах тоже.
29 фев 08, 11:44    [5353624]     Ответить | Цитировать Сообщить модератору
 Re: Создание гетерогенного сервиса с использованием ODBC в Oracle, нужна помощь. (FAQ читал)  [new]
PaulEr
Member

Откуда:
Сообщений: 3794
А MS_SQL & Oracle локально на одной машине стоят ?
29 фев 08, 11:45    [5353638]     Ответить | Цитировать Сообщить модератору
 Re: Создание гетерогенного сервиса с использованием ODBC в Oracle, нужна помощь. (FAQ чита  [new]
Non-Grata
Member

Откуда:
Сообщений: 193
Попробуйте сделать

SQLNET.AUTHENTICATION_SERVICES= (NTS, NONE)

или просто NONE
29 фев 08, 12:09    [5353877]     Ответить | Цитировать Сообщить модератору
 Re: Создание гетерогенного сервиса с использованием ODBC в Oracle, нужна помощь. (FAQ читал)  [new]
dimm22
Member

Откуда:
Сообщений: 94
PaulEr
А MS_SQL & Oracle локально на одной машине стоят ?

Уже да :) Чтобы возможные грабли обойти.
На тестовом же вчера отработал сначально связь с MS SQL на той же машине, потом с удаленной.

oleg_dov
Забыл сказать - рестарт лиснеров сделали?

Обязательно. И службу перезапускал и lsnrctl reload делал. Уже задергал его (листнер) бедного.

#listener.ora Network Configuration File: e:\oracle\product\10.1.0\Db_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = mysid)
      (ORACLE_HOME = e:\oracle\product\10.1.0\Db_1)
      (SID_NAME = mysid)
    )
    (SID_DESC =
      (PROGRAM = hsodbc)
      (ORACLE_HOME = e:\oracle\product\10.1.0\Db_1)
      (SID_NAME = tomssql)
    )
    (SID_DESC =
      (PROGRAM = extproc)
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = e:\oracle\product\10.1.0\Db_1)
    )
  )

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521))
  )

TRACE_LEVEL_LISTENER = USER

Возьму, пожалуй, пока паузу на погуглить.
29 фев 08, 12:09    [5353882]     Ответить | Цитировать Сообщить модератору
 Re: Создание гетерогенного сервиса с использованием ODBC в Oracle, нужна помощь. (FAQ чита  [new]
oleg_dov
Member

Откуда:
Сообщений: 188
А еще по мелочам вопросы:
1. ODBC настроен корректно (аутентификация в нем) и тест при настройке прошел
2. имя ODBC коннекта совпадает с указанными в конфигах
3. ODBC source системный? а то может он не видится для пользователя под которым оракл работает
29 фев 08, 13:23    [5354550]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить