Monitoring not working in 3.5.1

Hello

I’m using Openfire 3.5.1 with monitoring 1.0.1 plugin, but when i go to the Monitoring tab there’s no data there, the page is in blank.

In the logs i see the next message:

2008.05.09 13:26:26 org.jivesoftware.openfire.container.PluginServlet.service(PluginServlet.java:99)

java.lang.NullPointerException

at org.jivesoftware.openfire.reporting.stats.RrdSqlBackend.read(RrdSqlBackend.java :141)

at org.jrobin.core.RrdBackend.readString(Unknown Source)

at org.jrobin.core.RrdPrimitive.readString(Unknown Source)

at org.jrobin.core.RrdString.get(Unknown Source)

at org.jrobin.core.Header.isJRobinHeader(Unknown Source)

at org.jrobin.core.Header.validateHeader(Unknown Source)

at org.jrobin.core.RrdDb.<init>(Unknown Source)

at org.jrobin.core.RrdDb.<init>(Unknown Source)

at org.jivesoftware.openfire.reporting.stats.StatsEngine$DefaultStatDefinition.fet chData(StatsEngine.java:466)

at org.jivesoftware.openfire.reporting.stats.StatsEngine$DefaultStatDefinition.get Min(StatsEngine.java:506)

at org.jivesoftware.openfire.reporting.stats.DefaultStatsViewer.getMin(DefaultStat sViewer.java:106)

at org.jivesoftware.openfire.reporting.stats.StatsAction.getLowAndHigh(StatsAction .java:158)

at org.jivesoftware.openfire.plugin.monitoring.stats_002ddashboard_jsp._jspService (stats_002ddashboard_jsp.java:170)

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

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

at org.jivesoftware.openfire.container.PluginServlet.handleJSP(PluginServlet.java: 229)

at org.jivesoftware.openfire.container.PluginServlet.service(PluginServlet.java:87 )

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

at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1093)

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

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1084)

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

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1084)

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.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1084)

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

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1084)

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

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1084)

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

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1084)

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

at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.ja va:1084)

at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)

at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)

at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)

at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)

at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)

at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollect ion.java:206)

at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)

at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)

at org.mortbay.jetty.Server.handle(Server.java:324)

at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)

at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.j ava:828)

at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)

at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)

at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)

at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)

at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:450)

Any Ideas? ?:expressionless:

Thanks

I have the same problem. openfire 3.5.1 installed with debian package. I´m using a oracle backend too. I can see the archive chats but not the statistical data. I tried to re-run the sql scripts but without luck.

Hey guys,

Could you check if you have the ofRRDs table in your database? I suspect that that table is missing or may be the content is corrupted? Try running the script for creating that table or truncate the table and restart the server.

Regards,

– Gato

Yes, it’s something about the ofRRDs table. I deleted the ofRRDs table and the monitor start working, but it’s show no graphs.

I’ll run again the script thats creates the table and see what happens.

As dombiak_gaston says, the problem is caused by a corrupted data in ofRRDs table.

Before i get started, sorry for my english

To fix the problem, I used the next steps: (My corrupted OpenFire was Machine A)

  1. Made a new OpenFire installation into another machine (Machine B) and installed the monitor plugin.

  2. Deleted all records from ofRRDs table of machine A.

  3. Import the records of the machine B into machine A.

Now it’s fixed

Hi,

I tried to drop/recreate the ofRRDs table, and also tried to re-install the monitoring plugin. But statiscal data is still not working.

This is what I see in the logs:

2008.06.11 12:55:40 [org.jivesoftware.openfire.reporting.stats.StatsEngine$Sampl

eTask.run(StatsEngine.java:370)] Error sampling for statistic conversations

java.io.IOException: The underlying backend has no canonical path

at org.jrobin.core.RrdDb.getCanonicalPath(Unknown Source)

at org.jrobin.core.Header.validateHeader(Unknown Source)

at org.jrobin.core.RrdDb.<init>(Unknown Source)

at org.jrobin.core.RrdDb.<init>(Unknown Source)

at org.jivesoftware.openfire.reporting.stats.StatsEngine$SampleTask.run(

StatsEngine.java:334)

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:44

at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

at java.util.concurrent.FutureTask.run(FutureTask.java:138)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec

utor.java:885)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor

.java:907)

at java.lang.Thread.run(Thread.java:619)

And since this server is already in production, re-install is not a option.

What else can i do?

I’m seeing an error in the Monitoring plugin like the one reported previously.

We’re using Openfire 3.6.4, with Oracle 10.2.0.4.0 as our backend database, Java 1.6, and ojdbc14.jar for our JDBC drivers.

I tried reinitializing the OFRRDS table using the approach of reinstalling Openfire on a new machine, and then installing the monitoring plugin again, but we still ended up seeing errors in the log file like this:

java.io.IOException: The underlying backend has no canonical path
at org.jrobin.core.RrdDb.getCanonicalPath(Unknown Source)

The monitoring plugin seems to work correctly for the conversation archiving features, but we are unable to get any useful information from the statistics.

The ojdbc14.jar is recommended in the Openfire documentation, but there are newer versions available. From a google search, it looks like there may be size limitations on the PreparedStatement.setBytes() method that the monitoring plugin uses to write to the OFRRDS table.

Is anyone successfully using the Monitoring plugin with Oracle on the back end?

Do we need to upgrade our oracle jdbc driver?

How much data does the “bytes” column in that table need to hold?

Thanks for any information.