import com.hazelcast.config.Config; import com.hazelcast.config.NativeMemoryConfig; import com.hazelcast.config.XmlConfigBuilder; import com.hazelcast.core.Hazelcast; import com.hazelcast.core.HazelcastInstance; import com.hazelcast.logging.ILogger; import com.hazelcast.memory.MemorySize; import com.hazelcast.memory.MemoryStats; import com.hazelcast.memory.MemoryUnit; import java.io.InputStream; import static com.hazelcast.examples.helper.LicenseUtils.ENTERPRISE_LICENSE_KEY; /** * A simple test of a cache. * * You have to set your Hazelcast Enterprise license key to make this code sample work. * Please have a look at {@link com.hazelcast.examples.helper.LicenseUtils} for details. */ public final class EnterpriseCacheTestServer { private static final long STATS_SECONDS = 10; private final HazelcastInstance instance; private final MemoryStats memoryStats; private final ILogger logger; private final MemorySize memorySize; static { System.setProperty("hazelcast.version.check.enabled", "false"); System.setProperty("hazelcast.socket.bind.any", "false"); System.setProperty("java.net.preferIPv4Stack", "true"); System.setProperty("hazelcast.multicast.group", "224.33.55.79"); } private EnterpriseCacheTestServer(String memory) { this.memorySize = MemorySize.parse(memory, MemoryUnit.GIGABYTES); InputStream configInputStream = EnterpriseCacheTestServer.class.getResourceAsStream("/hazelcast-hd-memory.xml"); Config config = new XmlConfigBuilder(configInputStream).build(); config.setLicenseKey(ENTERPRISE_LICENSE_KEY); NativeMemoryConfig memoryConfig = config.getNativeMemoryConfig(); if (!memoryConfig.isEnabled()) { memoryConfig.setSize(memorySize).setEnabled(true); memoryConfig.setAllocatorType(NativeMemoryConfig.MemoryAllocatorType.POOLED); } instance = Hazelcast.newHazelcastInstance(config); memoryStats = MemoryStatsUtil.getMemoryStats(instance); logger = instance.getLoggingService().getLogger(EnterpriseCacheTestServer.class); } public static void main(String[] input) { String memory = "3"; boolean master = false; if (input != null && input.length > 0) { memory = input[0]; if (input.length > 1 && input[1].equals("master")) { master = true; } } EnterpriseCacheTestServer test = new EnterpriseCacheTestServer(memory); test.start(); } private void start() { printVariables(); startPrintStats(); } private void startPrintStats() { new Thread() { { setDaemon(true); setName("PrintStats." + instance.getName()); } public void run() { while (true) { try { Thread.sleep(STATS_SECONDS * 1000); System.out.println(""); System.out.println(memoryStats); } catch (InterruptedException ignored) { return; } } } }.start(); } private void printVariables() { logger.info("Starting Test with "); logger.info("Memory: " + memorySize.toPrettyString()); } }