Page 1 of 4

SmartFoxServer 2X Release Candidate 2

Posted: 11 Mar 2011, 10:03
by Bax
A little late with respect to our roadmap, but The Release Candidate 2 of SmartFoxServer 2X is finally here!

This version brings new features and many improvements mainly from the discussions and bug reports since RC1b was released. Thanks for your feedback and keep it coming. :)

The RC2 is available on the download page and is provided as a patch that requires a quick manual installation. Read the release notes in the next post.

During the next weeks we will concentrate our efforts on the documentation, new incredible examples including full source code, the 2X version of the RedBox and more. This will lead to the final release of SmartFoxServer 2X!

Posted: 11 Mar 2011, 10:21
by Bax
Release notes

Server
NEW: added emailer service
NEW: added BlueBox 2X (beta)
NEW: AdminTool improved statistics
NEW: AdminTool queue realtime monitor under "Runtime Statistics" module
NEW: AdminTool BlueBox 2X session monitor module
NEW: AdminTool enhanced Extension configuration with auto inspection of jar files
NEW: AdminTool create and activate new Zones at runtime
NEW: several other AdminTool minor usability improvements
NEW: several user queue performance improvements; tested with 6-12K message/s per single client! :shock:
NEW: BitSwarm 3.4.0 core socket engine introduces several improvements in realiability and resource usage
UPDATE: Jetty 6.1.26 libs for better performance and reliability of BlueBox2X
FIX: TCP user queue not emptying correctly under heavy load
FIX: UDP possible issue with user queue getting stuck
FIX: Room reference in SFSExtensionManager was causing a classloader memory leak, with possible PermGen OOM
FIX: startup problem; an error in creating a Room caused the whole process of Zone creation to stop
FIX: SFSRoom.containsUser(String name) caused infinite loop
FIX: properly handle NULL fields in conversion from ResultSet to SFSObject/Array (see this post)
FIX: setting only hidden vars in SetUserVariables request could lead to a unwanted client update (see this post)
FIX: PlayerId release issue (see this post)
FIX: BuddyManager did not release buddy lists on User exit (see this post)
FIX: properly check when to apply words filter based on the active attribute configured in the Zone

ActionScript 3 API
NEW: BlueBox support, auto-connect with BlueBox on socket connection failure
NEW: added banDuration to BanRequest
NEW: updated AS-Doc
FIX: debug flag not working correctly from external config
FIX: SFSArray.contains() method always returned false
FIX: bug with get/set NickName and State in BuddyManager
FIX: minor bug in Object to SFSObject conversion
FIX: differentiation between decimal Number --> Double and non-decimal Number --> Long for AS3 to Java conversions of Class instances
FIX: solved issue with UserVariables not being updated correctly (see this post)

.Net / Unity API
NEW: Bluebox support
NEW: send/receive classes
NEW: now hostname as alternative to IP address is supported
NEW: graceful(er) handling of codec errors; doesn't terminate connection on codec errors
NEW: MaxMessageSize support in handshake
NEW: cleaner shutdown
FIX: MD5 generates lowercase (instead of uppercase) password hash
FIX: BuddyManager MyState/MyNickName bugs
FIX: subtle bug in UnsubscribeRoomGroup
FIX: SFSArray Contains method
FIX: PlayerId bug when joining existing rooms
FIX: SFSBuddy issue with isTemp fixed
FIX: User Variables when already managed

Other
The RC2 patch also contains the latest version on the Java/Android API.
iOS API will be updated too during the next week.

Posted: 14 Mar 2011, 12:15
by Bax
We just released an updated RC2 patch (in the server logs you will read RC2a) which fixes two minor issues we discovered a few hours after publishing the RC2 (of course! :?)

All users who downloaded the RC2 before this post (check the date/time) should download it again from the download page and reinstall it. Sorry for the inconvenience.

Release notes


Server
FIX: if the internal webserver was not active, the server couldn't be started
FIX: Admin Tool displayed wrong Extension main class name if a non-conventional name was set during a previous editing of the Zone/Room configuration

Posted: 18 Mar 2011, 14:46
by regulxenao
I had updated server to RC2. But AdminToot stops working:

