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 [email protected] 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