Перейти к содержимому
Калькуляторы

freeradius2 + rlm_perl + mysql

Всем приветы,

интересует вот что:

во всех примерах, которые видел, обращение к mysql из rlm_perl функций ( authorization, accounting ... т.д.) производится через создание DBI коннектора в каждой функции. Как это сказывается на производительности? Можно ли создать глобальный DBI коннектор (например, объявив его через our ) и использовать его в вызовах rlm_perl?

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Насколько я понимаю - rlm_perl грузится при запуске радиуса и висит в памяти, соответственно и соединение с БД одно и то же также висит

Единственное - стОит, возможно, при каждом обращении вызывать ф-ию DBI->connect_cached, которая восстановит соединение, если вдруг оно оборвалось

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

хмм у меня коннект в

sub CLONE(){
       $dbh = DBI->connect('DBI:mysql:radius;host=localhost;port=3306',
               db_user, db_pass) or return RLM_MODULE_FAIL;
}

 

правда mysqladmin показывает больше колличество коннектов от самого радиуса чем от скрипта, правда в скрипте не для всех функций радиуса используется, только authorize и post_auth

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

хмм у меня коннект в

sub CLONE(){
       $dbh = DBI->connect('DBI:mysql:radius;host=localhost;port=3306',
               db_user, db_pass) or return RLM_MODULE_FAIL;
}

 

правда mysqladmin показывает больше колличество коннектов от самого радиуса чем от скрипта, правда в скрипте не для всех функций радиуса используется, только authorize и post_auth

что-то я не видел в примерах stub CLONE для rlm_perl freeradius2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

что-то я не видел в примерах stub CLONE для rlm_perl freeradius2

 

значит надо искать не в примерах :) не помню откуда взял, давно было. Быстрей всего с freeradius-users лист.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

значит надо искать не в примерах :) не помню откуда взял, давно было. Быстрей всего с freeradius-users лист.

в src/modules/rlm_perl/example.pl из исходников freeradius'а

 

# If you are using DBI and do some queries to DB, please be sure to
# use the CLONE function to initialize the DBI connection to DB.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

значит надо искать не в примерах :) не помню откуда взял, давно было. Быстрей всего с freeradius-users лист.

в src/modules/rlm_perl/example.pl из исходников freeradius'а

 

# If you are using DBI and do some queries to DB, please be sure to
# use the CLONE function to initialize the DBI connection to DB.

ok, спасибо, там еще не смотрел :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.