Clustering on OpenFire 3.7.1

Do both servers have to have the same name? Is that why when i install the cluster plugin and enable it , it then renames the other servername the same as the one is just enabled it on? I dont know if i have clustering working. I can only see 1 server in my cluster list and if i try to restart the openfire service i get tons of errors. I have OF 3.7.1 on WIN2K8R2 on two separate servers with an external db with coherence.jar, -work.jar and tangosol.jar in the openfire lib. I cant seem to get these servers communicating correctly while keeping a stable environment. Has anyone been able to get Clustering Plugin working on OpenFire 3.7.1?

I’ve never tried Openfire on Windows, but on Linux the hostnames need to be different and it doesn’t ‘change’ anything when it clusters the app. Did you try to start one at a time and verifying that the hostname in the cluster info table matches the name of the box it is running on.

I’m assuming you’re running Coherence 3.3, since you mention tangosol.jar - Did you copy the xml config files out of the plugin directory into openfire\lib as explained in the above links?

Yeah both server names are different and i am running 3.3 and i copied the xml int the /lib dir. Still breaking after service restart and cant see other openfire server. Can someone layout the full install steps for a win server i just want to get this thing up and running .

Thanks

Can you paste your errors (ideally nohup.out) into pastie.org or something? Might be a simple problem.

You have windows firewall disabled, right?

I am having two sets of errors on reboot of OF service after clustering has been enabled. The first is I cant log into the admin console.

Exception:

java.lang.NoClassDefFoundError: Could not initialize class org.jivesoftware.openfire.lockout.LockOutManager$LockOutManagerContainer

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)

The second is the error log

2012.02.16 09:05:53 org.jivesoftware.openfire.cluster.ClusterManager - Unable to access backing cache for Routing User Sessions. BackingMapManager is a com.tangosol.net.DefaultConfigurableCacheFactory$Manager and backing map is com.tangosol.net.cache.LocalCache

java.lang.IllegalStateException: Unable to access backing cache for Routing User Sessions. 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:106)

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

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

at org.jivesoftware.util.cache.CacheFactory.joinedCluster(CacheFactory.java:674)

at org.jivesoftware.openfire.cluster.ClusterManager$1.run(ClusterManager.java:61)

Hey @tropicaldev , what do you mean you

"- locate coherence-cache-config.xml inside the clustering.jar

and put it inside coherence.jar (replacing the default one)"

Do you open the clustering.jar with a tool and edit it somehow?

Use the ‘jar’ command from a JDK to expand it, replace the file, then bundle it back up again.

What is a good tool to expand and bundle it back up? Can you upload the clustering.jar with the locate coherence-cache-config.xml in it? When the clustering.jar has that coherence-cache-config.xml it should work correctly? Will the admin console still be broken by java when i replace the coherence-cache-config.xml and restart the service ?

I’ve followed these instructions for a 2-node cluster on Windows and they basically work.

If things seem to be working except that the nodes don’t join the same cluster, it’s probably because they can’t reach each other via IP multicast. In my case that meant plugging one machine into a different network port to ensure both were on the same subnet. If you don’t know whether IP multicast is enabled for your network or what restrictions apply, consult your IT folks.

I **still **see the ClassCastException when navigating to the Users/Groups tab. So far I don’t know of a fix/workaround for that.

Well sir i have installed the Openfire 3.7.0 after removing the 3.7.1 installation of openfire server…

and the clustering is working now…

and tell me what will the procedure to create the another slave node in the openfire cluster ???

as even after not adding a single node i am seein 4 instaces of the Server…so is it with the same IP Address…i am trying to attach an screenshot but it gives me an error

So please help for the same

Hi,

Earlier I followed the same Eitan provided steps to enable the clustering-1.2.1 and was able to work successfully. But today when I enabled the clustering from admin console the 2 nodes are not appearing as part of clustering in the Cluster Overview. Only one node is appearing in Cluster overview from each admin console. I verified whether the IP Multicast is enabled or not on 2 node machines, it is enabled.

Please let me know how to bring back these 2 nodes into clustering again.

Thanks,

Did you try shutting it all down and restarting it, leaving clustering enabled before you do so? Coherence will log into nohup.out, so you can see what it is doing there.

David,

Please see the logs into nohup.out:

Node 1:

=====

log4j:WARN No appenders could be found for logger (org.jivesoftware.util.log.util.CommonsLogFactory).

log4j:WARN Please initialize the log4j system properly.

Openfire 3.7.1 [Jun 18, 2012 6:23:23 AM]

Admin console listening at:

http://usclssoat287:9090

https://usclssoat287:9091

Starting Clustering Plugin

Starting Class Loader…

Starting to join Cluster…

2012-06-18 06:23:25.149 Oracle Coherence 3.3.1/389 (thread=pool-11-thread-1, member=n/a): Loaded operational configuration from resource “jar:file:/opt/openfire/lib/coherence.jar!/tangosol-coherence.xml”

