powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / DBLink в Oracle к DB2
21 сообщений из 21, страница 1 из 1
DBLink в Oracle к DB2
    #37037978
NEFed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте

На рабочем месте стоит Oracle XE
На сервере IBM DB2

Нужно в сеансе Oracle
вставить данные из таблицы DB2 в таблицу Oracle.

Не могу настроить Oracle.

Делаю по аналогии

Помогите, плиз
...
Рейтинг: 0 / 0
DBLink в Oracle к DB2
    #37038181
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NEFedЗдравствуйте

На рабочем месте стоит Oracle XE
На сервере IBM DB2

Нужно в сеансе Oracle
вставить данные из таблицы DB2 в таблицу Oracle.

Не могу настроить Oracle.

Делаю по аналогии

Помогите, плиз

Встретил в лесу в лесу волк Красную шапочку, и умер...
Это сказка без подробностей.

Мессир, дьявол кроется в деталях, телепаты знакомые с Oracle встречаются крайне редко.

Попробуйте ответить на следующие вопросы:
1) Какая ОС
2) Сколько продуктов Oracle у Вас установлено на рабочем месте и в каких директориях
(У каждой своя TNS_ADMIN) - директория для файлов конфигурации TNS
3) Файлы конфигурации: listener.ora tnsnames.ora hsinit, команда создания DBLINK (пароли, IP стыдливо прикрыть)
4) Что показывает команда lsnrctl status
5) Проходит ли тест ODBC DSN, и точно ли он определен как system wide DSN
6) команда
Код: plaintext
1.
select count(*)  from all_tables@DB2LINK;
что возвращает?

Короче, опишите что Вы делали, а мы попытаемся найти ошибку.

p.s. Для оформления файлов конфигурации, команд, используйте теги
...
Рейтинг: 0 / 0
DBLink в Oracle к DB2
    #37043157
NEFed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim Lejnin,

1) Какая ОС
На рабочем месте - WinXP Prof, на сервере (mainframe IBM) z/os.

2) Сколько продуктов Oracle у Вас установлено на рабочем месте и в каких директориях
Oracle XE Server: D:\oraclexe\app\oracle\product\10.2.0\server
JDeveloper (не требует установки): D:\JDeveloper

3) Файлы конфигурации: listener.ora tnsnames.ora hsinit, команда создания DBLINK (пароли, IP стыдливо прикрыть)

listener.ora:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\oraclexe\app\oracle\product\ 10 . 2 . 0 \server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\oraclexe\app\oracle\product\ 10 . 2 . 0 \server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = DB2Name)
      (ORACLE_HOME = D:\oraclexe\app\oracle\product\ 10 . 2 . 0 \server)
      (PROGRAM = hsodbc)
    )
  )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
      (ADDRESS = (PROTOCOL = TCP)(HOST = HostLocal)(PORT =  1521 ))
    )
  )
LISTENER =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = HostServer)(PORT =  5036 ))
  )

DEFAULT_SERVICE_LISTENER = (XE)

tnsnames.ora:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = HostLocal)(PORT =  1521 ))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

ORACLR_CONNECTION_DATA = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) 
    ) 
    (CONNECT_DATA = 
      (SID = CLRExtProc) 
      (PRESENTATION = RO) 
    ) 
  ) 

DB2Name =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = HostServer)(PORT =  5036 ))
    )
    (CONNECT_DATA =
      (SID = DB2Name)
    )
    (HS = OK)
  )

initDB2Name.ora:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
# This is a sample agent init file that contains the HS parameters that are
# needed for an ODBC Agent. 

#
# HS init parameters
#
HS_FDS_CONNECT_INFO = DB2Name
HS_FDS_TRACE_LEVEL = OFF


#
# Environment variables required for the non-Oracle system
#
#set <envvar>=<value>

Создание DBLink:
Код: plaintext
create public database link DB2Name connect to DB2Log by "DB2Pas" using 'DB2Name';

4) Что показывает команда lsnrctl status
Код: plaintext
1.
2.
3.
4.
5.
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 30-ДЕК-2010 16:48:06

Copyright (c) 1991, 2005, Oracle.  All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=TCP)(HOST=HostServer)(PORT=5036))
TNS-12569: TNS:packet checksum failure

5) Проходит ли тест ODBC DSN, и точно ли он определен как system wide DSN
Тест проходит.
Специалист сказал: system wide DSN.
В JDeveloper нормальное соединение с DB2.

