2012-03-08 3 views
4

Я работаю на сервере C++, который использует Oracle в качестве бэкэнд через Pro * C.Oracle Pro * C доступ из нескольких потоков

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

Мой опыт работы с другими базами данных, такими как MySQL на Linux, возник из-за проблемы, когда вы используете одно соединение через несколько потоков. Проблема была решена путем создания коннектора соединения для потока.

Есть ли такой трюк, который позволит нам использовать Oracle Pro * C аналогичным образом? Кажется, что DB корпоративного класса, который не поддерживает такие функции в версии 10+, несколько маловероятен.

+0

Вы знаете о Pro * C вариант прекомпилятора [Темы] (http://docs.oracle.com/cd/B13789_01/appdev.101/a97269/pc_11thr.htm#i997959) и [многопоточного программирования соображения] (http://docs.oracle.com/cd/B13789_01/appdev.101/a97269/pc_11thr.htm#i999517)? Возможно, это поможет ... Переход на «OCCI» сделает вашу жизнь проще. – nabulke

+0

@nabulke Это может сработать. Положите его в ответ, я приму это. OCCI, к сожалению, на данном этапе не вариант. – Karlson

ответ

4

Знаете ли вы, что прекомпилятор pro * c опционный Threads и multithreaded programming considerations?

С НИТЕЙ = YES, указанный в командной строке, то Pro * C/C++ прекомпилятора гарантирует, что сгенерированный код потокобезопасно, учитывая, что вы будете следовать правилам.

+0

Хорошие документы! Большое спасибо! –

Смежные вопросы