Всем привет.
Долго мучился с настройкой данной связки. Сам ODBC отрабатывал нормально, но asterisk в упор не подключался к БД. В Итоге почти случайно заметил, что * ругается на то, что limit => 0 в res_odbc.conf Как только выставил в 1, то все прошло. Щас выглядит так:
/etc/odbcinst.ini
[MySQL]
Description = ODBC for MySQL
Driver64 = /usr/lib64/libmyodbc3_r.so
Setup64 = /usr/lib64/libodbcmyS.so
FileUsage = 1
UsageCount = 3
/etc/odbc.ini
[asterisksrc]
Driver = MySQL
Socket = /var/lib/mysql/mysql.sock
Server = localhost
User = asterisk
Pass = asterisk
Database = asterisk
[asterisk]
enabled => yes
dsn => asterisksrc
username => asterisk
password => asterisk
pooling => no
limit => 1
pre-connect => yes
[MYTEST]
dsn=asterisk
readsql=SELECT STATUS FROM blacklist WHERE CALLERID='${SQL_ESC(${ARG1})}'
Какое значение лучше ставить у limit? Насколько я понял он ограничивает кол-во одновременных подключений.
На сколько помню астериск держит это соединение постоянно открытым, все обращения идут через него. Поэтому вроде как нет никакого смысла в значении больше единицы. Однако я не знаю как в коде это все организовано, может быть астериск делает по одному соединению на модуль или процесс, возможно в какие-то определенные моменты. В любом случае поставьте хоть 100, хуже точно не станет.
при pooling=no количество соединений = max одновременных запросов.
с pooling=yes это будет количество открытых соединений в пуле.
в любом случае судя по вашим вопросам система не будет работать как высоконагруженная и вы может спокойно ставить 5 и забыть про параметр.
Задан: 2013-03-09 17:50:26 +0400
Просмотрен: 572 раз
Обновлен: Mar 09 '13
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.