Hi Goutam,

It looks like you configured your two servers to have different regions.
Was that intentional? What's happening is that the client is connecting to
only one of the servers, which has one of your regions but not the other.

Generally, when you configure gemfire servers, you should configure the
same regions on all servers. In this case I would put both of your regions
in the same cache.xml and use that for both servers. By default a geode
client will assume that all of your servers have the same regions and will
connect to one or more servers as it sees fit to minimize the number of
connections and reduce the number of network hops.

If you really want to have servers that have different regions, you will
need to make use of the server-groups property on the server and create two
different pools on the client, using PoolFactory.setServerGroup to control
which group the client connects to. But I would say that's a less common
use case.

-Dan

On Fri, Sep 23, 2016 at 4:47 PM, Goutam Tadi <gt...@pivotal.io> wrote:

> Hi,
>
> I was facing the *"Region not found"* exception when I do the following on
> local machine (single Node) :
> And, I don't see the exception when I was trying to perform remote debug
> which introduced some time lapse. I tried to introduce some `sleep` , but
> of no use
> Can you please help and let me know what I could be possibly doing wrong?
>
> *Geode version: 1.0.0-incubating.M3*
>
> 1. *Start a locator : *
>
> start locator --name=testlocator --include-system-classpath
>
> ​
> 2. *Start two servers:*
>
> - start server --name=testserver1
> --cache-xml-file=SITMultiServerMultiRegion1.cache.xml
> --locators=localhost[10334] --server-port=30303
> --include-system-classpath
>
> - start server --name=testserver2
> --cache-xml-file=SITMultiServerMultiRegion2.cache.xml
> --locators=localhost[10334] --server-port=30304
> --include-system-classpath
>
> ​
> 3. *Java code to create ClientRegion and perform region.put()*
>
> private final static String LOCATOR_HOST = "localhost";
> private final static int LOCATOR_PORT = 10334;
>
> clientCache = new ClientCacheFactory().addPoolLocator(LOCATOR_HOST,
> LOCATOR_PORT).create();
>
> Region region1 = clientCache.
> createClientRegionFactory("PROXY").create(REGION1);
> assertNotNull(region1);
>
> Region region2 = clientCache.createClientRegionFactory("
> PROXY").create(REGION2);
> assertNotNull(region2);
>
> region1.put("key1", "region1"); // SUCCESSFUL
> region2.put("key2", "region2"); // ERROR OCCURRED.
>
> ​
> 4.* Cache xmls used:*
>
> *Cache-XML- 1*
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <cache
>  xmlns="http://schema.pivotal.io/gemfire/cache";
>  xmlns:gpdb="http://schema.pivotal.io/gemfire/gpdb";
>  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>  xsi:schemaLocation="http://schema.pivotal.io/gemfire/cache
> http://schema.pivotal.io/gemfire/cache/cache-8.1.xsd";
>  version="8.1">
>
>  <pdx read-serialized="true" persistent="false"/>
>
>  <region name="SITMultiServerMultiRegion1">
>  <region-attributes data-policy="partition">
>  <partition-attributes redundant-copies="1" />
>  </region>
>
> </cache>
>
> ​
>
>
> *Cache-XML- 2*
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <cache
>  xmlns="http://schema.pivotal.io/gemfire/cache";
>  xmlns:gpdb="http://schema.pivotal.io/gemfire/gpdb";
>  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>  xsi:schemaLocation="http://schema.pivotal.io/gemfire/cache
> http://schema.pivotal.io/gemfire/cache/cache-8.1.xsd";
>  version="8.1">
>
>  <pdx read-serialized="true" persistent="false"/>
>
>  <region name="SITMultiServerMultiRegion2">
>  <region-attributes data-policy="partition">
>  <partition-attributes redundant-copies="1" />
>  </region>
>
> </cache>
>
> ​
>
> 5. *StackTrace*:
>
>
> com.gemstone.gemfire.cache.client.ServerOperationException: remote
> server on gpdb(28401:loner):45180:20c75e59: : While performing a
> remote put
>
>     at com.gemstone.gemfire.cache.client.internal.PutOp$
> PutOpImpl.processAck(PutOp.java:445)
>
>     at com.gemstone.gemfire.cache.client.internal.PutOp$
> PutOpImpl.processResponse(PutOp.java:355)
>
>     at com.gemstone.gemfire.cache.client.internal.PutOp$
> PutOpImpl.attemptReadResponse(PutOp.java:540)
>
>     at com.gemstone.gemfire.cache.client.internal.AbstractOp.
> attempt(AbstractOp.java:378)
>
>     at com.gemstone.gemfire.cache.client.internal.ConnectionImpl.execute(
> ConnectionImpl.java:274)
>
>     at com.gemstone.gemfire.cache.client.internal.pooling.
> PooledConnection.execute(PooledConnection.java:328)
>
>     at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.
> executeWithPossibleReAuthentication(OpExecutorImpl.java:937)
>
>     at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.execute(
> OpExecutorImpl.java:155)
>
>     at com.gemstone.gemfire.cache.client.internal.OpExecutorImpl.execute(
> OpExecutorImpl.java:110)
>
>     at com.gemstone.gemfire.cache.client.internal.PoolImpl.
> execute(PoolImpl.java:700)
>
>     at com.gemstone.gemfire.cache.client.internal.PutOp.execute(
> PutOp.java:102)
>
>     at com.gemstone.gemfire.cache.client.internal.ServerRegionProxy.put(
> ServerRegionProxy.java:175)
>
>     at com.gemstone.gemfire.internal.cache.LocalRegion.serverPut(
> LocalRegion.java:3173)
>
>     at com.gemstone.gemfire.internal.cache.LocalRegion.
> cacheWriteBeforePut(LocalRegion.java:3300)
>
>     at com.gemstone.gemfire.internal.cache.ProxyRegionMap.basicPut(
> ProxyRegionMap.java:230)
>
>     at com.gemstone.gemfire.internal.cache.LocalRegion.virtualPut(
> LocalRegion.java:5955)
>
>     at com.gemstone.gemfire.internal.cache.LocalRegionDataView.
> putEntry(LocalRegionDataView.java:132)
>
>     at com.gemstone.gemfire.internal.cache.LocalRegion.basicPut(
> LocalRegion.java:5350)
>
>     at com.gemstone.gemfire.internal.cache.LocalRegion.
> validatedPut(LocalRegion.java:1668)
>
>     at com.gemstone.gemfire.internal.cache.LocalRegion.put(
> LocalRegion.java:1655)
>
>     at com.gemstone.gemfire.internal.cache.AbstractRegion.put(
> AbstractRegion.java:288)
>
>     at io.pivotal.gemfire.gpdb.SITSample.testMultiRegion(
> SITSample.java:104)
>
> Caused by: com.gemstone.gemfire.cache.RegionDestroyedException: Server
> connection from
> [identity(gpdb(28401:loner):45180:20c75e59,connection=1; port=45180]:
> Region named /SITMultiServerMultiRegion2 was not found during put
> request
>
>     at com.gemstone.gemfire.internal.cache.tier.sockets.BaseCommand.
> writeRegionDestroyedEx(BaseCommand.java:642)
>
>     at com.gemstone.gemfire.internal.cache.tier.sockets.command.
> Put65.cmdExecute(Put65.java:195)
>
>     at com.gemstone.gemfire.internal.cache.tier.sockets.
> BaseCommand.execute(BaseCommand.java:146)
>
>     at com.gemstone.gemfire.internal.cache.tier.sockets.
> ServerConnection.doNormalMsg(ServerConnection.java:783)
>
>     at com.gemstone.gemfire.internal.cache.tier.sockets.
> ServerConnection.doOneMessage(ServerConnection.java:913)
>
>     at com.gemstone.gemfire.internal.cache.tier.sockets.
> ServerConnection.run(ServerConnection.java:1180)
>
>     at java.util.concurrent.ThreadPoolExecutor.runWorker(
> ThreadPoolExecutor.java:1142)
>
>     at java.util.concurrent.ThreadPoolExecutor$Worker.run(
> ThreadPoolExecutor.java:617)
>
>     at com.gemstone.gemfire.internal.cache.tier.sockets.
> AcceptorImpl$1$1.run(AcceptorImpl.java:555)
>
>     at java.lang.Thread.run(Thread.java:745)
>
> ​
>
> Thanks,
>
> Goutam Tadi.
>
> --
> Regards,
> *Goutam Tadi.*
>

Reply via email to