I have a cluster with two nodes, they are: node1 and node2. User1 has been connected to node1, user2 connected to node2. There is a channel between two nodes which often fails. After the channel failure the user1 has access to user2 and is able to send him messages. After re-connection, the user2 don't receive any messages from user1 sent while channel disconnected. Besides, on re-connection nodes have no access to each other until reset one of it (restart service ejabber). What should be done for the messages to be received after channel re-connection/failure and the nodes to have access without reset function?
Connection Failure
I'm touching in the dark here, and I hope I don’t talk to much nonsense.
Did you change the location of where the Mnesia tables are stored after creating the cluster? If I remember correctly all except for "schema" uses a "remote copy", if the connection between the two nodes brake, the second node won’t be able to write any offline messages to the first node where the tables are persisted to disk.
Can someone please indicate the best practice to setup the replication and where to store these tables, I'm not sure if mine is setup correctly. I changed the additional nodes to be the same as the first node.
I’m using the ODBC modules, therefore our offline messages are not dependant on the Mnesia tables, and I haven’t seen the situation you mentioned.
The startup parameters, are they exactly the same on the two nodes?
When you run into this situation, open the webadmin console on both nodes, do both nodes show as running from both the consoles?
I’ve seen this “split brain” as well, and the only way to get them up was to restart the service.
Location of tables
Startup parameters are the same.
All of tables has been replicated because I want users of other node to be able to send-receive messages from each other (on that node) when channel is down. It works. But after channel failure all users of other node are "online" for users of this node and messages are going to space.
After reconnecting channel nodes are invisible from each other and webadmin console says the same.