This is a prerelease version.

Get Started with Hazelcast Enterprise

Hazelcast Enterprise Edition is a commercial offering from Hazelcast built on top of the open source product, and offers the following additional features:

Requesting a License Key

Hazelcast Enterprise requires a license key to run. You can get a 30-day trial license from the Hazelcast website.

You can also call your sales representative , e-mail to sales@hazelcast.com or contact Hazelcast support to request or renew your Enterprise license.

Setting Up License Key

Hazelcast Enterprise license keys are required only for members. You do not need to set a license key for your Java clients for which you want to use the Enterprise features.

To use Hazelcast Enterprise, you need to set the provided license key using one of the configuration methods shown below.

  • XML

  • YAML

  • Java

  • Spring XML

  • JVM System Property

<!-- Add the below line to any place you like in the file `hazelcast-default.xml`. -->

<hazelcast>
    ...
    <license-key>Your Enterprise License Key</license-key>
    ...
</hazelcast>
# Add the below line to any place you like in the file `hazelcast-default.yaml`.

hazelcast:
  ...
  license-key: Your Enterprise License Key
  ...
// Programmatic configuration.

Config config = new Config();
config.setLicenseKey( "Your Enterprise License Key" );
<hz:config>
    ...
    <hz:license-key>Your Enterprise License Key</hz:license-key>
    ...
</hz:config>
-Dhazelcast.enterprise.license.key=Your Enterprise License Key

For monitoring information such as expiration date of your license key see License Information.

Upgrading/Renewing Your License Key

In order to maintain a functional environment it’s strongly encouraged that you stay up to date on your license expiry period. You should keep of your license dates and features and check them often and request new licenses as needed before license expiry. You should also validate that you have the right license for the feature and number of members you intend to run.

If you have an expired License or if you current license is nearing expiry, Hazelcast issues warnings about approaching license expiry in the logs. During the last two months prior to the expiration, this license warning is logged daily, as a reminder to renew your license to avoid any interruptions. Once the expiration is due to a month, the frequency of logging this banner becomes hourly (instead of daily). Lastly, when the expiration is due in a week, this banner is printed every 30 minutes.

Similar alerts are also present on the Hazelcast Management Center.

The license warning has the following format:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
HAZELCAST LICENSE WILL EXPIRE IN 29 DAYS.
Your Hazelcast cluster will stop working after this time.

Your license holder is customer@example-company.com, you should have them contact
our license renewal department, urgently on sales@hazelcast.com
or call us on +1 (650) 521-5453

Please quote license id CUSTOM_TEST_KEY
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

You should carefully note and monitor your license warnings messages so that you can renew or acquire a valid license in a timely manner in order to avoid interruptions to your Hazelcast Instances.

If you have an expired license, your system does not start.

If you wish to upgrade your license or renew your existing license before it expires, contact Hazelcast to receive a new license. To install the new license, replace the license key on each member host and restart each member, one member at a time. You can use the REST API for this purpose.

If your license expires in a running cluster or Management Center, do not restart any of the cluster members or the Management Center JVM. Reach out to Hazelcast Support to resolve any issues with an expired license.

Retrieving License Details

You can retrieve the details of your Enterprise license using Hazelcast’s JMX and REST APIs.

JMX

The MBean HazelcastInstance.LicenseInfo holds all the relative license details and can be accessed through Hazelcast’s JMX port (if enabled). The following parameters represent these details:

  • maxNodeCountAllowed: Maximum members allowed to form a cluster under the current license.

  • expiryDate: Expiration date of the current license.

  • typeCode: Type code of the current license.

  • type: Type of the current license.

  • ownerEmail: Email of the current license’s owner.

  • companyName: Company name on the current license.

Following is the list of license types and typeCodes:

MANAGEMENT_CENTER(1, "Management Center"),
ENTERPRISE(0, "Enterprise"),
ENTERPRISE_SECURITY_ONLY(2, "Enterprise only with security"),
ENTERPRISE_HD(3, "Enterprise HD"),
CUSTOM(4, "Custom");

REST

You can access the license details by issuing a GET request through the REST API (if enabled; see the Using the REST Endpoint Groups section) on the /license resource, as shown below.

curl -v http://localhost:5701/hazelcast/rest/license

Its output is similar to the following:

*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 5701 (#0)
> GET /hazelcast/rest/license HTTP/1.1
> Host: localhost:5701
> User-Agent: curl/7.58.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: application/json
< Content-Length: 165
<
{"licenseInfo":{"expiryDate":4090168799999,"maxNodeCount":99,"type":3,"companyName":null,"ownerEmail":null,"keyHash":"OsLh4O6vqDuKEq8lOANQuuAaRnmDfJfRPrFSEhA7T3Y="}}

To update the license of a running cluster, you can issue a POST request through the REST API (if enabled; see the Using the REST Endpoint Groups section) on the /license as shown below:

curl --data "${CLUSTERNAME}&$\{PASSWORD}&${LICENSE}" http://localhost:5001/hazelcast/rest/license
The request parameters must be properly URL-encoded as described in the REST Client section.

The above command updates the license on all running Hazelcast members of the cluster. If successful, the response looks as follows:

*   Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to 127.0.0.1 (127.0.0.1) port 5001 (#0)
> POST /hazelcast/rest/license HTTP/1.1
> Host: 127.0.0.1:5001
> User-Agent: curl/7.54.0
> Accept: */*
> Content-Length: 164
> Content-Type: application/x-www-form-urlencoded
>
* upload completely sent off: 164 out of 164 bytes
< HTTP/1.1 200 OK
< Content-Type: application/javascript
< Content-Length: 364
<
* Connection #0 to host 127.0.0.1 left intact
{"status":"success","licenseInfo":{"expiryDate":1560380399161,"maxNodeCount":10,
"type":-1,"companyName":"ExampleCompany","ownerEmail":"info@example.com",
"keyHash":"ml/u6waTNQ+T4EWxnDRykJpwBmaV9uj+skZzv0SzDhs="},
"message":"License updated at run time - please make sure to update the license
in the persistent configuration to avoid losing the changes on restart."}

As the message in the above example indicates, the license is updated only at runtime. The persistent configuration of each member needs to be updated manually to ensure that the license change is not lost on restart. The same message is logged as a warning in each member’s log.

It is only possible to update to a license that expires at the same time or after the current license. The new license allows the same list of features (within which there may be some compatible feature replacements) and may allow different number of members provided that it is at least as large as the allowed number in the old license.

If, for any reason, updating the license fails on some members (member does not respond, license is not compatible, etc.), the whole operation fails, leaving the cluster in a potentially inconsistent state (some members have been switched to the new license while some have not). It is up to you to resolve this situation manually.

License Key Format

License keys have the following format:

<Name of the Hazelcast edition>#<Count of the Members>#<License key>

The strings before the <License key> is the human readable part. You can use your license key with or without this human readable part. So, both the following example license keys are valid:

HazelcastEnterpriseHD#2Nodes#1q2w3e4r5t
1q2w3e4r5t