Hi again, Sorry, I made a mistake: of course, isExternal() returns "true" for all but one cluster node, namely the active one.
Kind regards Dominique On 3/7/07, Dominique Pfister <[EMAIL PROTECTED]> wrote:
Hi Noah, Jackrabbit's implementation of javax.jcr.observation.Event, namely org.apache.jackrabbit.core.observation.EventImpl has a public method called "isExternal()" that will return "true" if your EventListener is registered in the "active" cluster node, i.e. the one making the change, and "false" for all the passive ones. May be that helps? Apart from that, it is currently not possible to register a "deliver-exactly-once" EventListener in a cluster. Kind regards Dominique On 3/6/07, Noah Vihinen <[EMAIL PROTECTED]> wrote: > Suppose I would like to construct an EventListener that makes some > persistent change to the repository as a result of some type of node > being added. For example, the event listener may create a new node > of a different type, or set some properties. How do I ensure that > only one JCR server within the cluster processes the NODE_ADDED > event, so the resultant persistent change only happens once? > > Is the only solution to add logic to my event listener to determine > whether or not it should proceed with the persistent change? > Further, if this is the case, are there any plans to make event > handling more efficient in the future, so only one node in the > cluster will receive notification of a particular event? > > Thanks, > Noah >