Hi Ilya, I have created a reproducer for this issue and uploaded it to GitHub.
GitHub project: https://github.com/prasadbhalerao1983/IgniteTestPrj.git Please run IgniteTransactionTester class to check the issue. Exception: Exception in thread "main" javax.cache.CacheException: Only pessimistic repeatable read transactions are supported at the moment. at org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query(IgniteCacheProxyImpl.java:697) at org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query(IgniteCacheProxyImpl.java:636) at org.apache.ignite.internal.processors.cache.GatewayProtectedCacheProxy.query(GatewayProtectedCacheProxy.java:388) at IgniteTransactionTester.testTransactionException(IgniteTransactionTester.java:53) at IgniteTransactionTester.main(IgniteTransactionTester.java:38) Caused by: class org.apache.ignite.internal.processors.query.IgniteSQLException: Only pessimistic repeatable read transactions are supported at the moment. at org.apache.ignite.internal.processors.cache.mvcc.MvccUtils.tx(MvccUtils.java:690) at org.apache.ignite.internal.processors.cache.mvcc.MvccUtils.tx(MvccUtils.java:671) at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.runQueryTwoStep(IgniteH2Indexing.java:1793) at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.doRunDistributedQuery(IgniteH2Indexing.java:2610) at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.doRunPrepared(IgniteH2Indexing.java:2315) at org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.querySqlFields(IgniteH2Indexing.java:2209) at org.apache.ignite.internal.processors.query.GridQueryProcessor$4.applyx(GridQueryProcessor.java:2135) at org.apache.ignite.internal.processors.query.GridQueryProcessor$4.applyx(GridQueryProcessor.java:2130) at org.apache.ignite.internal.util.lang.IgniteOutClosureX.apply(IgniteOutClosureX.java:36) at org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:2707) at org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:2144) at org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query(IgniteCacheProxyImpl.java:685) Thanks, Prasad On Wed, Jan 9, 2019 at 6:22 PM Ilya Kasnacheev <[email protected]> wrote: > Hello! > > It was discussed recently: > http://apache-ignite-users.70518.x6.nabble.com/Migrate-from-2-6-to-2-7-td25738.html > > I don't think you will be able to use SQL from transactions in Ignite 2.7. > While this looks like a regression, you will have to work around it for now. > > Do you have a small reproducer for this issue? I could file a ticket if > you had. You can try to do it yourself, too. > > Regards, > -- > Ilya Kasnacheev > > > ср, 9 янв. 2019 г. в 15:33, Prasad Bhalerao <[email protected] > >: > >> Hi, >> >> My cache configuration is as follows. I am using TRANSACTIONAL and not >> TRANSACTIONAL_SNAPSHOT. >> >> >> >> private CacheConfiguration ipContainerIPV4CacheCfg() { >> >> CacheConfiguration ipContainerIpV4CacheCfg = new >> CacheConfiguration<>(CacheName.IP_CONTAINER_IPV4_CACHE.name()); >> ipContainerIpV4CacheCfg.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL); >> ipContainerIpV4CacheCfg.setWriteThrough(ENABLE_WRITE_THROUGH); >> ipContainerIpV4CacheCfg.setReadThrough(false); >> ipContainerIpV4CacheCfg.setRebalanceMode(CacheRebalanceMode.ASYNC); >> >> ipContainerIpV4CacheCfg.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC); >> ipContainerIpV4CacheCfg.setBackups(1); >> Factory<IpContainerIpV4CacheStore> storeFactory = >> FactoryBuilder.factoryOf(IpContainerIpV4CacheStore.class); >> ipContainerIpV4CacheCfg.setCacheStoreFactory(storeFactory); >> ipContainerIpV4CacheCfg.setIndexedTypes(DefaultDataAffinityKey.class, >> IpContainerIpV4Data.class); >> >> ipContainerIpV4CacheCfg.setCacheStoreSessionListenerFactories(cacheStoreSessionListenerFactory()); >> ipContainerIpV4CacheCfg.setSqlIndexMaxInlineSize(84); >> RendezvousAffinityFunction affinityFunction = new >> RendezvousAffinityFunction(); >> affinityFunction.setExcludeNeighbors(true); >> ipContainerIpV4CacheCfg.setAffinity(affinityFunction); >> ipContainerIpV4CacheCfg.setStatisticsEnabled(true); >> >> return ipContainerIpV4CacheCfg; >> } >> >> >> Thanks, >> Prasad >> >> On Wed, Jan 9, 2019 at 5:45 PM Павлухин Иван <[email protected]> wrote: >> >>> Hi Prasad, >>> >>> > javax.cache.CacheException: Only pessimistic repeatable read >>> transactions are supported at the moment. >>> Exception mentioned by you should happen only for cache with >>> TRANSACTIONAL_SNAPSHOT atomicity mode configured. Have you configured >>> TRANSACTIONAL_SNAPSHOT atomicity for any cache? As Denis mentioned >>> there are number of bugs related to TRANSACTIONAL_SNAPSHOT, e.g. [1]. >>> >>> [1] https://issues.apache.org/jira/browse/IGNITE-10520 >>> >>> вс, 6 янв. 2019 г. в 20:03, Denis Magda <[email protected]>: >>> > >>> > Hello, >>> > >>> > Ignite versions prior to 2.7 never supported transactions for SQL >>> queries. You were enlisting SQL in transactions for your own risk. Ignite >>> version 2.7 introduced true transactional support for SQL based on MVCC. >>> Presently it's in beta with GA to be available around Q2-Q3 this year. The >>> community is working on optimizations. >>> > >>> > Please refer to this docs for more details: >>> > https://apacheignite.readme.io/docs/multiversion-concurrency-control >>> > https://apacheignite-sql.readme.io/docs/transactions >>> > >>> https://apacheignite-sql.readme.io/docs/multiversion-concurrency-control >>> > >>> > -- >>> > Denis >>> > >>> > On Sat, Jan 5, 2019 at 7:48 PM Prasad Bhalerao < >>> [email protected]> wrote: >>> >> >>> >> Can someone please explain if anything has changed in ignite 2.7. >>> >> >>> >> Started getting this exception after upgrading to 2.7. >>> >> >>> >> >>> >> ---------- Forwarded message --------- >>> >> From: Prasad Bhalerao <[email protected]> >>> >> Date: Fri 4 Jan, 2019, 8:41 PM >>> >> Subject: Re: Getting javax.cache.CacheException after upgrading to >>> Ignite >>> >> 2.7 >>> >> To: <[email protected]> >>> >> >>> >> >>> >> Can someone please help me with this? >>> >> >>> >> On Thu 3 Jan, 2019, 7:15 PM Prasad Bhalerao < >>> [email protected] >>> >> wrote: >>> >> >>> >> > Hi >>> >> > >>> >> > After upgrading to 2.7 version I am getting following exception. I >>> am >>> >> > executing a SELECT sql inside optimistic transaction with >>> serialization >>> >> > isolation level. >>> >> > >>> >> > 1) Has anything changed from 2.6 to 2.7 version? This work fine >>> prior to >>> >> > 2.7 version. >>> >> > >>> >> > After changing it to Pessimistic and isolation level to >>> REPEATABLE_READ it >>> >> > works fine. >>> >> > >>> >> > >>> >> > >>> >> > >>> >> > >>> >> > >>> >> > *javax.cache.CacheException: Only pessimistic repeatable read >>> transactions >>> >> > are supported at the moment.at >>> >> > >>> org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query(IgniteCacheProxyImpl.java:697)at >>> >> > >>> org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query(IgniteCacheProxyImpl.java:636)at >>> >> > >>> org.apache.ignite.internal.processors.cache.GatewayProtectedCacheProxy.query(GatewayProtectedCacheProxy.java:388)at >>> >> > >>> com.qualys.agms.grid.dao.AbstractDataGridDAO.getFieldResultsByCriteria(AbstractDataGridDAO.java:85)* >>> >> > >>> >> > Thanks, >>> >> > Prasad >>> >> > >>> >>> >>> >>> -- >>> Best regards, >>> Ivan Pavlukhin >>> >>
