freeswitch sqlite3 死锁解决方案 database is locked

我觉得这个应该是 freeswitch 的bug,在达到 几百并发的时候 所有都正常,数据表死锁

后来看了 官网的(https://freeswitch.org/confluence/display/FREESWITCH/Using+ODBC+in+the+core) 替换方案 算是一种解决方案吧,请看下方


首先需要安装 

apt-get install unixodbc-dev libmyodbc

1,

文件名  odbc.ini  更改一下

[freeswitch]
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
Driver=MySQL
SERVER =1.1.1.1
PORT =3306
DATABASE = freeswitch
USER = freeswitch
OPTION  =67108864
PASSWORD = 123456


文件名   odbcinst.ini 更改一下
[MySQL]
Description = MySQL driver
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
UsageCount = 1
FileUsage = 1
Threading = 0

----------------------------------------分隔符


测试数据库是否配置成功



isql -v freeswitch

2,

首先要让您的 freeswitch支持odbc 重要的事情说三遍

打开freeswitch odbc接口,并从新编译,安装 

打开 modules.conf 里面的释放出来

snapshot 

../../contrib/mod/xml_int/mod_xml_odbc

开始您的编译吧

./configure --enable-core-odbc-support 

make && make install 

3,

配置模块DSN

配置主程序和部分模块使用ODBC, 如果有新加模块, 请参考以下自行配置.

1.修改conf/autoload_configs中的db.conf.xml文件 
freeswitch:root:123456"/> 


2. 修改conf/autoload_configs中的switch.conf.xml 
修改字段

添加
freeswitch:root:123456"/>


3.修改conf/autoload_configs中的voicemail.conf.xml 
修改字段freeswitch:root:123456"/> 

4.修改conf/autoload_configs中的callcenter.conf.xml 
freeswitch:root:123456"/>

5.修改conf/sip_profiles中的internal.xml 和external.xml,internal-ipv6.xml

freeswitch:root:123456"/> 


备注: 其他模块请搜索odbc-dsn.


测试
rm -f /usr/local/freeswitch/db/*.db
./freeswitch -c -nonat -rp

查看控制台是否有错误

进入目录/usr/local/freeswitch/db
查看是否有新的文件生成, 如果有则确定文件是哪个模块生成, 修改模块DSN配置.

这是我的配置 


freeswitch sqlite3 死锁解决方案 database is locked_第1张图片

你可能感兴趣的:(freeswitch)