Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Потоки, Подключение к Oracle в новом потоке 
:(
    Опции темы
mazik
Дата 10.10.2008, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 1.10.2007

Репутация: нет
Всего: нет



Добрый день всем.
Имеется программа, пытающаяся подключаться к Oracle по таймеру ч/з опред. время. Подключение запускается в новом потоке. После запуска приложения первое подключение проходит нормально, а при втором Debugger выдает информацию

Windows has triggered a breakpoint in Fraud.exe.
This may be due to a corruption of the heap, and indicates a bug in Fraud.exe or any of the DLLs it has loaded.
В чем может быть проблема?
Код функции потока:

Код

DWORD    WINAPI        ThreadFunc(LPVOID)
{
    //MessageBox( NULL,_T("10 seconds"), _T("Thread"), MB_OK ); Если функция тока с этой строкой-работает отлично....
    SQLHENV henv,hdbc, hdstmt;
    SQLWCHAR *OutConnectionString=0;SQLSMALLINT *StringLength2Ptr=0;
    SQLWCHAR *constring = (SQLWCHAR*) _T("Driver={Microsoft ODBC for Oracle};Server=OMAP1;Uid=...;Pwd=...;");
    SQLAllocHandle( SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv );
    SQLSetEnvAttr( henv, SQL_ATTR_ODBC_VERSION, ( void* )SQL_OV_ODBC3, 0 );
    SQLAllocHandle( SQL_HANDLE_DBC, henv, &hdbc );
    int retcode = SQLDriverConnect(hdbc,NULL,constring,97,OutConnectionString, 1024,StringLength2Ptr, SQL_DRIVER_COMPLETE);
    //SQLAllocHandle( SQL_HANDLE_STMT, hdbc, &hdstmt );
    if ( retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO ){
        MessageBoxW( NULL, _T("Connected!"), _T(""), MB_OK | MB_ICONERROR );
    } else {
        MessageBoxW( NULL, _T("Not connected!"), _T(""), MB_OK | MB_ICONERROR );
    }    
    //SQLFreeHandle( SQL_HANDLE_STMT, hdstmt );
    SQLDisconnect( hdbc );
    SQLFreeHandle( SQL_HANDLE_DBC, hdbc );
    SQLFreeHandle( SQL_HANDLE_ENV, henv );
    return 0;
}


PM MAIL   Вверх
DjoNIK
Дата 10.10.2008, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 28.9.2006
Где: Питер/Георгиевск

Репутация: 1
Всего: 5



Что-то я никаких блокировок внутри ThreadFunc не вижу.


--------------------
- Плесни-ка мне холодного кипятку.
- Как кипяток может быть холодным?! Ты, верно, хочешь кипяченой воды?
- Какая ещё кипяченая вода? Не пудри мне мозги - налейхолодного кипятку.
(разговор петербуржца и москвича)
PM MAIL ICQ   Вверх
mazik
Дата 10.10.2008, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 1.10.2007

Репутация: нет
Всего: нет



?
какие  блокировки?
PM MAIL   Вверх
DjoNIK
Дата 10.10.2008, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 28.9.2006
Где: Питер/Георгиевск

Репутация: 1
Всего: 5



smile
Это я по запаре написал. Просто сейчас работаю с WinAPI-ми потоками и одна и та же функция вызываеться из разных потоков.
Так что если у тебя работа с базой идет только через этот поток, то не в блокировках дело.
Блокировка - механизм для защиты совместных ресурсов от одновременного доступа со стороны нескольких потоков.


--------------------
- Плесни-ка мне холодного кипятку.
- Как кипяток может быть холодным?! Ты, верно, хочешь кипяченой воды?
- Какая ещё кипяченая вода? Не пудри мне мозги - налейхолодного кипятку.
(разговор петербуржца и москвича)
PM MAIL ICQ   Вверх
mazik
Дата 10.10.2008, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 1.10.2007

Репутация: нет
Всего: нет



это я знаю.У меня совместных ресурсов нет поэтому я подумал что речь еще про что-то чего не знаю....
PM MAIL   Вверх
mazik
Дата 10.10.2008, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 1.10.2007

Репутация: нет
Всего: нет



Вот в добавок еще пишет:

HEAP[Fraud.exe]: HEAP: Free Heap block 11cb7d8 modified at 11ce278 after it was freed
Windows has triggered a breakpoint in Fraud.exe.
This may be due to a corruption of the heap, and indicates a bug in Fraud.exe or any of the DLLs it has loaded.
PM MAIL   Вверх
J0ker
Дата 10.10.2008, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 986
Регистрация: 17.9.2008

Репутация: 9
Всего: 14



Цитата(mazik @ 10.10.2008,  14:24)
Вот в добавок еще пишет:

HEAP[Fraud.exe]: HEAP: Free Heap block 11cb7d8 modified at 11ce278 after it was freed
Windows has triggered a breakpoint in Fraud.exe.
This may be due to a corruption of the heap, and indicates a bug in Fraud.exe or any of the DLLs it has loaded.

ну ясно-же сказано - блок используется после того как был освобожден - причин может быть несколько
я подозреваю, что функции библиотеки которую вы используете не thread-safe - там могут быть ресурсы доступ к которым, например на протяжении сессии, не может быть конкурентным - на это указывает как минимум наличие хэндлов которые передаются в функции. Проверьте документацию - там должно быть указано thread-safety этой библиотеки.

Это сообщение отредактировал(а) J0ker - 10.10.2008, 18:27


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

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


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0475 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.