/** * Executes example. * * @param args Command line arguments, none required. * @throws IgniteException If example execution failed. */ public static void main(String[] args) throws IgniteException { ExamplesUtils.checkMinMemory(MIN_MEMORY); // To start ignite with desired configuration uncomment the appropriate line. try (Ignite ignite = Ignition.start("examples/config/example-ignite.xml")) { System.out.println(); System.out.println(">>> Cache store example started."); CacheConfiguration<Long, Person> cacheCfg = new CacheConfiguration<>(CACHE_NAME); // Set atomicity as transaction, since we are showing transactions in example. cacheCfg.setAtomicityMode(TRANSACTIONAL); // Configure JDBC store. cacheCfg.setCacheStoreFactory(FactoryBuilder.factoryOf(CacheJdbcPersonStore.class)); // Configure JDBC session listener. cacheCfg.setCacheStoreSessionListenerFactories( new Factory<CacheStoreSessionListener>() { @Override public CacheStoreSessionListener create() { CacheJdbcStoreSessionListener lsnr = new CacheJdbcStoreSessionListener(); lsnr.setDataSource(CacheJdbcPersonStore.DATA_SRC); return lsnr; } }); cacheCfg.setReadThrough(true); cacheCfg.setWriteThrough(true); try (IgniteCache<Long, Person> cache = ignite.getOrCreateCache(cacheCfg)) { // Make initial cache loading from persistent store. This is a // distributed operation and will call CacheStore.loadCache(...) // method on all nodes in topology. loadCache(cache); // Start transaction and execute several cache operations with // read/write-through to persistent store. executeTransaction(cache); } } }