String tcpConig = "my-default-jgroups-tcp.xml"; TransportConfigurationBuilder configuration = new GlobalConfigurationBuilder().clusteredDefault() .transport() .clusterName("my-cluster") .addProperty("configurationFile", tcpConig); configuration.serialization().marshaller(new JsonMarshaller()); final GlobalConfiguration globalConfiguration = configuration.build(); final DefaultCacheManager defaultCacheManager = new DefaultCacheManager(globalConfiguration); String jdbcUrlConnection = "jdbc:mariadb:/127.0.0.1:3306/database?useSSL=false"; final Configuration cacheConfiguration = new ConfigurationBuilder().clustering() .clustering() .cacheMode(CacheMode.REPL_SYNC) .persistence() .passivation(false) .addStore(JdbcStringBasedStoreConfigurationBuilder.class) .fetchPersistentState(false) .ignoreModifications(false) .purgeOnStartup(false) .shared(true) .segmented(false) .transactional(true) .table() .createOnStart(true) .tableNamePrefix("test_") .idColumnName("ID_COLUMN") .idColumnType("VARCHAR(255)") .dataColumnName("DATA_COLUMN") .dataColumnType("LONGBLOB") .timestampColumnName("TIMESTAMP_COLUMN") .timestampColumnType("BIGINT") .connectionPool() .connectionUrl(jdbcUrlConnection) .username("username") .password("password") .driverClass("org.mariadb.jdbc.Driver") .memory() .clustering() .partitionHandling() .whenSplit(PartitionHandling.DENY_READ_WRITES) .locking() .isolationLevel(IsolationLevel.REPEATABLE_READ) .transaction() .lockingMode(LockingMode.OPTIMISTIC) .autoCommit(false) .transactionMode(TransactionMode.TRANSACTIONAL) .useSynchronization(false) .transactionManagerLookup(new GenericTransactionManagerLookup()) .completedTxTimeout(60000) .cacheStopTimeout(30000) .recovery() .enabled(false) .build(); defaultCacheManager.createCache("test_cache", cacheConfiguration);