6) команда
Код: plaintext
select count(*) from all_tables@DB2LINK;
что возвращает?
ORA-28545: error diagnosed by Net8 when connecting to an agent Unable to retrieve text of NETWORK/NCR message 12569 ORA-02063: preceding 2 lines from DB2Name
...
Рейтинг: 0 / 0
DBLink в Oracle к DB2
    #37043211
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
      (ADDRESS = (PROTOCOL = TCP)(HOST = HostLocal)(PORT =  1521 ))
    )
  )
LISTENER =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = HostServer)(PORT =  5036 ))
  )

Убираете помеченную часть, у Вас уже есть секция для сервера TNS
с именем LISTENER. (Имя по умолчанию)
Вариант с поднятием сервера TNS с другим именем не рассматриваем, бо
Вы пока не разобрались со стандартной установкой

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
DB2Name =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = HostServer)(PORT =  5036 ))
    )
    (CONNECT_DATA =
      (SID = DB2Name)
    )
    (HS = OK)
  )

Меняете PORT=1521 ( так как у Вас установлен в listener.ora )
перезагрузите службу Listener, и повторите тесты:
Код: plaintext
1.
2.
3.
4.
lsnrctl status
tnsping DB2Name  10 
sqlplus user/password
SQL> select count(*) from all_tables@DB2LINK;
...
Рейтинг: 0 / 0
DBLink в Oracle к DB2
    #37043216
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот еще замечание, сразу не заметил:
Код: plaintext
1.
(ADDRESS = (PROTOCOL = TCP)(HOST = HostLocal)(PORT =  1521 ))
Заменить HostLocal на HostServer
...
Рейтинг: 0 / 0
DBLink в Oracle к DB2
    #37055609
NEFed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim Lejnin,

Спасибо за ответ. Наконец добрался до работы...

Вот, что я сделал.
Возможно не совсем правильно понял то, что нужно...

listener.ora:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\oraclexe\app\oracle\product\ 10 . 2 . 0 \server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\oraclexe\app\oracle\product\ 10 . 2 . 0 \server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = DB2Name)
      (ORACLE_HOME = D:\oraclexe\app\oracle\product\ 10 . 2 . 0 \server)
      (PROGRAM = hsodbc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
      (ADDRESS = (PROTOCOL = TCP)(HOST = HostLocal)(PORT =  1521 ))
    )
  )

DEFAULT_SERVICE_LISTENER = (XE)

tnsnames.ora:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = HostLocal)(PORT =  1521 ))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

ORACLR_CONNECTION_DATA = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) 
    ) 
    (CONNECT_DATA = 
      (SID = CLRExtProc) 
      (PRESENTATION = RO) 
    ) 
  ) 

DB2Name =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = HostLocal)(PORT =  1521 ))
    )
    (CONNECT_DATA =
      (SID = DB2Name)
    )
    (HS = OK)
  )

D:\>lsnrctl reload

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 11-ЯНВ-2011 15:30
:28

Copyright (c) 1991, 2005, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
The command completed successfully

D:\>lsnrctl status

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 11-ЯНВ-2011 15:30
:36

Copyright (c) 1991, 2005, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
ction
Start Date 11-ЯНВ-2011 09:35:15
Uptime 0 days 5 hr. 55 min. 24 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Default Service XE
Listener Parameter File D:\oraclexe\app\oracle\product\10.2.0\server\network\a
dmin\listener.ora
Listener Log File D:\oraclexe\app\oracle\product\10.2.0\server\network\l
og\listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC_FOR_XEipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=HostLocal)(PORT=1521
)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=8080))(Presentation=
HTTP)(Session=RAW))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "DB2Name" has 1 instance(s).
Instance "DB2Name", status UNKNOWN, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "XEXDB" has 1 instance(s).
Instance "xe", status READY, has 1 handler(s) for this service...
Service "XE_XPT" has 1 instance(s).
Instance "xe", status READY, has 1 handler(s) for this service...
Service "xe" has 1 instance(s).
Instance "xe", status READY, has 1 handler(s) for this service...
The command completed successfully

D:\>tnsping DB2Name 10

TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 11-ЯНВ-2
011 15:30:49

Copyright (c) 1997, 2005, Oracle. All rights reserved.

Used parameter files:
D:\oraclexe\app\oracle\product\10.2.0\server\network\admin\sqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = HostLocal)(PORT = 1521))) (CONNECT_DATA = (SID = DB2Name))
(HS = OK))
OK (40 msec)
OK (10 msec)
OK (20 msec)
OK (10 msec)
OK (20 msec)
OK (10 msec)
OK (20 msec)
OK (20 msec)
OK (10 msec)
OK (20 msec)