http://clip2net.com/clip/m54242/1300459 ... p-22kb.jpg
http://clip2net.com/clip/m54242/1300459 ... p-32kb.png

I tried refresh AdminTool, but it didn't help.

Posted: 18 Mar 2011, 17:35
by Bax
Any errors in the server-side logs when the Server Configurator doesn't work?

Posted: 23 Mar 2011, 19:01
by nunobarao
Hi, how to install the new patch?

thank you

Posted: 23 Mar 2011, 19:26
by rjgtav
hi. The instructions are in the html file that is inside the zip file. You need to put the patch folder inside the sfs2x's directory. For example C:\programs\sfs 2x

Posted: 23 Mar 2011, 23:48
by nunobarao
Thank you rjgtav, i´ve done it and its assuming when i start server, but now i have the exact same problem "regulxenao" posted:


I had updated server to RC2. But AdminToot stops working:

http://clip2net.com/clip/m54242/1300459 ... p-22kb.jpg
http://clip2net.com/clip/m54242/1300459 ... p-32kb.png

I tried refresh AdminTool, but it didn't help.

any suggestion?

Thank you

Posted: 23 Mar 2011, 23:52
by nunobarao
When i localhost:8080, it assuming RC1 instead of RC2, but the server start cmd tells me that i´m running 2.0.0-RC2a

Posted: 23 Mar 2011, 23:57
by nunobarao
ok iv tried login to Admin again and gave me this error

Code: Select all

VerifyError: Error #1063: Incompatibilidade de contagem do argumento com.smartfoxserver.v2.admin.modules::BaseModuleController(). Esperado 2, obtido 3.

   at com.smartfoxserver.v2.admin.modules.controllers.runtimestatistics::RuntimeStatisticsController()
   at modules.RuntimeStatistics::RuntimeStatistics/init()
   at modules.RuntimeStatistics::RuntimeStatistics/___RuntimeStatistics_Module1_initialize()
   at flash.events::EventDispatcher/dispatchEventFunction()
   at flash.events::EventDispatcher/dispatchEvent()
   at mx.core::UIComponent/dispatchEvent()
   at mx.core::UIComponent/set processedDescriptors()
   at mx.core::Container/createComponentsFromDescriptors()
   at mx.core::Container/createChildren()
   at mx.core::UIComponent/initialize()
   at mx.core::Container/initialize()
   at modules.RuntimeStatistics::RuntimeStatistics/initialize()
   at mx.core::UIComponent/http://www.adobe.com/2006/flex/mx/internal::childAdded()
   at mx.core::Container/http://www.adobe.com/2006/flex/mx/internal::childAdded()
   at mx.core::Container/addChildAt()
   at mx.core::Container/addChild()
   at mx.modules::ModuleLoader/moduleReadyHandler()
   at flash.events::EventDispatcher/dispatchEventFunction()
   at flash.events::EventDispatcher/dispatchEvent()
   at ModuleInfoProxy/moduleEventHandler()
   at flash.events::EventDispatcher/dispatchEventFunction()
   at flash.events::EventDispatcher/dispatchEvent()
   at ModuleInfo/readyHandler()
   at flash.events::EventDispatcher/dispatchEventFunction()
   at flash.events::EventDispatcher/dispatchEvent()
   at mx.core::FlexModuleFactory/update()
   at mx.core::FlexModuleFactory/docFrameHandler()
   at mx.core::FlexModuleFactory/docFrameListener()


and now its working...

Posted: 24 Mar 2011, 07:56
by rav
regulxenao wrote:I had updated server to RC2. But AdminToot stops working:

http://clip2net.com/clip/m54242/1300459 ... p-22kb.jpg
http://clip2net.com/clip/m54242/1300459 ... p-32kb.png

I tried refresh AdminTool, but it didn't help.


After migration to 2.0.0-RC2a I've got similar problem but with Zone Configurator (I cannot open neither Zone nor Room settings)
in console there is exceptions:
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Code: Select all

