OracleSQLMonitor конфликтует с динамическими библиотеками

Обсуждение возникших проблем, предложений и ошибок ODAC компонентов
Закрыто
const86
Сообщения: 6
Зарегистрирован: Пн 27 янв 2014 12:03

OracleSQLMonitor конфликтует с динамическими библиотеками

Сообщение const86 » Пн 27 янв 2014 12:12

Проблема такая. В приложении загружаю динамические dll библиотеки. После инициализации компонента OraSQLMonitor (Параметр Active установлен в true), и закрытии приложения, оно остается висеть в процессах. Если не загружать dll приложение завершается. И соответственно при отключении компонента OraSQLMonitor и загруженной dll происходит завершение.

Скажите, пожалуйста, в чем проблема и как её побороть?

Система: Windows 8.1 x64
Среда: С++ Builder 2009
Версия компонента: Oracle Data Access Components 8.6.12

Alexp
Devart Team
Сообщения: 349
Зарегистрирован: Пн 27 дек 2010 10:34

Re: OracleSQLMonitor конфликтует с динамическими библиотеками

Сообщение Alexp » Вт 28 янв 2014 07:03

Добрый день,

Мы не можем воспроизвести проблему, пожалуйста попробуйте воспроизвести это поведение на последней версии ODAC 9.2.5, и если проблема повториться, свяжитесь с нами снова.

P.S. Для работы с Oracle в OCI режиме ODAC динамически загружает библотеки клиента Oracle, и ни каких проблем после закрытия приложения не наблюдаеться

const86
Сообщения: 6
Зарегистрирован: Пн 27 янв 2014 12:03

Re: OracleSQLMonitor конфликтует с динамическими библиотеками

Сообщение const86 » Вт 28 янв 2014 09:46

К сожалению не могу попробовать данную версию компонентов. Вылазиет ошибка: ORA-12560: TNS: protocol adapter error. Верисия клиента oracle 11.2.0

const86
Сообщения: 6
Зарегистрирован: Пн 27 янв 2014 12:03

Re: OracleSQLMonitor конфликтует с динамическими библиотеками

Сообщение const86 » Вт 28 янв 2014 11:56

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

Alexp
Devart Team
Сообщения: 349
Зарегистрирован: Пн 27 дек 2010 10:34

Re: OracleSQLMonitor конфликтует с динамическими библиотеками

Сообщение Alexp » Ср 29 янв 2014 09:02

Пожалуйста пришлите небольшой пример на alexp*devart*com плагин и приложение который воспроизводит проблему.

const86
Сообщения: 6
Зарегистрирован: Пн 27 янв 2014 12:03

Re: OracleSQLMonitor конфликтует с динамическими библиотеками

Сообщение const86 » Ср 29 янв 2014 13:19

Отправил вам письмо. С адреса [email protected]

Еще одна деталь выяснилось. Установил RAD Studio на виртуалку и там запустил на компиляцию проект. При запуске в дебагере при включенном OraSQLMonitor выскакивает ошибка Cannot connect to server on host 'localhost'.

Настройки OraSQLMonitor следующие:

Код: Выделить всё

object OraSQLMonitor: TOraSQLMonitor
    TraceFlags = [tfQPrepare, tfQExecute, tfError, tfStmt, tfConnect, tfTransact, tfMisc, tfParams]
    OnSQL = OraSQLMonitorSQL
    Left = 32
    Top = 56
  end

const86
Сообщения: 6
Зарегистрирован: Пн 27 янв 2014 12:03

Re: OracleSQLMonitor конфликтует с динамическими библиотеками

Сообщение const86 » Чт 30 янв 2014 08:40

Появились кое-какие догадки по этой ошибке.
Во время запуска приложение из-под среды разработки OraSQLMonitor генерирует исключение Cannot connect to server on host 'localhost'. Как вначале подключения к базе данных (открытии приложения) так и отключении от неё (закрытие приложения). Причем сообщения об ошибке генерируются только в среде разработки.
Если при выходе среда разработки успела отобразить ошибку, программа завершается, если не успела - нет. Так у меня на виртуалке тестовое приложение завершалось в 70% случаев. При запуске вне среды в процентах 10%.
Покопался в настройках компонента и отключил все опции:
* moDialog (стояло по умолчанию true)
* moSQLMonitor (стояло по умолчанию true)
* moDBMonitor (стояло по умолчанию true)
* moCustom (стояло по умолчанию true)
* moHandled (было false, не трогал)
Выше описанное исключение больше не появляется, программа завершается всегда и везде. При этом все события Oracle им регистрируются (по крайней мере, все что мне нужно).
Теперь возник другой вопрос, за что отвечают эти опции?

Alexp
Devart Team
Сообщения: 349
Зарегистрирован: Пн 27 дек 2010 10:34

Re: OracleSQLMonitor конфликтует с динамическими библиотеками

Сообщение Alexp » Чт 30 янв 2014 13:16

В последних версиях ODAC? мы исправили проблему с возникновением ошибки 'Cannot connect to server ...' в независимости от того включен или выключен OraSQLMonitor? как при запуске из IDE так и при запуски exe файла. Возможно вы не полностью удалили предыдущую версию перед установкой новой версии ODAC 9.2.5 (подхватываются стары dcu, bpl и т.д.).
Описание опций монитора вы можете найти в справке http://www.devart.com/odac/docs/index.h ... option.htm

Закрыто