Код: plaintext
1.
select count(*) from all_tables@DB2Name

ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
[Generic Connectivity Using ODBC][Microsoft][Диспетчер драйверов ODBC]
Источник данных не найден и не указан драйвер,
используемый по умолчанию (SQL State: IM002; SQL Code: 0)
ORA-02063: preceding 2 lines from DB2Name
...
Рейтинг: 0 / 0
DBLink в Oracle к DB2
    #37055653
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У Вас написано использовать ODBC DSN: DB2Name
initDB2Name.ora
Код: plaintext
1.
2.
3.
4.
5.
#
# HS init parameters
#
HS_FDS_CONNECT_INFO = DB2Name
HS_FDS_TRACE_LEVEL = OFF


Но hsodbc при попытке прочитать данные из данного DSN получает ошибку:

Ошибка hsodbc
Код: plaintext
1.
2.
3.
4.
ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
[Generic Connectivity Using ODBC][Microsoft][Диспетчер драйверов ODBC]
Источник данных не найден и не указан драйвер,
используемый по умолчанию (SQL State: IM002; SQL Code: 0)
ORA-02063: preceding 2 lines from DB2Name


Причины могут быть следующие:
Нет такого имени... то есть у Вас не сконфигурирован DSN DB2Name

Имя есть, но определено только для того пользователя под которым Вы работаете
(например Administrator), в то время как oracle listener и oracle работают
под windows учётной записью SYSTEM, не путать с учётной записью oracle

Вот отрывок из документа создания DSN
Для вашего случая Node1 и Node2 - Это один и тот же сервер
Настройка Oracle HS Agent Архитектура Oracle HS agent

Путь по которому oracle обращается к удаленной базе

Узел #1 Oracle RDBMSOracle RDBMS -> DBLink -> Oracle Client -> HS TNS Запись ->


Узел #2 Oracle HS Agent-> TNS Listener -> HS Listener Запись -> HS agent -> FDC_CONNECT_INFO запись -> OtherDb Client ->


Узел #3 OtherDB-> OtherDB

...
Настройка ODBC DSN
Панель создания:
запустите ODBC Администратор:
Панель управления -> Администрирование -> Источники данных
Перейдите на вкладку “системный DSN”
Выбрать пункт меню “Добавить”
Выбрать драйвер “XXXX”
Завершить создание пунктом “Готово”
...

...
...
Рейтинг: 0 / 0
DBLink в Oracle к DB2
    #37067890
NEFed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim Lejnin,

Спасибо за ответ!

•Нет такого имени... то есть у Вас не сконфигурирован DSN DB2Name

Но почему тогда работает JDeveloper c DSN DB2Name
Так же работает множество других клиентов (например C++ Builder)

•Имя есть, но определено только для того пользователя под которым Вы работаете
(например Administrator), в то время как oracle listener и oracle работают
под windows учётной записью SYSTEM, не путать с учётной записью oracle

Я не разбираюсь в этом вопросе, но местный специалист говорит,
что настроено всё с учетом Вашего замечания

То, что Вы пишете уже сделано (DSN настроен).
Возможно я не понял, что Вы имели в виду (если можно подробнее).
Не знаю, что делать.
...
Рейтинг: 0 / 0
DBLink в Oracle к DB2
    #37069663
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Утро. Вот заметил еще:
Попробуйте убрать пробелы в строке (проверить сейчас негде, да и лениво):
Код: plaintext
HS_FDS_CONNECT_INFO = DB2Name

Код: plaintext
HS_FDS_CONNECT_INFO=DB2Name
...
Рейтинг: 0 / 0
DBLink в Oracle к DB2
    #37070164
NEFed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim LejninУтро. Вот заметил еще:
Попробуйте убрать пробелы в строке (проверить сейчас негде, да и лениво):
Код: plaintext
HS_FDS_CONNECT_INFO = DB2Name

Код: plaintext
HS_FDS_CONNECT_INFO=DB2Name


Даже в примере в соответствующей папке стоят пробелы
...
Рейтинг: 0 / 0
DBLink в Oracle к DB2
    #37070318
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Утро...
Чудес не бывает
hsodbc получил однозначный ответ драйвера ODBC

Диспетчер драйверов ODBC
Код: plaintext
1.
2.
3.
[Generic Connectivity Using ODBC][Microsoft][Диспетчер драйверов ODBC]
Источник данных не найден и не указан драйвер,
используемый по умолчанию (SQL State: IM002; SQL Code:  0 )