2012-06-18 06:23:25.155 Oracle Coherence 3.3.1/389 (thread=pool-11-thread-1, member=n/a): Loaded operational overrides from resource “jar:file:/opt/openfire/lib/coherence.jar!/tangosol-coherence-override-dev.xml”

2012-06-18 06:23:25.156 Oracle Coherence 3.3.1/389 (thread=pool-11-thread-1, member=n/a): Loaded operational overrides from file “/tangosol-coherence-override.xml”

Oracle Coherence Version 3.3.1/389

Grid Edition: Development mode

Copyright © 2000-2007 Oracle. All rights reserved.

2012-06-18 06:23:25.465 Oracle Coherence GE 3.3.1/389 (thread=pool-11-thread-1, member=n/a): UnicastUdpSocket failed to set receive buffer size to 1428 packets (2096304 bytes); actual size is 178 packets (262144 bytes). Consult your OS documentation regarding increasing the maximum socket buffer size. Proceeding with the actual value may cause sub-optimal performance.

2012-06-18 06:23:25.600 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-18 06:23:46.928 Oracle Coherence GE 3.3.1/389 (thread=Cluster, member=n/a): Created a new cluster with Member(Id=1, Timestamp=2012-06-18 06:23:25.474, Address=204.26.136.156:8088, MachineId=24220, Location=process:5149@usclssoat287, Edition=Grid Edition, Mode=Development, CpuCount=2, SocketCount=2) UID=0xCC1A889C00000137FF1E4F225E9C1F98

Checking the size of the cluster…

Room in the cluster…whoohoo!

Attempting to get cluster opt-$cacheStat cache…

2012-06-18 06:23:47.004 Oracle Coherence GE 3.3.1/389 (thread=pool-11-thread-1, member=1): Loaded cache configuration from resource “file:/opt/openfire/plugins/clustering/coherence-cache-config.xml”

2012-06-18 06:23:47.134 Oracle Coherence GE 3.3.1/389 (thread=ReplicatedCache, member=1): Service ReplicatedCache joined the cluster with senior service member 1

2012-06-18 06:23:47.191 Oracle Coherence GE 3.3.1/389 (thread=Invocation:OpenFire Cluster Service, member=1): Service OpenFire Cluster Service joined the cluster with senior service member 1

State of cluster is started

Get local members…

Get Oldest Loader…

Attempting to set the NodeID in XMPPServer…

Trigger Cluster Events…

2012-06-18 06:23:47.341 Oracle Coherence GE 3.3.1/389 (thread=DistributedCache, member=1): Service DistributedCache joined the cluster with senior service member 1

CacheFactory is now using clustered caches…

Add clusterListener…

Is Senior Member? true

Joining cluster as node: 0xCC1A889C00000137FF1E4F225E9C1F98. Senior Member: YES

Finished loading Clustering plugin. Cluster started: SafeCluster: Name=n/a

Group{Address=224.3.3.1, Port=32386, TTL=4}

MasterMemberSet

(

ThisMember=Member(Id=1, Timestamp=2012-06-18 06:23:25.474, Address=204.26.136.156:8088, MachineId=24220, Location=process:5149@usclssoat287)

OldestMember=Member(Id=1, Timestamp=2012-06-18 06:23:25.474, Address=204.26.136.156:8088, MachineId=24220, Location=process:5149@usclssoat287)

ActualMemberSet=MemberSet(Size=1, BitSetCount=2

Member(Id=1, Timestamp=2012-06-18 06:23:25.474, Address=204.26.136.156:8088, MachineId=24220, Location=process:5149@usclssoat287)

)

RecycleMillis=120000

RecycleSet=MemberSet(Size=0, BitSetCount=0

)

)

Services

(

TcpRing{TcpSocketAccepter{State=STATE_OPEN, ServerSocket=204.26.136.156:8088}, Connections=[]}

ClusterService{Name=Cluster, State=(SERVICE_STARTED, STATE_JOINED), Id=0, Version=3.3, OldestMemberId=1}

ReplicatedCache{Name=ReplicatedCache, State=(SERVICE_STARTED), Id=1, Version=3.0, OldestMemberId=1}

InvocationService{Name=OpenFire Cluster Service, State=(SERVICE_STARTED), Id=2, Version=3.1, OldestMemberId=1}

DistributedCache{Name=DistributedCache, State=(SERVICE_STARTED), Id=3, Version=3.2, OldestMemberId=1, LocalStorage=enabled, PartitionCount=257, BackupCount=1, AssignedPartitions=257, BackupPartitions=0}

)

Node2 :

=====

Openfire 3.7.1 [Jun 18, 2012 6:28:32 AM]

Admin console listening at:

http://usclssoat287:9090

https://usclssoat287:9091

Starting Clustering Plugin