Exception: java.lang.NullPointerException
Message: *** Null ***
Description: Error while handling client request in extension: { Ext: Admin, Typ
e: JAVA, Lev: ZONE, { Zone: --=={{{ AdminZone }}}==-- }, {} }
Extension Cmd: zoneConfig.getZoneConfig
+--- --- ---+
Stack Trace:
+--- --- ---+
com.smartfoxserver.v2.admin.helper.ExtensionsHelper.loadExtensionsData(Extension
sHelper.java:95)
com.smartfoxserver.v2.admin.handlers.ZoneConfigModuleReqHandler.handleClientRequ
est(ZoneConfigModuleReqHandler.java:147)
com.smartfoxserver.v2.extensions.SFSExtension.handleClientRequest(SFSExtension.j
ava:192)
com.smartfoxserver.v2.controllers.ExtensionController.processRequest(ExtensionCo
ntroller.java:137)
com.smartfoxserver.bitswarm.controllers.AbstractController.run(AbstractControlle
r.java:96)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

and

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Code: Select all

Exception: java.lang.NullPointerException
Message: *** Null ***
Description: Error while handling client request in extension: { Ext: Admin, Typ
e: JAVA, Lev: ZONE, { Zone: --=={{{ AdminZone }}}==-- }, {} }
Extension Cmd: zoneConfig.getRoomConfig
+--- --- ---+
Stack Trace:
+--- --- ---+
com.smartfoxserver.v2.admin.helper.ExtensionsHelper.loadExtensionsData(Extension
sHelper.java:95)
com.smartfoxserver.v2.admin.handlers.ZoneConfigModuleReqHandler.handleClientRequ
est(ZoneConfigModuleReqHandler.java:432)
com.smartfoxserver.v2.extensions.SFSExtension.handleClientRequest(SFSExtension.j
ava:192)
com.smartfoxserver.v2.controllers.ExtensionController.processRequest(ExtensionCo
ntroller.java:137)
com.smartfoxserver.bitswarm.controllers.AbstractController.run(AbstractControlle
r.java:96)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Posted: 24 Mar 2011, 13:33
by Bax
rav, can you please post the Zone and Room configuration excerpts related to the Extension from the zone xml file?

Posted: 25 Mar 2011, 07:56
by rav
Did you mean this?

Code: Select all

<zone>
  <name>GameLobby</name>
  ...
  <rooms>
    <room>
      <name>The Lobby</name>
      ...
      <extension>
        <name></name>
        <type>JAVA</type>
        <file></file>
        <propertiesFile></propertiesFile>
        <reloadMode>AUTO</reloadMode>
      </extension>
    </room>
  </rooms>
  ...
  <extension>
    <name></name>
    <type>JAVA</type>
    <file></file>
    <propertiesFile></propertiesFile>
    <reloadMode>AUTO</reloadMode>
  </extension>
  ...
</zone>

Posted: 25 Mar 2011, 09:27
by Bax
Nothing strange in this configuration file. The reason why the Zone Configurator is not working anymore is unknown. Is that the only Zone in your setup? If not, stop the server and remove all the zone xml files. Then add them one by one restarting the server each time. I would like you to find which zone is causing that error.
Also, can you show the files and folders structure of your /extensions folder?

Posted: 25 Mar 2011, 09:59
by rav
may be problem somewhere in 'SFS2X\config\descriptors\' ? because if I have any files in 'zones\' (folder is empty) and press "create new zone" button I've got the same exception in console:
Exception: java.lang.NullPointerException
Message: *** Null ***
Description: Error while handling client request in extension: { Ext: Admin, Typ
e: JAVA, Lev: ZONE, { Zone: --=={{{ AdminZone }}}==-- }, {} }
Extension Cmd: zoneConfig.getZoneConfig
+--- --- ---+
Stack Trace:
+--- --- ---+
com.smartfoxserver.v2.admin.helper.ExtensionsHelper.loadExtensionsData(Extension
sHelper.java:95)
com.smartfoxserver.v2.admin.handlers.ZoneConfigModuleReqHandler.handleClientRequ
est(ZoneConfigModuleReqHandler.java:147)
com.smartfoxserver.v2.extensions.SFSExtension.handleClientRequest(SFSExtension.j
ava:192)
com.smartfoxserver.v2.controllers.ExtensionController.processRequest(ExtensionCo
ntroller.java:137)
com.smartfoxserver.bitswarm.controllers.AbstractController.run(AbstractControlle
r.java:96)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)


there is absolutely nothing strange in 'extensions\'