我使用 ejabberd 2.1.12。它似乎工作正常,但在日志中我不断收到 mysql 连接错误。我认为这是因为mod_roster_odbc
(根据这个线程,但我禁用了mod_roster
并且mod_shared_roster
没有任何改变)。
我在 ubuntu 12.04 上使用亚马逊 EC2。将一些用户连接到聊天后大约 2 分钟出现错误。
更新:我在这里找到了一些模式。当我连接少数用户(使用 adium)时,每隔几分钟就会出现这样的错误。这可能不取决于连接的用户数,因为两个和八个连接的用户是相同的。每个错误都是一个 mysql 连接,所以如果我收到 5 个错误,我有 5 个新连接,一段时间后它会回到初始连接数。
这是我的日志:
=ERROR REPORT==== 2013-05-09 19:52:55 ===
E(<0.585.0>:ejabberd_odbc:552) : mysql_conn: Received unknown signal, exiting : {mysql_recv,
<0.586.0>,
closed,
normal}
=INFO REPORT==== 2013-05-09 19:52:55 ===
I(<0.585.0>:ejabberd_odbc:550) : Closing connection #Port<0.3454>: ok
UPDATE2:我按照 giavac 的建议跟踪了 mysql 活动,当发生 ejabberd 错误时,我可以在 mysql 日志中看到这一点:
130511 9:35:28 17 Connect ejabberd@127.0.0.1 on
17 Query use ejabberd
17 Query set names 'utf8'
18 Connect ejabberd@127.0.0.1 on
18 Query use ejabberd
19 Connect ejabberd@127.0.0.1 on
18 Query set names 'utf8'
19 Query use ejabberd
19 Query set names 'utf8'
20 Connect ejabberd@127.0.0.1 on
20 Query use ejabberd
20 Query set names 'utf8'
我不知道它来自哪里以及为什么会导致错误。还有什么建议吗?