Как отлаживать драйвер ODBC в среде Oracle Heterogeneous Services?

Oracle Heterogeneous Services — это функция Oracle DB, которая позволяет базе данных взаимодействовать с сторонними DB через их драйверы ODBC.

Довольно просто отладить драйвер ODBC с помощью клиентских средств ODBC, таких как isql.

С isql я могу ввести информацию о драйвере в начальной командной строке. isql и аналогичные инструменты принимают имя DSN ODBC и напрямую загружают драйвер. Таким образом, когда я набираю: info sharedlibrary в командной строке GDB, я вижу загруженную разделяемую библиотеку ODBC, отладка которой меня интересует.

Как я могу сделать то же самое с помощью sqlplus или другого клиентского инструмента Oracle? Однако с sqlplus невозможно сказать, когда драйвер загружается.

Как отлаживать драйвер ODBC («динамически загружаемую библиотеку») с помощью Oracle Heterogeneous Services?

Среда: Отладчик Linux: Гетерогенные службы Oracle GDB: https://docs.oracle.com/cd/A81042_01/DOC/server.816/a76960/hs_conce.htm


person Kapil Vyas    schedule 30.05.2018    source источник


Ответы (1)


sqlplus (CLI) или sqldeveloper (GUI) — это чисто интерфейсы для выполнения запросов к базе данных Oracle. В контексте Oracle HS сами инструменты не загружают драйвер ODBC. Именно база данных Oracle косвенно загружает драйвер ODBC через dg4odbc. Мне потребовалось некоторое время, чтобы обнаружить этот факт. Для отладки с помощью gdb выполните следующие действия:

# Connect to Oracle DB:
sqlplus system/[email protected]:1521/orcl12c

# After connecting, dg4odbc is still not activated
# Run a single query for Oracle DB to load the ODBC driver
# After, initial query dg4odbc is active
[oracle@oracle_vm ~]$ ps aux|grep dg4odbc
oracle   17905 17.5  1.0 497392 63244 ? Ssl  13:56   0:01 dg4odbcNORTHWIND_MYSQL (LOCAL=NO)

# Use the PID from above process to debug in GDB
[oracle@oracle_vm ~]$ gdb dg4odbc 17905

# You can now debug the ODBC driver which is loaded by dg4odbc
# You can check by running "info sharedlibrary" at the GDB prompt
# Happy Debugging :)
person Kapil Vyas    schedule 09.10.2018