2016-10-13 3 views
0

Я использую ejabberd-15.11. Каждое утро после запуска моего компьютера я проверяю журналы ejabberd и журналы ошибок с помощью putty. В то время я обычно получаю эту ошибку:Пожалуйста, объясните поток этой ошибки => ejabberd_odbc: log: 669 p1_mysql_conn: соединение закрыто, выход

[error] <0.5058.0>@ejabberd_odbc:log:663 p1_mysql_conn: Connection closed, exiting. 

Я знаю, что это происходит потому, что не было никаких запросов на сервер всю ночь и, следовательно, после некоторого заданного по умолчанию времени, сервер переходит в спящий режим. Но здесь я хочу знать, почему эта ошибка возникает? кто вызывает эту ошибку? Я хочу четко понять поток управления с самого начала, когда это условие происходит, а затем последующие действия, которые выполняются через функции. Я действительно хочу знать поток контроля через функции.

Я нашел, что в файле ejabberd_odbc.erl ошибка отображается в строке no: 663 в функции с именем log(Level, Format, Args), но я ищу функцию, из которой эта функция журнала вызывается, чтобы я мог подняться по лестнице и, наконец, может найти, как управляет поток.

ответ

1

Ошибка произошла из-за того, что MySQL закрыл соединение, как правило, из-за неактивности. ejabberd все равно подключится, так что это не проблема. Однако, если вы хотите, чтобы ejabberd создавал трафик, чтобы поддерживать связь в сети, вы можете использовать опцию sql_keepalive_interval, как описано в документации ejabberd: https://docs.ejabberd.im/admin/guide/configuration/#relational-databases

+0

Большое спасибо Sir @Mickael Remond. Я очень рад получить ответ напрямую от Основателя Process-one. Еще раз, спасибо. Сэр, у меня есть много вопросов, чтобы спросить об эяберберде. Не могли бы вы рассказать мне, где я могу общаться с вами по поводу моих вопросов ..? – user2376792