ignite-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Prasad Bhalerao <prasadbhalerao1...@gmail.com>
Subject Re: Getting javax.cache.CacheException after upgrading to Ignite 2.7
Date Wed, 09 Jan 2019 14:35:01 GMT
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 <ilya.kasnacheev@gmail.com>
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 <prasadbhalerao1983@gmail.com
> >:
>
>> 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 Павлухин Иван <vololo100@gmail.com>
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 <dmagda@apache.org>:
>>> >
>>> > 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 <
>>> prasadbhalerao1983@gmail.com> 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 <prasadbhalerao1983@gmail.com>
>>> >> Date: Fri 4 Jan, 2019, 8:41 PM
>>> >> Subject: Re: Getting javax.cache.CacheException after upgrading to
>>> Ignite
>>> >> 2.7
>>> >> To: <user@ignite.apache.org>
>>> >>
>>> >>
>>> >> Can someone please help me with this?
>>> >>
>>> >> On Thu 3 Jan, 2019, 7:15 PM Prasad Bhalerao <
>>> prasadbhalerao1983@gmail.com
>>> >> 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
>>>
>>

Mime
View raw message