Hi, Please properly subscribe to the mailing list so that the community can receive email notifications for your messages. To subscribe, send empty email to user-subscr...@ignite.apache.org and follow simple instructions in the reply.
It looks like your own implementation of CacheStore is in use and a connection to MySQL is lost by some reason. See org.apache.ignite.cache.store.jdbc.CacheAbstractJdbcStore for proper implementation. You wrote: > Hi, > I am getting "Caused by: java.sql.SQLNonTransientConnectionException: No > operations allowed after connection closed." error while putting data in > cache. > I have following configuration for CacheConfiguration- > <bean class="org.apache.ignite.configuration.CacheConfiguration"> > <property name="name" value="personCache"></property> > <property name="atomicityMode" value="TRANSACTIONAL"/> > > > > <property name="readThrough" value="true"></property> > <property name="writeThrough" value="true"></property> > > <property name="cacheStoreFactory"> > <bean class="javax.cache.configuration.FactoryBuilder" > factory-method="factoryOf"> > <constructor-arg > value="santoshignite.PersonStore"></constructor-arg> > </bean> > </property> > > I am starting ignite client with following conf- > ApplicationContext context = new > ClassPathXmlApplicationContext("Spring-Module.xml"); > > IgniteConfiguration cfg = > (IgniteConfiguration)context.getBean("ignite.cfg"); > > cfg.setClientMode(true); > > System.out.println("*********************************************"+cfg.getCacheConfiguration()[0].getAtomicityMode()); > Ignite ignite = Ignition.start(cfg); > > IgniteTransactions transactions = ignite.transactions(); > IgniteCache<Long, Person> cache = > ignite.getOrCreateCache("personCache"); > > try (Transaction tx = transactions.txStart()) { > Person p = cache.get(7l); > p.setName("Shivendra 3"); > > cache.put(p.getId(),p); > > > > > System.out.println(p.getName()); > > tx.commit(); > } > > When I start my client I get following eror when "tx.commit()" statement > is called- > Exception in thread "main" class org.apache.ignite.IgniteException: Failed > to end store session. > at > org.apache.ignite.internal.util.IgniteUtils.convertException(IgniteUtils.java:946) > at > org.apache.ignite.internal.processors.cache.transactions.TransactionProxyImpl.commit(TransactionProxyImpl.java:264) > at santoshignite.Second.main(Second.java:56) > Caused by: class org.apache.ignite.IgniteCheckedException: Failed to end > store session. > at > org.apache.ignite.internal.util.IgniteUtils.cast(IgniteUtils.java:7239) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.get0(GridFutureAdapter.java:170) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.get(GridFutureAdapter.java:119) > at > org.apache.ignite.internal.processors.cache.transactions.TransactionProxyImpl.commit(TransactionProxyImpl.java:261) > ... 1 more > Caused by: javax.cache.integration.CacheWriterException: Failed to end > store session. > at santoshignite.PersonStore.sessionEnd(PersonStore.java:179) > at > org.apache.ignite.internal.processors.cache.store.GridCacheStoreManagerAdapter.sessionEnd(GridCacheStoreManagerAdapter.java:787) > at > org.apache.ignite.internal.processors.cache.transactions.IgniteTxAdapter.sessionEnd(IgniteTxAdapter.java:1247) > at > org.apache.ignite.internal.processors.cache.transactions.IgniteTxAdapter.batchStoreCommit(IgniteTxAdapter.java:1429) > at > org.apache.ignite.internal.processors.cache.transactions.IgniteTxLocalAdapter.userCommit(IgniteTxLocalAdapter.java:649) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.finish(GridNearTxLocal.java:753) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxFinishFuture.finish(GridNearTxFinishFuture.java:410) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$4.apply(GridNearTxLocal.java:874) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$4.apply(GridNearTxLocal.java:866) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:271) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListeners(GridFutureAdapter.java:259) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:389) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:355) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearPessimisticTxPrepareFuture.onDone(GridNearPessimisticTxPrepareFuture.java:328) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearPessimisticTxPrepareFuture.onDone(GridNearPessimisticTxPrepareFuture.java:57) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:332) > at > org.apache.ignite.internal.util.future.GridCompoundFuture.checkComplete(GridCompoundFuture.java:276) > at > org.apache.ignite.internal.util.future.GridCompoundFuture.apply(GridCompoundFuture.java:142) > at > org.apache.ignite.internal.util.future.GridCompoundFuture.apply(GridCompoundFuture.java:43) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:271) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListeners(GridFutureAdapter.java:259) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:389) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:355) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:332) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearPessimisticTxPrepareFuture$MiniFuture.onResult(GridNearPessimisticTxPrepareFuture.java:395) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearPessimisticTxPrepareFuture.onResult(GridNearPessimisticTxPrepareFuture.java:105) > at > org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.processNearTxPrepareResponse(IgniteTxHandler.java:563) > at > org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.access$000(IgniteTxHandler.java:96) > at > org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$2.apply(IgniteTxHandler.java:151) > at > org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$2.apply(IgniteTxHandler.java:149) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:827) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:369) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:293) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$000(GridCacheIoManager.java:95) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:238) > at > org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1222) > at > org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:850) > at > org.apache.ignite.internal.managers.communication.GridIoManager.access$2100(GridIoManager.java:108) > at > org.apache.ignite.internal.managers.communication.GridIoManager$7.run(GridIoManager.java:790) > at > org.apache.ignite.internal.util.StripedExecutor$Stripe.run(StripedExecutor.java:428) > at java.lang.Thread.run(Unknown Source) > Caused by: java.sql.SQLNonTransientConnectionException: No operations > allowed after connection closed. > at > com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:550) > at > com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:537) > at > com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:527) > at > com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:512) > at > com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:480) > at > com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:498) > at > com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:494) > at > com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:66) > at > com.mysql.cj.jdbc.ConnectionImpl.commit(ConnectionImpl.java:1236) > at santoshignite.PersonStore.sessionEnd(PersonStore.java:173) > ... 40 more > Caused by: com.mysql.cj.core.exceptions.ConnectionIsClosedException: No > operations allowed after connection closed. > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown > Source) > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) > at java.lang.reflect.Constructor.newInstance(Unknown Source) > at > com.mysql.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:54) > at > com.mysql.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:93) > at > com.mysql.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:133) > at > com.mysql.cj.jdbc.ConnectionImpl.checkClosed(ConnectionImpl.java:960) > at > com.mysql.cj.jdbc.ConnectionImpl.commit(ConnectionImpl.java:1194) > ... 41 more > Please help. -- Best regards, Andrey V. Mashenkov