V2Stats: Jive Messenger Stats Plugin

In case you missed the announcement in the News section of the forums…

Version2Software has released a commercial statistics plugin for Jive Messenger called url=http://version2software.com/products/v2statsV2Stats[/url]. It monitors more than half a dozen statistics about a running Jive Messenger instance and has a configurable alerting framework. Download a url=http://version2software.com/products/v2statsfree evaluation[/url] now!

Sorry, but this double-posting looks a bit like spam

Hi Sander,

I apologize if my posting here is being viewed as spam. It’'s been standard practice to announce new versions of Messenger, Smack, Asterisk-IM and various plugins in both the News category and when possible in their own category so I was just following that convention.

The nice thing about posting outside of the News category is that it gives people the opportunity to post replies to the announcements.

Regards,

Ryan

FYI, i’'m not getting any side bar navigation options.

I placed the JAR file in my /plugins folder and copied the license into the first screen. After that i’'m shown a screen where i can add notifications and such.

Might be useful Info:

win2000, sp4, all latest updates, IIS

Jive Messenger 2.3.0 Beta 1

Message was edited by:

toetag

First off, very nice plugin. Our organization was looking for something just like this. We wanted to get hard stats about the amount of utilization our server was getting.

Also, once we get some money allocated, we will be buying a license for this plugin.

I do have a problem with the evaluation version though. When I go to the Database Usage page I get a null pointer exception:

java.lang.NullPointerException

at org.jivesoftware.messenger.plugin.statistics.database_002dusage_jsp._jspService (database_002dusage_jsp.java:95)

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

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

at org.jivesoftware.messenger.container.PluginServlet.handleJSP(PluginServlet.java :231)

at org.jivesoftware.messenger.container.PluginServlet.service(PluginServlet.java:8 5)

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

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

at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplica tionHandler.java:822)

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

at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplica tionHandler.java:813)

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

at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplica tionHandler.java:813)

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

at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplica tionHandler.java:813)

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

at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplica tionHandler.java:813)

at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler. java:494)

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

at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)

at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.ja va:624)

at org.mortbay.http.HttpContext.handle(HttpContext.java:1434)

at org.mortbay.http.HttpServer.service(HttpServer.java:896)

at org.mortbay.http.HttpConnection.service(HttpConnection.java:814)

at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:981)

at org.mortbay.http.HttpConnection.handle(HttpConnection.java:831)

at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)

at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:366)

at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)

/code

Hi Toetag,

Are you by chance using Messenger 2.3.0 Beta? There were some changes made in that beta that makes the plugin not appear correctly, but we’'ll have a version of the plugin that works properly by the time 2.3.0 is offically released.

Thanks,

Ryan

I have an addition to my above post. It looks like this plugin is having problems working with SQL Server 2000. I have a few megs worth of error logs:

Creating the table:

2005.10.14 11:20:34 [com.version2software.messenger.plugins.database.StatisticsDAO.createTable(Stat isticsDAO.java:230)

]

java.sql.SQLException: [SQLServer 2000 Driver for JDBC][SQLServer]Incorrect syntax near the keyword ‘‘NOT’’.

at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)

at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)

at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)

at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)

at com.microsoft.jdbc.sqlserver.tds.TDSExecuteRequest.processReplyToken(Unknown Source)

at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)

at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)

at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)

at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)

at com.microsoft.jdbc.base.BasePreparedStatement.postImplExecute(Unknown Source)

at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)

at com.microsoft.jdbc.base.BaseStatement.executeInternal(Unknown Source)

at com.microsoft.jdbc.base.BasePreparedStatement.execute(Unknown Source)

at com.version2software.messenger.plugins.database.StatisticsDAO.createTable(Stati sticsDAO.java:225)

at com.version2software.messenger.plugins.database.StatisticsDAO.createTable(Stati sticsDAO.java:205)

at com.version2software.messenger.plugins.StatisticsPlugin.initializePlugin(Statis ticsPlugin.java:78)

at org.jivesoftware.messenger.container.PluginManager.loadPlugin(PluginManager.jav a:273)

at org.jivesoftware.messenger.container.PluginManager.access$200(PluginManager.jav a:49)

at org.jivesoftware.messenger.container.PluginManager$PluginMonitor.run(PluginMana ger.java:636)

at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)

at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source)

at java.util.concurrent.FutureTask.runAndReset(Unknown Source)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101 (Unknown Source)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodi c(Unknown Source)

at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknow n Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

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

/code

Updating the table?

2005.10.14 11:20:35 [com.version2software.messenger.plugins.database.StatisticsDAO.deleteOld(Statis ticsDAO.java:649)

]

java.sql.SQLException: [SQLServer 2000 Driver for JDBC][SQLServer]Invalid object name ‘‘v2HourStat’’.

at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)

at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)

at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)

at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)

at com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(Unknown Source)

at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)

at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)

at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)

at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)

at com.microsoft.jdbc.base.BasePreparedStatement.postImplExecute(Unknown Source)

at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)

at com.microsoft.jdbc.base.BaseStatement.executeInternal(Unknown Source)