пусть ТС тогда вывалит screenshot экрана ODBC администратора
Где будет строчка DB2Name

И посмотреть журнал соединения, для этого включить
Код: plaintext
HS_FDS_TRACE_LEVEL=ON
Файл журнала будет: %ORACLE_HOME%\hs\log
...
Рейтинг: 0 / 0
DBLink в Oracle к DB2
    #37076372
NEFed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim Lejnin,

lsnrctl reload
lsnrctl status
tnsping DB2Name 10
create public database link DB2Name connect to DB2Log by "DB2Pas" using 'DB2Name';
select count(*) from TableName@DB2Name;

Log:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
No longer listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST= 127 . 0 . 0 . 1 )(PORT= 8080 ))(Presentation=HTTP)(Session=RAW))
System parameter file is D:\oraclexe\app\oracle\product\ 10 . 2 . 0 \server\network\admin\listener.ora
Log messages written to D:\oraclexe\app\oracle\product\ 10 . 2 . 0 \server\network\log\listener.log
Trace information written to D:\oraclexe\app\oracle\product\ 10 . 2 . 0 \server\network\trace\listener.trc
Trace level is currently  0 
 24 -ЯНВ- 2011   17 : 03 : 12  * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=Бутылкин))(COMMAND=reload)(ARGUMENTS= 64 )(SERVICE=LISTENER)(VERSION= 169869568 )) * reload *  0 
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST= 127 . 0 . 0 . 1 )(PORT= 8080 ))(Presentation=HTTP)(Session=RAW))
 24 -ЯНВ- 2011   17 : 03 : 12  * service_register * xe *  0 
 24 -ЯНВ- 2011   17 : 03 : 19  * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=Бутылкин))(COMMAND=status)(ARGUMENTS= 64 )(SERVICE=LISTENER)(VERSION= 169869568 )) * status *  0 
 24 -ЯНВ- 2011   17 : 03 : 23  * ping *  0 
 24 -ЯНВ- 2011   17 : 03 : 23  * ping *  0 
 24 -ЯНВ- 2011   17 : 03 : 23  * ping *  0 
 24 -ЯНВ- 2011   17 : 03 : 23  * ping *  0 
 24 -ЯНВ- 2011   17 : 03 : 23  * ping *  0 
 24 -ЯНВ- 2011   17 : 03 : 23  * ping *  0 
 24 -ЯНВ- 2011   17 : 03 : 23  * ping *  0 
 24 -ЯНВ- 2011   17 : 03 : 23  * ping *  0 
 24 -ЯНВ- 2011   17 : 03 : 23  * ping *  0 
 24 -ЯНВ- 2011   17 : 03 : 23  * ping *  0 
 24 -ЯНВ- 2011   17 : 03 : 34  * http * (ADDRESS=(PROTOCOL=tcp)(HOST= 127 . 0 . 0 . 1 )(PORT= 1616 )) * handoff * http *  0 
 24 -ЯНВ- 2011   17 : 03 : 39  * http * (ADDRESS=(PROTOCOL=tcp)(HOST= 127 . 0 . 0 . 1 )(PORT= 1621 )) * handoff * http *  0 
 24 -ЯНВ- 2011   17 : 03 : 49  * (CONNECT_DATA=(SID=DB2NAME)(CID=(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST= 111 . 111 . 111 . 111 )(PORT= 1622 )) * establish * DB2NAME *  0 
 24 -ЯНВ- 2011   17 : 03 : 50  * http * (ADDRESS=(PROTOCOL=tcp)(HOST= 127 . 0 . 0 . 1 )(PORT= 1624 )) * handoff * http *  0 
...
Рейтинг: 0 / 0
DBLink в Oracle к DB2
    #37076373
NEFed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim Lejnin,
...
Рейтинг: 0 / 0
DBLink в Oracle к DB2
    #37076375
NEFed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim Lejnin,
...
Рейтинг: 0 / 0
DBLink в Oracle к DB2
    #37076544
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да по odbc вроде все нормально (именно с DB2 не работал, не подскажу).

осталось проанализировать trace от hsodbc
lejninИ посмотреть журнал соединения, для этого включить

Код: plaintext
1.
HS_FDS_TRACE_LEVEL=ON

Файл журнала будет: %ORACLE_HOME%\hs\log
...
Рейтинг: 0 / 0
DBLink в Oracle к DB2
    #37076596
NEFed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ.

Vadim Lejninда по odbc вроде все нормально (именно с DB2 не работал, не подскажу).

осталось проанализировать trace от hsodbc
lejninИ посмотреть журнал соединения, для этого включить

Код: plaintext
1.
HS_FDS_TRACE_LEVEL=ON

Файл журнала будет: %ORACLE_HOME%\hs\log


Я это сделал, но log в не появился!
Сегодня попробую ещё.
Может быть кто-то работал с DB2?
...
Рейтинг: 0 / 0
DBLink в Oracle к DB2
    #37077628
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем то для hsodbc особой разницы нет, что DB2 что SQLServer
особенности будут по настройке конкретного ODBC драйвера
По поводу трасировки уточнил:
Включение hsodbc trace:
Код: plaintext
1.
2.
3.
HS_FDS_TRACE_LEVEL =  0                               <= trace levels  0  -  4  или DEBUG
HS_FDS_TRACE_FILE_NAME = olemsql.trc                <= trace file name
#
Файл должен появится %ORACLE_HOME%\hs\trace (создайте директорию если ее нет)
После появления файла, проверьте что в trace файл не попал password и бизнес критические данные

Можно также включить трасировку на стороне ODBC, Для этого (Я смотрел на сервере Windows2003 бо windows xp сейчас нет под рукой):
в ODBCADM перейти на вкладку Трасировка

нажать кнопку пуск трасировки (С установкой флажка Трасировка всех идентификационных записей

запомнить имя файла

нажать кнопку применить

Советую для начала самому покурить над логами, может и не нужна будет помощь,
только обязательно отписаться о причинах чтобы помочь тем кто будет после Вас.

p.s. Будут проблемы, можете найти меня в skype (обычно сижу до 23 по Москве)
ник такой же, как моя фамилия на форуме.
...
Рейтинг: 0 / 0
DBLink в Oracle к DB2
    #37077633
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NEFed,

Да, еще в порядке бреда, Может у Вас имя DSN с пробелом? "DBName "
проверте
...
Рейтинг: 0 / 0
DBLink в Oracle к DB2
    #37082865
NEFed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vadim LejninNEFed,

Да, еще в порядке бреда, Может у Вас имя DSN с пробелом? "DBName "
проверте

Да, Вы правы, в порядке бреда ошибся в последней букве строки
Код: plaintext
1.
HS_FDS_CONNECT_INFO = DB2Name
Теперь всё работает. Огромное спасибо за помощь Vadim Lejnin.

Остался один вопрос:

В DB2 у меня привелегии только на select определённых таблиц.
Я обязан выполнять две команды после select?
Код: plaintext
1.
2.
commit
alter session close database link DB2Name
Иными словами может случиться так, что я не выполню эти команды, после select
а тот у кого есть привелегии на изменение таблицы не сможет её изменить?

Или у меня самого возникнут какие-либо проблемы после многих select?


Вот образцовые настройки Oracle (добавления выделены)

listener.ora:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\oraclexe\app\oracle\product\ 10 . 2 . 0 \server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\oraclexe\app\oracle\product\ 10 . 2 . 0 \server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = DB2Name)
      (ORACLE_HOME = D:\oraclexe\app\oracle\product\ 10 . 2 . 0 \server)
      (PROGRAM = hsodbc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT =  1521 ))
    )
  )

