Hi devs,
just a kind reminder. We would be really grateful if you could take look
at question in below mail.
BRs,
Jakov
On 06. 07. 2020. 15:50, Jakov Varenina wrote:
Hi all,
We are trying to setup non-persistent parallel gateway sender
(‘sender’) on a non-persistent partitioned region (‘part_a’). This
works OK.
But when this same region ‘part_a’ is colocated with another
persistent region (‘_part_hidden’), Geode throws an exception:
Exception in thread "main"
org.apache.geode.internal.cache.wan.GatewaySenderException: Non
persistent gateway sender sender can not be attached to persistent
region /_part_hidden
at
org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.addShadowPartitionedRegionForUserPR(ParallelGatewaySenderQueue.java:461)
at
org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderQueue.addShadowPartitionedRegionForUserPR(ParallelGatewaySenderQueue.java:451)
at
org.apache.geode.internal.cache.wan.parallel.ParallelGatewaySenderEventProcessor.addShadowPartitionedRegionForUserPR(ParallelGatewaySenderEventProcessor.java:191)
at
org.apache.geode.internal.cache.wan.parallel.ConcurrentParallelGatewaySenderQueue.addShadowPartitionedRegionForUserPR(ConcurrentParallelGatewaySenderQueue.java:177)
at
org.apache.geode.internal.cache.PartitionedRegion.postCreateRegion(PartitionedRegion.java:1174)
at
org.apache.geode.internal.cache.GemFireCacheImpl.createVMRegion(GemFireCacheImpl.java:3010)
at
org.apache.geode.internal.cache.GemFireCacheImpl.basicCreateRegion(GemFireCacheImpl.java:2869)
at
org.apache.geode.internal.cache.xmlcache.RegionCreation.createRoot(RegionCreation.java:237)
at
org.apache.geode.internal.cache.xmlcache.CacheCreation.initializeRegions(CacheCreation.java:658)
at
org.apache.geode.internal.cache.xmlcache.CacheCreation.create(CacheCreation.java:592)
at
org.apache.geode.internal.cache.xmlcache.CacheXmlParser.create(CacheXmlParser.java:338)
at
org.apache.geode.internal.cache.GemFireCacheImpl.loadCacheXml(GemFireCacheImpl.java:4081)
at
org.apache.geode.internal.cache.GemFireCacheImpl.initializeDeclarativeCache(GemFireCacheImpl.java:1535)
at
org.apache.geode.internal.cache.GemFireCacheImpl.initialize(GemFireCacheImpl.java:1374)
at
org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:191)
at
org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:158)
at
org.apache.geode.cache.CacheFactory.create(CacheFactory.java:142)
at
org.apache.geode.distributed.internal.DefaultServerLauncherCacheProvider.createCache(DefaultServerLauncherCacheProvider.java:52)
at
org.apache.geode.distributed.ServerLauncher.createCache(ServerLauncher.java:894)
at
org.apache.geode.distributed.ServerLauncher.start(ServerLauncher.java:809)
at
org.apache.geode.distributed.ServerLauncher.run(ServerLauncher.java:739)
at
org.apache.geode.distributed.ServerLauncher.main(ServerLauncher.java:256)
This is cache.xml used:
<?xml version="1.0" encoding="UTF-8"?><cache
xmlns="http://geode.apache.org/schema/cache"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://geode.apache.org/schema/cache
http://geode.apache.org/schema/cache/cache-1.0.xsd"
version="1.0"
copy-on-read="true">
<!-- Topology information fragment -->
<gateway-sender id="sender"
parallel="true"
enable-persistence="false"
remote-distributed-system-id="4"/>
<gateway-sender id="sender_persistent"
parallel="true"
enable-persistence="true"
remote-distributed-system-id="4"/>
<pdx read-serialized="true" persistent="true" />
<region name="_part_hidden" refid="PARTITION_REDUNDANT_PERSISTENT">
<region-attributes>
<partition-attributes redundant-copies="1">
<partition-resolver>
<class-name>org.apache.geode.cache.util.StringPrefixPartitionResolver
</class-name>
</partition-resolver>
</partition-attributes>
</region-attributes>
</region>
<region name="part_a" refid="PARTITION_REDUNDANT">
<region-attributes gateway-sender-ids="sender" >
<partition-attributes colocated-with="_part_hidden"
redundant-copies="1">
<partition-resolver>
<class-name>org.apache.geode.cache.util.StringPrefixPartitionResolver
</class-name>
</partition-resolver>
</partition-attributes>
</region-attributes>
</region>
<region name="part_b" refid="PARTITION_REDUNDANT_PERSISTENT">
<region-attributes gateway-sender-ids="sender_persistent">
<partition-attributes colocated-with="_part_hidden"
redundant-copies="1">
<partition-resolver>
<class-name>org.apache.geode.cache.util.StringPrefixPartitionResolver
</class-name>
</partition-resolver>
</partition-attributes>
</region-attributes>
</region>
</cache>
There is nothing explicitly said about this in documentation, and It
is not clear why this is not allowed.
Non-persistent parallel gateway sender is attached only to
non-persistent region ‘part_a’ (and not to persistent region
‘_part_hidden’) .
Why is this not allowed by Geode? Is there any way around this issue?
Geode version: 1.12, 1.11
BRs,
Jakov