Clustering on OpenFire 3.7.1

Firewall problem? Are they are on the same subnet? Is port 8088 for both UDP and TCP open on the firewall?

Can each node see the port 8088 traffic from the other one? Use tcpdump or wireshark to look.

Basically your problem is they can’t ‘see’ each other.

Thanks David.

There are no firewalls between these 2 machines and on the same subnet. But still not sure why today when i enabled clustering they are not appearing as part of clustering.

Do you see port 8088 traffic from the other node on either of them? It’s a network or firewall issue.

hi,everyone!

I want to set two cluster of my openfire server and I exactly follow @Eitan’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 OS

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)

  • First I uninstalled and installed Openfire 3.7.1 on 2 nodes and followed the same Eitan provided steps to enable theclustering-1.2.1

.Notable to login to admin console once I enabled the clustering and I am getting below mentioned exceptions.

Later I changed the clustering status from true to false in …/openfire/conf/openfire.xml and then I am able to loginto admin console.

Earlier I didn’t face this type of exceptions when I enabled clustering.

Exception:

java.lang.ExceptionInInitializerError

at org.jivesoftware.openfire.lockout.LockOutManager.getInstance(LockOutManager.jav a:73)

at org.jivesoftware.openfire.auth.AuthFactory.authenticate(AuthFactory.java:172)

at org.jivesoftware.openfire.admin.login_jsp._jspService(login_jsp.java:149)

at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)

at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:530)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1216)

at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:39)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1187)

at org.jivesoftware.util.LocaleFilter.doFilter(LocaleFilter.java:74)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1187)

at org.jivesoftware.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingF ilter.java:50)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1187)

at org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:78)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1187)

at org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:164)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1187)

at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:425)

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)

at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:494)

at org.eclipse.jetty.server.session.SessionHandler.handle(SessionHandler.java:182)

at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:93 3)

at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:362)

at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:867 )

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)

at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandler Collection.java:245)

at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.jav a:126)

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:113)

at org.eclipse.jetty.server.Server.handle(Server.java:334)

at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:559)

at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.j ava:1007)

at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:747)

at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:209)

at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:406)

at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:4 62)

at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:436)

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

Caused by: java.lang.IllegalStateException: Unable to access backing cache for Locked Out Accounts. BackingMapManager is a com.tangosol.net.DefaultConfigurableCacheFactory$Manager and backing map is com.tangosol.net.cache.LocalCache

at com.jivesoftware.util.cache.ClusteredCache.init(ClusteredCache.java:107)

at com.jivesoftware.util.cache.ClusteredCache.(ClusteredCache.java:60)

at com.jivesoftware.util.cache.CoherenceClusteredCacheFactory.createCache(Coherenc eClusteredCacheFactory.java:208)

at org.jivesoftware.util.cache.CacheFactory.createCache(CacheFactory.java:346)

at org.jivesoftware.openfire.lockout.LockOutManager.(LockOutManager.java:85)

at org.jivesoftware.openfire.lockout.LockOutManager.(LockOutManager.java:46)

at org.jivesoftware.openfire.lockout.LockOutManager$LockOutManagerContainer.(LockO utManager.java:52)

… 37 more

Are you running it on Linux? If you are, send me a PM and I’ll tar up my /opt/openfire that works and send it to you.

I added the xml file to the jar using the jar uf coherence.jar “Dir of XML”

Added just fine restarted the server and still having same issue. Anyone resolve this yet?