Skip to content

MUF 3.0 Release Note

Yoichi Matsuyama edited this page Nov 20, 2017 · 2 revisions

RELEASE NOTES AND OBSERVATIONS:

  • version 3.0-r1: this is a release Candidate, probably feature complete and is pretty stable - problems are relatively rare and minor, but worth reporting to try to get them fixed for release.

  • services.json and instances of ServiceInfo class have changed their attributes: instead of clientAddress use slaveMUFAdddress and instead of serverAddress use masterMUFAddress

  • log4j2.xml file has changed: a new file appender has been included and different colors are used for different log levels (debug, error, etc.). If you are not using MUF as a git submodule (e.g., you are using a jar) it is strongly recommended to have a copy of the new log4j2.xml in the same directory of your muf jar.

  • By default, MUF uses only one port (5555) to bind/connect multiple sockets. For real deployment environments with hundreds or thousands of users, you may want to increase the number of ports so MUF can perform load balancing. You can modify the number of ports using setNumOfSockets in the Config object when you initialize the MUF.

  • Also, you can specify the number of threads that MUF will use to perform tasks and maintain sessions (by default, it uses a maximum of 2,000 threads). In real deployment environments you may want to increase this number by using setCorePoolSize in the Config instance.

  • In development environments use SHOW_ALL_EXCEPTIONS or SHOW_MUF_EXCEPTIONS, but in deployment environments we suggest to use SHOW_NO_EXCEPTIONS and activate the loggers instead.

  • Be careful when defining Stateless pluggable components, use Statefull components instead. Even if your stateless component does not share nor maintain any data, if it has a reference to another component that defines shared objects (e.g., NLG) you will likely face issues with concurrency. You must have a good understanding of concurrency if you want to use stateless components (e.g., use atomic instances, concurrent hash maps, etc.). Now, if you use monitors and locks, it will affect your system performance.

  • Some classes had changed their names in order to reflect coherently their responsibilities: MultiuserFramework -> MultiuserController, MultiuserContainer -> MUFLifetimeManager

  • Performance tests were added to use thousand users sending thousands of messages.

  • ServiceInfo attributes has changed the names (masterMUFAddress and slaveMUFAddress)

  • modify services.json

  • copy log4J.xml

Clone this wiki locally