at com.microsoft.jdbc.base.BasePreparedStatement.execute(Unknown Source)

at com.version2software.messenger.plugins.database.StatisticsDAO.deleteOld(Statist icsDAO.java:647)

at com.version2software.messenger.plugins.database.StatisticsDAO.insertHourlyStati stic(StatisticsDAO.java:262)

at com.version2software.messenger.plugins.database.StatisticsDAO.insertStatistic(S tatisticsDAO.java:238)

at com.version2software.messenger.plugins.collector.SessionCountCollector$Collecto rThread.run(SessionCountCollector.java:51)

/code

Some type of conversion?

2005.10.14 11:21:56 [com.version2software.messenger.plugins.database.StatisticsDAO.insertHourlyPack etStatistic(StatisticsDAO.java:454)

]

java.sql.SQLException: [SQLServer 2000 Driver for JDBC][SQLServer]

Disallowed implicit conversion from data type datetime to data type timestamp,

table ‘‘JiveMessenger.dbo.v2HourPacket’’, column ‘‘time’’.

Use the CONVERT function to run this query.

at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)

at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)

at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)

at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)

at com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(Unknown Source)

at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)

at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)

at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)

at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)

at com.microsoft.jdbc.base.BasePreparedStatement.postImplExecute(Unknown Source)

at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)

at com.microsoft.jdbc.base.BaseStatement.executeUpdateInternal(Unknown Source)

at com.microsoft.jdbc.base.BasePreparedStatement.executeUpdate(Unknown Source)

at com.version2software.messenger.plugins.database.StatisticsDAO.insertHourlyPacke tStatistic(StatisticsDAO.java:452)

at com.version2software.messenger.plugins.database.StatisticsDAO.insertStatistic(S tatisticsDAO.java:434)

at com.version2software.messenger.plugins.collector.PacketCountCollector$PacketCou ntThread.savePackets(PacketCountCollector.java:112)

at com.version2software.messenger.plugins.collector.PacketCountCollector$PacketCou ntThread.run(PacketCountCollector.java:121)

2005.10.14 11:21:56 [com.version2software.messenger.plugins.database.StatisticsDAO.addOrUpdatePacke t(StatisticsDAO.java:628)

/code

And this continued until I removed the plugin.

I looked and the tables exist in the databse, however there is no data in any of them.

Hi Caleb,

It’‘s great to hear you’‘re interested in purchasing the plugin and thank you for the bug report. We’‘re looking into the problem and we’'ll let you know when we have a fix in place.

Thanks,

Ryan

I was just editing my post to reflect system variables. Thanks for the update.

Hi Caleb,

How many tables got created? There should be ten starting with “v2”.

Thanks, Larry

There are only 5:

v2DayPacket

v2HourPacket

v2MonthPacket

v2WeekPacket

v2YearPacket

Sorry, but this double-posting looks a bit like spam

I totally disagree.

Regards,

Matt

Hi Caleb,

Which SQLServer database driver are you using?

Thanks for your help,

Larry

The JDBC service pack 3 version.

http://www.microsoft.com/downloads/details.aspx?FamilyID=07287b11-0502-461a-b138 -2aa54bfdc03a&displaylang=en

Hi Caleb,

After some digging Larry discovered that Messenger is telling V2Stats that it is using DB2 instead of SQLServer so it was attempting to create tables with the wrong field types. This bug was fixed a couple of weeks ago and is part of the Messenger 2.3.0 (beta) branch.

So, since I assume you’‘re using Messenger 2.2.x or 2.1.x you’'ll want to do the following:

  1. Login into the Admin Console and go to Server -> Server Manager -> System Properties and delete all the properties that start with “plugin.statistics.*”

  2. Run the attached sql script. This will manually create the tables and insert some data that V2Stats uses.

  3. Deploy the V2Stats plugin just as you would any other plugin.

We apologize for the trouble. Please let us know if run into any other issues.

Thanks,

Ryan & Larry

Have just found that thread so i would post all my questions here instead of PM’‘ing you It’'s not a spam, i have actually asked to start such a thread to be able to ask noob questions here, so it could be usefull for others. BTW, Ryan you can put answers to my last questions here

Well, i have tested this plugin too. Sometimes it was working real fast, sometimes slow. But i had to delete it eventually because my system hanged for two times. So my famous killer-server is not such bullet-proof as i thought

Nice plugin for getting a basic view on network load. Though stats are not so precise as we can wish, but more accurate stats will demand a tremendous system power.

Hey Wroot,

Sorry to hear you had to remove the plugin. In a future version of V2Stats we’‘re planning on adding the ability to allow admins to specify how long they want to keep their data for which will be nice for people who are running Messenger on less-powerful servers or simply don’‘t want to keep a years’’ worth of data.

Regards,

Ryan

The nice thing about posting outside of the News

category is that it gives people the opportunity to

post replies to the announcements.

I see, I didn’'t knew the News section was read-only.

After i have removed plugin there were statistics plugins settings left in System Properties. Shouldnt they be removed?

I ran the script and created the tables, and the plugin is working great.

Thanks for taking the time to look into this.