web-dev-qa-db-ja.com

eJabberd:サーバーの再起動後に部屋の履歴が消去されます

Ejabberdサーバーを正常にデプロイし、モバイルアプリケーションと統合しました。

すべてがうまく機能しますが、サーバーを再起動するたびに、すべての部屋の履歴が失われます。実際には、それはまだデータベースに保存されていますが、クライアントはそれを取得できなくなりました。

最初はクライアントの問題だと思っていましたが、XabberやPidginなどの有名なクライアントを使用して同じことを経験しました。

構成チュートリアルを何度もチェックしました https://docs.ejabberd.im/admin/configuration/#mod-muc しかし、何も見つかりませんでした。

あなたたちに似たようなことが起こったことがありますか?この予期しない動作の背後にある理由は何でしょうか?

サーバーでmoc_mucを構成する方法は次のとおりです。

mod_muc:
    Host: "conf.example.com"
    history_size: 1000
    max_users: 1000000
    max_user_conferences: 1000
    default_room_options:
      mam: true
      max_users: 1000000
      members_by_default: true
      members_only: false
      password_protected: false
      persistent: true
      public: true
      moderated: false
      anonymous: false
1
pAkY88

サーバーを再起動するたびに、すべての部屋の履歴が失われます。

部屋の最近のディスカッション履歴は、永続的に保存されることは想定されていないため、RAMにのみ保存されます。オプションhistory_sizeで構成されており、新しい居住者が最近のコメントを知ることしかできないため、高い値を設定しても意味がありません。現在の議論で。ロギング用でも、ストレージ用でも、アーカイブ用でもありません。現在の会話が何であるかを知るだけです。 https://xmpp.org/extensions/xep-0045.html#enter-history を参照してください

実際には、それはまだデータベースに保存されていますが、クライアントはそれを取得できなくなりました。

データベースに技術的に保存されているのは、前述の部屋の「ディスカッション履歴」ではありません。これは、mamオプションで有効にしたルームディスカッションアーカイブです。これにより、すべてのルームメッセージが永続的にデータベースに保存されます。そのため、将来いつでも相談することができます。 https://docs.ejabberd.im/admin/configuration/#mod-mam を参照してください

2
Badlop