ZK Configuration
Turn on Serializable UI Factory
[Required]
To use ZK in a clustering environment, you have to use the serializable UI factory. It could be done by specifying the following statement in WEB-INF/zk.xml:
<zk>
<system-config>
<ui-factory-class>org.zkoss.zk.ui.http.SerializableUiFactory</ui-factory-class>
</system-config>
</zk>
SerializableUiFactory is the UI factory that will instantiate serializable sessions such that the sessions, components, pages and desktops will be serialized when a session is about to deactivate.
Also notice that you cannot enable the use of the event thread[1]. It is disabled by default. For more information, please refer to the Event Threads section.
- ↑ The reason is that the event thread might be suspended. Unfortunately, the thread cannot be migrated from one machine to another.
Turn on Log
[Optional]
If an attribute or a listener is not serializable, ZK will skip it, i.e., not to serialize it (similar to how a Servlet container serializes the attributes of sessions). It is sometimes hard to know what are ignored, since it is common for a developer to forget to declare a value or a listener as serializable.
To detect this problem, you could turn on the logger for org.zkoss.io.serializable to the DEBUG level[1]. The logger is the standard logger. You could consult the configuration of the Web server you use. Or, you could run the following statement when your application starts[2].
org.zkoss.util.logging.Log.lookup("org.zkoss.io.serializable").setLevel("DEBUG");
- ↑ Available in 5.0.7
- ↑ It can be done by use of theWebAppInit listener. For more information, please refer to the Customization section.
Version History
Version | Date | Content |
---|---|---|
5.0.7 | April 2011 | The log called org.zkoss.io.serializable was introduced. |