Configuring Hazelcast¶
WSO2 products use Hazelcast as
its default clustering engine. The following configuration must be
placed in the <IS_HOME>/repository/conf/deployment.toml
file to
enable advanced cases.
[hazelcast]
"hazelcast.shutdownhook.enabled" = "false"
"hazelcast.logging.type"= "log4j"
The above configurations are explained below.
- Hazelcast shutdown hook: This configuration disables the shutdown hook in hazelcast, which ensures that the hazelcast instance shuts down gracefully whenever the product node shuts down. If the hazelcast shutdown hook is enabled (which is the default behavior of a product), you will see errors such as " Hazelcast instance is not active! " at the time of shutting down the product node: This is because the hazelcast instance shuts down too early when the shutdown hook is enabled.
- Hazelcast logging type: This configuration sets the hazelcast
logging type to log4j, which allows hazelcast logs to be written to
the
wso2carbon.log
file.
Once you enable advanced logs for hazelcast as explained above, change
logger.com-hazelcast.level
configuration in the <IS_HOME>/repository/conf/log4j2.properties
file. For more information
on logging, see Monitoring Logs.
logger.com-hazelcast.name = com.hazelcast
logger.com-hazelcast.level = INFO
Additionally, Hazelcast indicates that if all members are not mentioned
in the well-known member list, there can be a split-brain (network
partition) situation. If the cluster spans across data centers, it is
important to add all the members to the well-known members list in the <IS_HOME>/repository/conf/delpoyment.toml
file.
[clustering]
...
members = ["<member-x-host>:<member-x-port>", ...]
Info
WSO2 Identity Server provides Hazelcast Community Edition as
its default clustering engine. For clustering on a secure channel (i.e.,
secure Hazelcast), use Hazelcast Enterprise. To integrate with Hazelcast
Enterprise, there are provisions to provide license key under clustering
configurations. Advanced users can fine-tune Hazelcast by creating the
hazelcast.properties
file in the <IS_HOME>/repository/conf
directory
and adding the relevant Hazelcast properties as described in the
Hazelcast Advanced Configuration Properties documentation.
To add the Hazelcast Enterprise subscription license key, add the following property to the hazelcast.properties file.
hazelcast.enterprise.license.key=<key>