Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > С-программа и ORACLE 9, OCI, 64-bit


Автор: Гость_Олег 20.2.2004, 11:13
Вот какая засада: есть у нас одна С программа, которая много и регулярно качает данные из ORACLE, используя OCI библиотеку для Windows. Сейчас она работает на 32-х битной машине, но ей там "тесно", и поэтому эту программу мы сейчас портируем на 64-х битную. Все получается замечательно, НО! При выполнении пары функций olog и ologof не освобождаются два каких-то хандла, что можно видеть в Task Managerе. Такая гадость происходит даже, если olog и ologof выполняются непосредственно одна за другой. Может, у кото-то есть идеи, откуда эта фигня берется и как с ней бороться?

Автор: AntonSaburov 20.2.2004, 16:31
Серьезно sad.gif
Не встречал такого - когда-то делали простенький коннект к базе, но это все было только на 32-битной. Если обнаружу что-то - постараюсь помочь. Но если найдешь решение раньше - за информацию будет огромное СПАСИБО.

Автор: Гость_Олег 20.2.2004, 17:40
На 32-битной все идет как по маслу.

Интересно, что такая фигня случается только если в начале программы выполняется opinit(OCI_EV_TSF), который инициализирует оракловский энвайромент для работы в трейдах. Для теста была сделана программка, которая только и делает, что opinit и затем в цикле olog и ologof. И на каждом шаге цикла Task Manager показывает увеличение используемых хандлов на 2. Если за коментировать opinit - все начинает работать правильно.



Автор: AntonSaburov 24.2.2004, 10:31
Цитата
Интересно, что такая фигня случается только если в начале программы выполняется opinit(OCI_EV_TSF), который инициализирует оракловский энвайромент для работы в трейдах. Для теста была сделана программка, которая только и делает, что opinit и затем в цикле olog и ologof. И на каждом шаге цикла Task Manager показывает увеличение используемых хандлов на 2. Если за коментировать opinit - все начинает работать правильно.


Спасибо - будем иметь в виду.

Если будет время и желание - заходи в нам на форум. Будем рады.

Автор: Гость_Олег 25.2.2004, 10:26
Получен ответ от ORACLE Support. Чтобы избавиться от проблемы, предлагается установить patchset 9.2.0.4. Вот описание проблемы:

Bug No. 2517189
Filed 16-AUG-2002 Updated 02-SEP-2003
Product SQL*Net Product Version 9.2.0.1.0
Platform Generic Platform Version SP2
Database Version 9.2.0.1.0 Affects Platforms Generic
Severity Severe Loss of Service Status Q/A To Development
Base Bug N/A Fixed in Product Version 9.2.0.2.99

Problem statement:

HANDLE LEAK WHEN REPEATING CONNECT/DISCONNECT IN OCI_THREADED MODE
*** 08/16/02 08:48 am *** (CHG: Sta->16)
*** 08/16/02 08:48 am ***
2420202.995
=========================
PROBLEM:
1. Clear description of the problem encountered:
Windows handles are leaking when connecting and disconnecting
..
2. Pertinent configuration information (MTS/OPS/distributed/etc)
The customer is using the Oracle Client 8.1.7.4, 9.2.0.1.0
..
3. Indication of the frequency and predictability of the problem
The OS leaks handles on each connect and disconnect
..
4. Sequence of events leading to the problem
Simply connect and disconnect in OCI_THREADED mode.
..
5. Technical impact on the customer. Include persistent after effects.
The customer has to restart his server machine every third day,
because the machine starts to have unpredictable side effects.

Автор: AntonSaburov 25.2.2004, 13:28
to Гость_Олег
Спасибо огромное - такая информация дорогого стОит. Я бы рейтинг поднял - да unregistered никак не получается smile.gif
Спасибо еще раз.

Автор: OlegsDP 25.2.2004, 14:09
И на добром слове спасибо.smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)