Starting Class Loader…

Starting to join Cluster…

2012-06-18 06:28:34.651 Oracle Coherence 3.3.1/389 (thread=pool-11-thread-1, member=n/a): Loaded operational configuration from resource “jar:file:/opt/openfire/lib/coherence.jar!/tangosol-coherence.xml”

2012-06-18 06:28:34.654 Oracle Coherence 3.3.1/389 (thread=pool-11-thread-1, member=n/a): Loaded operational overrides from resource “jar:file:/opt/openfire/lib/coherence.jar!/tangosol-coherence-override-dev.xml”

2012-06-18 06:28:34.655 Oracle Coherence 3.3.1/389 (thread=pool-11-thread-1, member=n/a): Loaded operational overrides from file “/tangosol-coherence-override.xml”

Oracle Coherence Version 3.3.1/389

Grid Edition: Development mode

Copyright © 2000-2007 Oracle. All rights reserved.

2012-06-18 06:28:34.977 Oracle Coherence GE 3.3.1/389 (thread=pool-11-thread-1, member=n/a): UnicastUdpSocket failed to set receive buffer size to 1428 packets (2096304 bytes); actual size is 178 packets (262144 bytes). Consult your OS documentation regarding increasing the maximum socket buffer size. Proceeding with the actual value may cause sub-optimal performance.

2012-06-18 06:28:35.158 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-18 06:28:56.475 Oracle Coherence GE 3.3.1/389 (thread=Cluster, member=n/a): Created a new cluster with Member(Id=1, Timestamp=2012-06-18 06:28:34.987, Address=204.26.136.113:8088, MachineId=24177, Location=process:18418@usclssoat285, Edition=Grid Edition, Mode=Development, CpuCount=2, SocketCount=2) UID=0xCC1A887100000137FF23082B5E711F98

Checking the size of the cluster…

Room in the cluster…whoohoo!

Attempting to get cluster opt-$cacheStat cache…

2012-06-18 06:28:56.523 Oracle Coherence GE 3.3.1/389 (thread=pool-11-thread-1, member=1): Loaded cache configuration from resource “file:/opt/openfire/plugins/clustering/coherence-cache-config.xml”

2012-06-18 06:28:56.588 Oracle Coherence GE 3.3.1/389 (thread=ReplicatedCache, member=1): Service ReplicatedCache joined the cluster with senior service member 1

2012-06-18 06:28:56.621 Oracle Coherence GE 3.3.1/389 (thread=Invocation:OpenFire Cluster Service, member=1): Service OpenFire Cluster Service joined the cluster with senior service member 1

State of cluster is started

Get local members…

Get Oldest Loader…

Attempting to set the NodeID in XMPPServer…

Trigger Cluster Events…

2012-06-18 06:28:56.739 Oracle Coherence GE 3.3.1/389 (thread=DistributedCache, member=1): Service DistributedCache joined the cluster with senior service member 1

CacheFactory is now using clustered caches…

Add clusterListener…

Is Senior Member? true

Joining cluster as node: 0xCC1A887100000137FF23082B5E711F98. Senior Member: YES

Finished loading Clustering plugin. Cluster started: SafeCluster: Name=n/a

Group{Address=224.3.3.1, Port=32386, TTL=4}

MasterMemberSet

(

ThisMember=Member(Id=1, Timestamp=2012-06-18 06:28:34.987, Address=204.26.136.113:8088, MachineId=24177, Location=process:18418@usclssoat285)

OldestMember=Member(Id=1, Timestamp=2012-06-18 06:28:34.987, Address=204.26.136.113:8088, MachineId=24177, Location=process:18418@usclssoat285)

ActualMemberSet=MemberSet(Size=1, BitSetCount=2

Member(Id=1, Timestamp=2012-06-18 06:28:34.987, Address=204.26.136.113:8088, MachineId=24177, Location=process:18418@usclssoat285)

)

RecycleMillis=120000

RecycleSet=MemberSet(Size=0, BitSetCount=0

)

)

Services

(

TcpRing{TcpSocketAccepter{State=STATE_OPEN, ServerSocket=204.26.136.113:8088}, Connections=[]}

ClusterService{Name=Cluster, State=(SERVICE_STARTED, STATE_JOINED), Id=0, Version=3.3, OldestMemberId=1}

ReplicatedCache{Name=ReplicatedCache, State=(SERVICE_STARTED), Id=1, Version=3.0, OldestMemberId=1}

InvocationService{Name=OpenFire Cluster Service, State=(SERVICE_STARTED), Id=2, Version=3.1, OldestMemberId=1}

DistributedCache{Name=DistributedCache, State=(SERVICE_STARTED), Id=3, Version=3.2, OldestMemberId=1, LocalStorage=enabled, PartitionCount=257, BackupCount=1, AssignedPartitions=257, BackupPartitions=0}

)

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?