|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Ildar Gabdulline 2:5020/400 15 Sep 2002 23:44:41 To : All Subject : persistent DBI connections -------------------------------------------------------------------------------- Привет, Как можно реализовать следующую вещь ? 1. perl script, постоянно висящий в памяти создает N DBI соединений к ORACLE и держит их в pool 2. другие perl - скрипты (специфика применения такова, что их число - сотни и тысячи, причем рождаются они часто) запрашивает соединение с БД у первого скрипта (механизмы могут быть разные - файл, shm) при необходимости работать с БД 3. соединение (т.е. все данные необохимые для его использования ) передается скрипту, который их и использует 4. в конце работы соединение возвращается обратно в pool Близкое решение (но не совсем то, т.к. соединение никуда не передается, а с БД работает proxy server, а не сам скрипт из п.2) проглядывает в DBI::ProxyServer. Однако не совсем подходит. Кстати, вопрос по теме касательно DBI::ProxyServer - что надо сделать, чтобы dbiproxy кешировал соединения ? (использование в скрипте connect_cached не помогает, connection все равно закрывается при disconnect или завершении скрипта). Буду благодарен за профессиональный ответ. Ildar. PS. Все это надо по следующей причине: 1. есть система, занимающаяся обработкой телефонных звонков (могут быть сотни и тысячи параллельно). при приходе каждого звонка специальное приложение запускает perl-скрипт, который и 'рулит' данным звонком. Доступ к БД сейчас осуществляется следующим образом: perl-script---proprietary interface---->data server-----OCI---->Oracle data server имеет постоянное соединение к ORACLE, фактически ничего не делает, кроме трансляции запросов от скриптов к Oracle и выдачи ответов обратно. Так сделано, т.к. просто не получается каждый раз создавать и убивать соединение к oracle для каждого звонка - слишком жирно. Во-первых - довольно медленно, во-вторых - добавление каждой новой feature требует изменения сервера. Хочется спрямить путь, сделав следующий вариант: perl-script---DBI---->Oracle но при этом чтобы соединения создавались один раз (например 2000 шт.) и больше не убивались,реюзились последующими скриптами. --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/65773d3666cf.html, оценка из 5, голосов 10
|