LINUX.ORG.RU

Постоянные соединения в perl


0

0

Как можно сделать следующую вещь ?

1. процесс(программа, написанная на C) создает через OCI соединения к oracle и держит их в pool. 2. perl скрипт запрашивает данный процесс, который выдает данные для использования соединения скрипту. 3. скрипт использует соединение для работы с oracle 4. в конце работы соединение возращается в pool

anonymous

Вообщето я не очень понял. И к тому же я никогда не работал с базами данных. Но думаю то надо сделть вот так(если я конечно правильно понял):
В скрипте на перл запускаешь свой процесс на С
open(PIPE,"process.o |");
Далее просто читаешь из дескриптора PIPE как из файла. Только прога на С должна все данные выводить на stdout, то-есть на консоль.
Если прога - демон, то попробуй почитать документацию об IPC, вообще проще использовать файл, обновляя его время от времени. Только его надо как-то блокировать на время обновления.

OxiD ★★★★
()

1) Для перла есть DBI/DBD драйвера Oracle (ненадо тебе С) 2) Внимательно посмотрим на OCIInitialize - там можно передать указатели на функции перераспределения,выделения,освобождения памяти. Соответственно можно попробовать передавать все дескрипторы и другие OCI структуры через shared memory. Но ! shared memory мапится на разные адресные пространства. => (из того что скажем service context handle содержит указатели на server handle) скорее всего реализация так невозможна. Остаются способы: делать это на нитках, или реализовывать свой протокол передачи данных и делать некое прокси.

master
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.