Patent ID: 6877107

Claim:
For a message system for delivering data in the form of messages between message clients, the message system comprising a server cluster containing a group of message manager nodes with means for storing and distributing messages a method for ensuring operation during node failures and network partitioning, the method comprising: Maintaining, in each running message manager node, a cluster state data set comprising information about the nodes present in the cluster Repeatedly evaluating, in each running one of said message manager nodes, a view state data set comprising information about the server nodes able to communicate with said message manager node, Comparing said cluster state data set with said view state data set and evaluating if all message managers are able to communicate with said message manager node, If not all message managers are able to communicate with said message manager node, determining an operational state for point-to-point style messaging out of at least two different states, where a first one of said at least two different states is an unrestricted state for normal operation, the message managers being in said unrestricted state being allowed to dispatch point-to-point messages sent both prior to and since the last change of the view state of the current network, and a second one of said two different states is a restricted state, the message managers being in said restricted state not being allowed to dispatch point-to-point messages sent prior to the last change of the view state of the current network, and where the operational state is determined in a manner that of any two message manager nodes that are responsible for dispatching the same point-to-point messages not being able to communicate with each other, at most one can be in an unrestricted operational state.