Hi Trustin, I double check and I don't see why I still have 0 value for ReadMessages and ReadMessagesThroughput in IoHandler, while ReadBytes and ReadBytesThroughput are non zero in the same time. I have written an extension in my business logic to count myself current Messages each 3 seconds interval (same as in Mina) and I got numbers obviously different than 0. I check both on AIX and on Windows, and the behavious is the same.
Once say that, I totally agree with you if this is not on the prioritary list since obviously it is not blocking at all and it is just a "cosmetic" information... ;-) I will continue to try to understand why... And WDYT about my proposal of extension (again "cosmetic" only so if you fill like it is not useful, no problem) ? Frederic ----- Original Message ----- Well, I come back with a proposal of addition in IoHandler. Doing this will prevent me to use a specific Timer to do the same. The objective are to get some statistics value on long term, whatever the sessions are still running or not. I think that only throughput are relevant, since others could be problematic (risk of overflow) and could be not so relevant in general way. Here is the proposal : //NEW FIELDS private double largestReadBytesThroughput = 0.0; private double largestWrittenBytesThroughput = 0.0; private double largestReadMessagesThroughput = 0.0; private double largestWrittenMessagesThroughput = 0.0; private void updateThroughput(long currentTime) { synchronized (throughputCalculationLock) { int interval = (int) (currentTime - lastThroughputCalculationTime); long minInterval = getThroughputCalculationIntervalInMillis(); if (minInterval == 0 || interval < minInterval) { return; } long readBytes = this.readBytes.get(); long writtenBytes = this.writtenBytes.get(); long readMessages = this.readMessages.get(); long writtenMessages = this.writtenMessages.get(); readBytesThroughput = (readBytes - lastReadBytes) * 1000.0 / interval; writtenBytesThroughput = (writtenBytes - lastWrittenBytes) * 1000.0 / interval; readMessagesThroughput = (readMessages - lastReadMessages) * 1000.0 / interval; writtenMessagesThroughput = (writtenMessages - lastWrittenMessages) * 1000.0 / interval; // NEW FIELDS FOR LARGEST VALUES WHATEVER THE LIFE OF SESSIONS if (readBytesThroughput > largestReadBytesThroughput) largestReadBytesThroughput = readBytesThroughput; if (writtenBytesThroughput > largestWrittenBytesThroughput) largestWrittenBytesThroughput = writtenBytesThroughput; if (readMessagesThroughput > largestReadMessagesThroughput) largestReadMessagesThroughput = readMessagesThroughput; if (writtenMessagesThroughput > largestWrittenMessagesThroughput) largestWrittenMessagesThroughput = writtenMessagesThroughput; // END OF ADDON lastReadBytes = readBytes; lastWrittenBytes = writtenBytes; lastReadMessages = readMessages; lastWrittenMessages = writtenMessages; lastThroughputCalculationTime = currentTime; } } // NEW METHODS public final double getLargestReadBytesThroughput() { return largestReadBytesThroughput; } public final double getLargestWrittenBytesThroughput() { return largestWrittenBytesThroughput; } public final double getLargestReadMessagesThroughput() { return largestReadMessagesThroughput; } public final double getLargestWrittenMessagesThroughput() { return largestWrittenMessagesThroughput; } Could it be something added to Mina ? Also I really don't know why Read Messages (max throughput or cumulative) are still 0 in my code, but should not be since bytes are not null as below. Is this relative to the use of DemuxingIoHandler ? WDYT ? I look at the code and see nothing particular that should produce this behaviour. Active since: Wed Dec 12 17:23:57 CET 2007 Cumulative Sessions: 106 Maximum Concurrent Sessions: 106 Current Active Sessions: 106 Bytes read by Second: 113200.9900990099 Messages read by Second: 0.0 Cumulative Read Messages: 0 Bytes written by Second: 5700083.168316832 Messages written by Second: 1079.8679867986798 Cumulative Written Messages: 51780 Frederic