OpenFire3.7.1 Cluster Error

hi,everyone!

I want to set two cluster of my openfire server and I exactly follow http://community.igniterealtime.org/message/223148#223148 @Eitan Ben’s Steps to set the cluster. now I can see the two server in Cluster Overview.but when I start the two server,I got the follow error.can anyone help me?thanks very much! by the way,my server are all WinServer2008R2

Openfire 3.7.1 [Jun 19, 2012 10:12:37 AM]

Admin console listening at:

http://dgtest01:9090

https://dgtest01:9091

Starting Clustering Plugin

2012-06-19 10:12:39.240 Oracle Coherence 3.3.1/389 (thread=pool-8-thread-1, member=n/a): Loaded operational configuration from resource “jar:file:/C:/Program%20Files%20(x86)/Openfire/lib/coherence.jar!/tangosol-cohe rence.xml”

2012-06-19 10:12:39.240 Oracle Coherence 3.3.1/389 (thread=pool-8-thread-1, member=n/a): Loaded operational overrides from resource “jar:file:/C:/Program%20Files%20(x86)/Openfire/lib/coherence.jar!/tangosol-cohe rence-override-dev.xml”

2012-06-19 10:12:39.240 Oracle Coherence 3.3.1/389 (thread=pool-8-thread-1, member=n/a): Loaded operational overrides from file “C:\tangosol-coherence-override.xml”

Oracle Coherence Version 3.3.1/389

Grid Edition: Development mode

Copyright © 2000-2007 Oracle. All rights reserved.

2012-06-19 10:12:39.787 Oracle Coherence GE 3.3.1/389 (thread=Cluster, member=n/a): Service Cluster joined the cluster with senior service member n/a

2012-06-19 10:12:39.990 Oracle Coherence GE 3.3.1/389 (thread=Cluster, member=n/a): This Member(Id=2, Timestamp=2012-06-19 10:12:36.916, Address=172.17.37.74:8088, MachineId=38986, Location=process:8800@DGQEAP03, Edition=Grid Edition, Mode=Development, CpuCount=1, SocketCount=1) joined cluster with senior Member(Id=1, Timestamp=2012-06-19 09:42:47.339, Address=172.17.36.172:8088, MachineId=39340, Location=process:1844@dgtest01, Edition=Grid Edition, Mode=Development, CpuCount=1, SocketCount=1)

2012-06-19 10:12:40.037 Oracle Coherence GE 3.3.1/389 (thread=Cluster, member=n/a): Member 1 joined Service ReplicatedCache with senior member 1

2012-06-19 10:12:40.037 Oracle Coherence GE 3.3.1/389 (thread=Cluster, member=n/a): Member 1 joined Service OpenFire Cluster Service with senior member 1

2012-06-19 10:12:40.037 Oracle Coherence GE 3.3.1/389 (thread=Cluster, member=n/a): Member 1 joined Service DistributedCache with senior member 1

2012-06-19 10:12:40.068 Oracle Coherence GE 3.3.1/389 (thread=pool-8-thread-1, member=2): Loaded cache configuration from resource “jar:file:/C:/Program%20Files%20(x86)/Openfire/lib/coherence.jar!/coherence-cac he-config.xml”

2012-06-19 10:12:40.131 Oracle Coherence GE 3.3.1/389 (thread=ReplicatedCache, member=2): Service ReplicatedCache joined the cluster with senior service member 1

2012-06-19 10:12:40.193 Oracle Coherence GE 3.3.1/389 (thread=Invocation:OpenFire Cluster Service, member=2): Service OpenFire Cluster Service joined the cluster with senior service member 1

2012-06-19 10:12:40.287 Oracle Coherence GE 3.3.1/389 (thread=DistributedCache, member=2): Service DistributedCache joined the cluster with senior service member 1

2012-06-19 10:12:40.318 Oracle Coherence GE 3.3.1/389 (thread=DistributedCache, member=2): Service DistributedCache: received ServiceConfigSync containing 273 entries

2012-06-19 10:12:40.350 Oracle Coherence GE 3.3.1/389 (thread=DistributedCache, member=2): Asking member 1 for 128 out of 128 primary partitions

2012-06-19 10:12:40.943 Oracle Coherence GE 3.3.1/389 (thread=TcpRingListener, member=2): TcpRing: connecting to member 1 using TcpSocket{State=STATE_OPEN, Socket=Socket[addr=/172.17.36.172,port=61917,localport=8088]}

