<div dir="ltr">It is. For example the mappings between Jabber IDs of various kinds (user, chatroom, etc) and process IDs are kept in Mnesia tables which are distributed - in fact this is really the core of how clustered ejabberd works. So I will really need to do something here.<div>
<br></div><div style>A brief past experiment suggested that ejabberd did not take kindly to a Mnesia restart on a live node - I think I will have to restart the node.</div><div style><br></div><div style>A related question while I'm thinking of it - are there any modules out there that can hook into the error logger (or configuration options in the error logger) and do something different with certain log messages - for example send them by email?</div>
<div style><br></div><div style>Dan</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, May 3, 2013 at 12:02 PM, Michael Truog <span dir="ltr"><<a href="mailto:mjtruog@gmail.com" target="_blank">mjtruog@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>The only solution seems to be
<a href="https://github.com/uwiger/unsplit" target="_blank">https://github.com/uwiger/unsplit</a> usage where you manually resolve
any conflicts. Someone may already have integration with ejabberd
that is available, but the problem of which side of the nodesplit
to take should be error-prone, difficult, and sometimes impossible
(depending on the data stored). I think it is simpler to just
hookup ejabberd to postgres or mysql instead of the mnesia usage.
There still remains mnesia usage internally, but I don't think the
internal mnesia usage that doesn't go to postgres or mysql is
distributed (would be good to check).<div><div class="h5"><br>
<br>
On 05/03/2013 08:32 AM, Daniel Dormont wrote:<br>
</div></div></div>
<blockquote type="cite"><div><div class="h5">
<div dir="ltr">Hi Erlangers,
<div><br>
</div>
<div>I'm running ejabberd with a two-node cluster in my
production environment. Today that system encountered a
netsplit. It was properly recorded and logged. But I need to
work on some way to automate a solution for this. I'm aware
that the problem can't be solved in general, but there are two
mitigating factors in my case:</div>
<div><br>
</div>
<div>1 - Almost all of my tables are RAM-only.</div>
<div>2 - None of the data are truly critical for me. That is,
loss of some portion of the data isn't critical because my
application can recover.</div>
<div><br>
</div>
<div>So in this case, I just picked a node, restarted ejabberd
on it, and all is well. But what I'd like to do is write some
actual Erlang code that can subscribe to the Mnesia
partitioned network event and do something about it. What are
my options there?</div>
<div><br>
</div>
<div>thanks,</div>
<div>Dan</div>
</div>
<br>
<fieldset></fieldset>
<br>
</div></div><div class="im"><pre>_______________________________________________
erlang-questions mailing list
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a>
</pre>
</div></blockquote>
<br>
</div>
</blockquote></div><br></div>