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

Reply via email to