wtyd Posted February 9, 2016 · Report post Собрались заюзать rlm_perl, пока до sql дело ещё не дошло, но есть вопросы по подключению к *sql из rlm_perl. Везде в примерах пишут, что надо использовать функцию CLONE(), в которой инициируется подключение к sql. AFAIK это будет работать так: создаётся новый поток (thread), в потоке создаётся своё собственное подключение, выполняется логика модуля, поток завершается, подключение к СУБД закрывается. Поток AFAIK создаётся на каждый новый запрос, соответственно снова подключаемся к СУБД и так далее. Нельзя ли как-то использовать одно или несколько постоянных подключений к СУБД чтобы не подключаться каждый раз ? Ну и чтобы радиус при обрыве соединения пытался его восстановить. Типа примерно как с rlm_sql обычно и происходит. Если можно, то покажите пример такого кода, буду очень рад :-). Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
wtyd Posted February 10, 2016 · Report post Наверное там всё же имелись ввиду threads самого радиуса. Т.е. запускается какое-то число тредов, например, 5-7, каждая из них делает своё подключение к СУБД и держит до завершения треды. Хотя это всё пока догадки :-). Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
~AsmodeuS~ Posted February 10, 2016 · Report post используйте connect_cached Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
wtyd Posted February 10, 2016 (edited) · Report post используйте connect_cached А по-подробнее можно ? Это фича перла или freeradius ? Что-то не очень гуглится для freeradius и perl. Вот так надо ?: ... our $dbh; ... sub CLONE { $dbh = DBI->connect_cached($data_source, $username, $password); } ... вместо "DBI->connect..." юзать "$dbh = DBI->connect_cached...", так ? Edited February 10, 2016 by wtyd Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
~AsmodeuS~ Posted February 10, 2016 · Report post да именно так http://abills.cvs.sourceforge.net/viewvc/abills/abills/Abills/mysql/main.pm?revision=1.2.2.25.2.147&view=markup&pathrev=rel-0-5 строки 71..75 для наглядности Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
wtyd Posted February 10, 2016 · Report post да именно так http://abills.cvs.sourceforge.net/viewvc/abills/abills/Abills/mysql/main.pm?revision=1.2.2.25.2.147&view=markup&pathrev=rel-0-5 строки 71..75 для наглядности Спасибо за пример. Не подскажете, как в случае с postgres бороться с ситуациями, в которых требуется reconnect к базе ? Метода reconnect там нет. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
~AsmodeuS~ Posted February 10, 2016 · Report post не пробовал Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...