DEFAULT_SERVICE_LISTENER = (XE)
tnsnames.ora:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT =  1521 ))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

ORACLR_CONNECTION_DATA = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) 
    ) 
    (CONNECT_DATA = 
      (SID = CLRExtProc) 
      (PRESENTATION = RO) 
    ) 
  ) 

DB2Name =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT =  1521 ))
    )
    (CONNECT_DATA =
      (SID = DB2Name)
    )
    (HS = OK)
  )
initDB2Name.ora:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
# This is a sample agent init file that contains the HS parameters that are
# needed for an ODBC Agent. 

#
# HS init parameters
#
HS_FDS_CONNECT_INFO = DB2Name
HS_FDS_TRACE_LEVEL = OFF

#
# Environment variables required for the non-Oracle system
#
#set <envvar>=<value>
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
DBLink в Oracle к DB2
    #39295117
ne_tst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Утро. Вот заметил еще:
Попробуйте убрать пробелы в строке (проверить сейчас негде, да и лениво):
HS_FDS_CONNECT_INFO = DB2Name
HS_FDS_CONNECT_INFO=DB2Name

This is work!!!
...
Рейтинг: 0 / 0
DBLink в Oracle к DB2
    #39295121
2011
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ne_tstУтро.Причем морозное.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / DBLink в Oracle к DB2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]