Доступ к FB из различных потоков
-
- Сообщения: 8
- Зарегистрирован: 26 мар 2006, 17:32
Доступ к FB из различных потоков
Не возникало ли у кого-нибудь проблем с subj? Конкретнее, у меня один thread пишет в БД, другой читает. Происходит нерегулярное зависание пишущего потока при выполнении API-вызова isc_put_segment(). В чем может быть дело?
-
- Сообщения: 8
- Зарегистрирован: 26 мар 2006, 17:32
-
- Сообщения: 8
- Зарегистрирован: 26 мар 2006, 17:32
К сожалению, не все так определенно. Когда используется отдельное соединение (ISC_DB_HANDLE) на каждый поток без синхронизации, все равно потоки виснут при одновременном входе в какие-нибудь функции IB API. Если операции доступа синхронизировать (критические секции), то количество аттачей роли не играет и программа вроде бы работает. Однако, если искусственно повысить интенсивность обращений к gds32.dll, то рано или поздно один поток повисает, а остальные бесконечно ждут его в связи с синхронизацией. Может быть, известны еще какие-нибудь нюансы?
-
- Сообщения: 8
- Зарегистрирован: 26 мар 2006, 17:32
Коннект локальный. Версия FB 1.5, также проверял на IB 6. Сериализовать - это хороший совет. Но, как сказано выше, при одном коннекте и сериализации доступа при интенсивной нагрузке один поток виснет и т.д. М.б. сервер не успевает завершить текущую операцию, когда поступает новая? Хотя, это не в моей компетенции.
Лучше поздно, чем никогда...
http://www.ibase.ru/devinfo/ibx.htm. Раздел TIBDatabase.
http://www.ibase.ru/devinfo/ibx.htm. Раздел TIBDatabase.