2012-06-19 10:13:11.177 Oracle Coherence GE 3.3.1/389 (thread=Invocation:OpenFire Cluster Service, member=2): Failure to deserialize an Invocable object: java.io.IOException: readObject failed: java.lang.ClassNotFoundException: org.jivesoftware.openfire.reporting.stats.GetStatistics

at java.net.URLClassLoader$1.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Unknown Source)

at java.io.ObjectInputStream.resolveClass(Unknown Source)

at com.tangosol.io.ResolvingObjectInputStream.resolveClass(ResolvingObjectInputStr eam.java:68)

at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)

at java.io.ObjectInputStream.readClassDesc(Unknown Source)

at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)

at java.io.ObjectInputStream.readObject0(Unknown Source)

at java.io.ObjectInputStream.defaultReadFields(Unknown Source)

at java.io.ObjectInputStream.readSerialData(Unknown Source)

at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)

at java.io.ObjectInputStream.readObject0(Unknown Source)

at java.io.ObjectInputStream.readObject(Unknown Source)

at com.tangosol.util.ExternalizableHelper.readSerializable(ExternalizableHelper.ja va:2084)

at com.tangosol.util.ExternalizableHelper.readObject(ExternalizableHelper.java:220 2)

at com.tangosol.coherence.component.net.Message.readObject(Message.CDB:3)

at com.tangosol.coherence.component.util.daemon.queueProcessor.service.InvocationS ervice$InvocationRequest.read(InvocationService.CDB:8)

at com.tangosol.coherence.component.util.daemon.queueProcessor.Service.onNotify(Se rvice.CDB:110)

at com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:35)

at java.lang.Thread.run(Unknown Source)

ClassLoader: com.jivesoftware.util.cache.ClusterClassLoader@5d3ac0

java.io.IOException: readObject failed: java.lang.ClassNotFoundException: org.jivesoftware.openfire.reporting.stats.GetStatistics

at java.net.URLClassLoader$1.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Unknown Source)

at java.io.ObjectInputStream.resolveClass(Unknown Source)

at com.tangosol.io.ResolvingObjectInputStream.resolveClass(ResolvingObjectInputStr eam.java:68)

at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)

at java.io.ObjectInputStream.readClassDesc(Unknown Source)

at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)

at java.io.ObjectInputStream.readObject0(Unknown Source)

at java.io.ObjectInputStream.defaultReadFields(Unknown Source)

at java.io.ObjectInputStream.readSerialData(Unknown Source)

at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)

at java.io.ObjectInputStream.readObject0(Unknown Source)

at java.io.ObjectInputStream.readObject(Unknown Source)

at com.tangosol.util.ExternalizableHelper.readSerializable(ExternalizableHelper.ja va:2084)

at com.tangosol.util.ExternalizableHelper.readObject(ExternalizableHelper.java:220 2)

at com.tangosol.coherence.component.net.Message.readObject(Message.CDB:3)

at com.tangosol.coherence.component.util.daemon.queueProcessor.service.InvocationS ervice$InvocationRequest.read(InvocationService.CDB:8)

at com.tangosol.coherence.component.util.daemon.queueProcessor.Service.onNotify(Se rvice.CDB:110)

at com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:35)

at java.lang.Thread.run(Unknown Source)

ClassLoader: com.jivesoftware.util.cache.ClusterClassLoader@5d3ac0

at com.tangosol.util.ExternalizableHelper.readSerializable(ExternalizableHelper.ja va:2092)

at com.tangosol.util.ExternalizableHelper.readObject(ExternalizableHelper.java:220 2)

at com.tangosol.coherence.component.net.Message.readObject(Message.CDB:3)

at com.tangosol.coherence.component.util.daemon.queueProcessor.service.InvocationS ervice$InvocationRequest.read(InvocationService.CDB:8)

at com.tangosol.coherence.component.util.daemon.queueProcessor.Service.onNotify(Se rvice.CDB:110)

at com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:35)

at java.lang.Thread.run(Unknown Source)

I don’t have a fix for this, but I only experience it if I start two Openfire instances at the same time. If I start one, make sure it comes all the way up (e.g. it logs that it has formed a cluster in nohup.out), then I start the second instance, I don’t get this error.

If you get this error, it’s easy enough just to cycle the instances one at a time to clear it up.