The following error is coming when i am adding clustering plugin to openfire
java.lang.NoClassDefFoundError: com/tangosol/net/Invocable
at java.lang.Class.forName0(Native Method)
some class is missing…
The following error is coming when i am adding clustering plugin to openfire
java.lang.NoClassDefFoundError: com/tangosol/net/Invocable
at java.lang.Class.forName0(Native Method)
some class is missing…
Oracle Coherence needs to be downloaded and it works fine
Hi Guys…
read the Clustering doc and it is easy to implement clustering…
though Oracle Coherence 3.3 is not available…on oracle site…some of well wishers provided me that
i will share the required jar files in my new discussion…
Its working now
hey
i am facing the same problem !!
but i am using mysql database !
how can i solve it ? please reply me
hi sherif
its very simple…just go through the help file…I am too using MySQL
I’ve gog the following problem with the clustering plugin based on coherence:
I’m using OpenFire 3.7.1, the latest clustering plugin from Ignite Realtime plugins page, and the 3 Jars of coherence you supplied here:
I got exception on server starup and something similar when logging into the server console:
On server startup the exception refers to “Routing User Sessions” cache.
I note that when the enabling the clustering on the console , the page on the console UI, is stayed waiting to the server. Only after changing to other tab and getting back to the clustering page, I saw that the clustring is enabled and the node was added to the list of clustered machines
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(Thread.java:636)
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: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.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
I haven’t tested with version 3.7.1 … it works for me in 3.7.0
Which plugin are you using? The 1.2.1 beta which was posted? Do you have the coherenec configs in / and lib?
pls use the jar files specified in this post
http://community.igniterealtime.org/message/213130#213130
for Openfire 3.7.0
other versions i havent tested
I am using those Coherence jar files. Still does not work. What version of the clustering plugin are you using? Or just the one which ships with 3.7.0?
Just the one that is available in openfire plugin downloads 1.2.0
I built a new Openfire environment
Openfire 3.7.0
Clustering Plugin 1.2.0
Coherence 3.3.1
Without the clustering plugin it works fine. When I downloaded and enabled the plugin via the admin console the web page just hung. I was able to go back to / and clustering was enabled. I started up the second node and both nodes communicated.
I shutdown both nodes, then started just one. My info.log has this only:
[root@dresproddns02 logs]# tail info.log
2011.11.17 09:57:30 Publish-Subscribe domain: pubsub.domain.com
2011.11.17 09:57:30 Multi User Chat domain: conference.domain.com
2011.11.17 09:57:30 Openfire 3.7.0 [Nov 17, 2011 9:57:30 AM]
2011.11.17 09:57:31 Admin console listening at https://domain.com:9091
It never gets to the point of listening on port 5222.
I can get into the admin console, but the user/group page fails with this:
Problem accessing /user-summary.jsp. Reason:
org.jivesoftware.util.cache.DefaultCache cannot be cast to com.jivesoftware.util.cache.ClusteredCache
So, I am curious how you got clustering working w/ 3.7.0 using the standard 1.2.0 clustering plugin. Care to share your magic?
Hi’
I’ve managed to run clusteing with OpenFire 3.7.0 ( didn’t check yet 3.7.1) with followibg steps:
tar -zxvf openfire_3_7_0.tar.gz
Copy the 3 cohernce 3.3.1 jars into the openfire lib folder: coherence.jar, coherence-work.jar, tangosol.jar
Remove coherence-cache-config.xml from coherence.jar
Create logs directory under root with full permissions to all.
Create the following empty files: error.log, warn.log, info.log, debug.log
Run openfire: bin/openfire. Verfy nohup.out has no errors.
Run admin console and setup.
In the Server Settings page, choose the same domain name for all servers in the cluster.
Skip the admin user setting page. The default is admin/admin. Changing the defaults might cause problems on login. You may get problems to login anyway.
copy clustering plugin (clustering.jar) version 1.2.1-beta into plugins directory.
Wait for the clustering folder be created under the plugins directory.
The plugin name should also appear in the Plugins tab at the console.
After the clustering plugin is installed by OpenFire server, go to plugins/clustering folder and copy from plugin/clustering/lib folder:
plugin-clustering.jar into OpenFire lib folder.
If this jar is missing an error “Failed to start or join an existing cluster.” will appear in the Console when enabling the clustering.
The following exception appears in /logs/error.log: java.lang.ClassNotFoundException: com.jivesoftware.util.cache.JiveConfigurableCacheFactory
coherence-cache-config.xml into OpenFire lib folder. ( Coud not find why this is important ).
There is a post saying this xml should be inserted into coherence.jar
tangosol-coherence-override.xm into root folder. You need root permissions for this.
If this file is missig, other nodes in the cluster will not appear in Cluster Overview in the Console, only this node )
Restart the server. To load clustering.jar from the lib folder.
Initiate the clustering in the console on the server tab clustering entry at the left.
Select the Enable radio button. after 30 secs a green message appears: “Clustering was enabled successfully”.
In the Clustering View pane you see all nodes in the cluster.
=======
Note: When using plugin 1.2.0
1: You can not Disable clustering
Problem accessing /user-summary.jsp. Reason:
org.jivesoftware.util.cache.DefaultCache cannot be cast to com.jivesoftware.util.cache.ClusteredCache
Caused by:
java.lang.ClassCastException: org.jivesoftware.util.cache.DefaultCache cannot be cast to com.jivesoftware.util.cache.ClusteredCache
at com.jivesoftware.util.cache.CoherenceClusteredCacheFactory.getLock(CoherenceClu steredCacheFactory.java:351)
at org.jivesoftware.util.cache.CacheFactory.getLock(CacheFactory.java:378)
at org.jivesoftware.openfire.spi.PresenceManagerImpl.loadOfflinePresence(PresenceM anagerImpl.java:551)
at org.jivesoftware.openfire.spi.PresenceManagerImpl.getLastActivity(PresenceManag erImpl.java:177)
at org.jivesoftware.openfire.admin.user_002dsummary_jsp._jspService(user_002dsumma ry_jsp.java:369)
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.parsePage(PageFilter.java:11 8)
at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:52)
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.headerComplete(HttpConne ction.java:992)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:541)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:203)
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(Thread.java:662)
Cool. That seems to work for me. Copying the plugin-clustering.jar into lib/ seems to be the crucial part of the process I was missing.
I’m going to try it with 3.7.1 too, although 3.7.0 works great.
Thanks!!
The release note of the plugin also explains the same…(readme.html) before each plugin…download page
Agreed, but it doesn’t tell you to copy plugin-clustering.jar to openfire’s lib directory - That seems to be catching a few people out.
Of course, you’d think it would load the jar from clustering/lib, so maybe there is a different issue.
**Re: Clustering on OpenFire 3.7.1 **
Never found nothing saying to copy clustering to openfire lib dir…in fact i didn’t and it’s working for winxp and win7
i managed to get it working in both 3.7.0 and 3.7.1 in winxp and win7 like this
Im using these files:
clustering plugin (beta 1.2.1) for openfire 3.7.0
http://community.igniterealtime.org/message/211437#211437* *
Oracle coherence 3.3 jar files for openfire 3.7.0
http://community.igniterealtime.org/message/213184#213184
clustering.jar put inside openfire plugins dir
Oracle coherence jars put inside openfire lib dir
** **- locate coherence-cache-config.xml inside the clustering.jar
and put it inside coherence.jar (replacing the default one)
make sure all servers that are being clustered connect to the same external database (same xmpp domain)
start the servers