Thanks lapo.
After spending 2 weeks running smartfox and tweaking here and there, I got tons of questions and a few issues.
First of all, I still got thoses huges cpu spikes again:
https://img.skitch.com/20110713-frdq33t ... rqdf78.jpg
(everytime it happens, there is a huge difference between session and user logged in, why ? should the number be inverted, I dont understand how I can have more user logged in than sessions))
The system queues status panel shows almost no message waiting in any queue, as you can see there
https://img.skitch.com/20110713-xkbwr56 ... ppshqr.jpg
I'll increase the number of threads (if needed) but I need more informations. In smartfox admin panel I can see:
System Controller thread pool size
Extensions Controller thread pool size
Task scheduler thread pool size
Appart for the last one, wich one does what exactly?
I mean, when a user log in or send a extension command, what is happening exactly ?
And what about the buddylist ?
Also, I use @Instantiation(InstantiationMode.SINGLE_INSTANCE) for every handler, maybe it's a bad idea?
At the moment, my http call are in USER_LOGIN handler, but I can split it in two and move the longuest one in the buddylist loadBuddyList object, is it useful ?
Also, I got several strange issues with smartfox, like:
• At some point, for some users, it seems that the smartfox bitswarm client (flash) receive "LOGIN" with the datas, but the ON_LOGIN event does not trigger (I experienced it my self with smartfox client debug turned on). Restarting smartfox and hop, the problem went away.
• It is really annoying that part of the client configuration can be done in code and part using a external file. My setup is quite complicated cdn + multiple website using the same flash + prod environnement and multiples dev environnement. It doesn't really work for me and I need to change the httpPort using code. We usually pass the config params using flashvars thru php.
• If I use an external config file for the client, It doesn't care about the host/port args of my connect() call (in case I want to override).
• Sometime I have messages like this in the log:
13 Jul 2011 16:56:00,903 WARN [pool-1-thread-5] entities.managers.SFSExtensionManager -
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Exception: java.lang.NullPointerException
Message: *** Null ***
Description: Error during event handling: java.lang.NullPointerException, Listener: { Ext: urbanRivalsChat, Type: JAVA, Lev: ZONE, { Zone: urbanRivalsChat }, {} }
+--- --- ---+
Stack Trace:
+--- --- ---+
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
or like this:
13 Jul 2011 16:56:15,967 WARN [com.smartfoxserver.v2.controllers.SystemController-1] v2.controllers.SystemController -
java.lang.NullPointerException
Emphasis on the fact that there is no stack trace. I cannot log at DEBUG level, there is too much traffic and the issues happens mostly WITH lots of traffic.
If you can help me out with my issues that would be fantastic
I can send you the source code (it's quite small) if you want.
At the moment, I cannot roll the new version to everyone because of the cpu behavior (mostly). I'm sure I did a few design mistake and so I can't wait to hear from the masters
Thanks,
Seb