Hi Paul,
I cannot think of any reason why replicate region would work but the
partition region would not, because the connection pooling is completely
orthogonal to the region types.

How quickly after disconnecting the client do you connect it back? The
server monitors the clients connected to it and if they do not receive a
ping from a client in 60 seconds the server will disconnect the client. You
can change the timeout using maximum-time-between-pings
<http://geode.apache.org/docs/guide/13/reference/topics/cache_xml.html#cache_xml_cache>
property in cache.xml.


On Tue, Dec 12, 2017 at 10:24 AM Paul Perez <[email protected]> wrote:

> Hello all,
>
> I hope you are well after this wonderful SpringOne.
>
>
>
> In our project, we use Geode to transfer a message from a client A to a
> client B. But before sending the message, A checks if B is alive.
>
> To do it, we defined a region where each client put an entry in a region
> named *AliveSigns* to declare it is alive. When a B entry expires, we
> consider that the client is unavailable.
>
>
>
> To test this feature, we unplug and re-plug the network cable of the
> client B.
>
> When we re-plug, Geode auto reconnects the client B to the server. But
> regularly we get the exception below:
>
>
>
> *[warn 2017/12/12 16:55:08.336 GMT <queueTimer-DEFAULT> tid=235] Cache
> Client Updater Thread  on 192.168.102.11(server1:16260)<v1>:1025 port 40404
> (DESKTOP-EKI1601:40404): Caught following exception while attempting to
> create a server-to-client communication socket and will exit:
> org.apache.geode.cache.client.ServerRefusedConnectionException: <null
> inet_addr hostname><ec>:40404 refused connection: A previous connection
> attempt from this client is still being processed:
> identity(192.168.102.12(distributedESBCache:6304:loner):60248:b034a24b:distributedESBCache,connection=1*
>
>
>
> And when the reconnected client wants to put an entry to notify its
> availability, we get that exception
>
>
>
> *org.apache.geode.cache.client.ServerConnectivityException: Pool
> unexpected socket timed out on client connection=Pooled Connection to
> DESKTOP-EKI1601:40404: Connection[DESKTOP-EKI1601:40404]@362441860). Server
> unreachable: could not connect after 1 attempts*
>
> *        at
> org.apache.geode.cache.client.internal.OpExecutorImpl.handleException(OpExecutorImpl.java:798)*
>
> *        at
> org.apache.geode.cache.client.internal.OpExecutorImpl.handleException(OpExecutorImpl.java:623)*
>
> *        at
> org.apache.geode.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:174)*
>
> *        at
> org.apache.geode.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:115)*
>
> *        at
> org.apache.geode.cache.client.internal.PoolImpl.execute(PoolImpl.java:774)*
>
> *        at
> org.apache.geode.cache.client.internal.PutOp.execute(PutOp.java:91)*
>
> *        at
> org.apache.geode.cache.client.internal.ServerRegionProxy.put(ServerRegionProxy.java:159)*
>
> *        at
> org.apache.geode.internal.cache.LocalRegion.serverPut(LocalRegion.java:2987)*
>
> *        at
> org.apache.geode.internal.cache.LocalRegion.cacheWriteBeforePut(LocalRegion.java:3096)*
>
> *        at
> org.apache.geode.internal.cache.ProxyRegionMap.basicPut(ProxyRegionMap.java:222)*
>
> *        at
> org.apache.geode.internal.cache.LocalRegion.virtualPut(LocalRegion.java:5598)*
>
> *        at
> org.apache.geode.internal.cache.LocalRegionDataView.putEntry(LocalRegionDataView.java:151)*
>
> *        at
> org.apache.geode.internal.cache.LocalRegion.basicPut(LocalRegion.java:5027)*
>
> *        at
> org.apache.geode.internal.cache.LocalRegion.validatedPut(LocalRegion.java:1580)*
>
> *        at
> org.apache.geode.internal.cache.LocalRegion.put(LocalRegion.java:1567)*
>
> *        at
> org.apache.geode.internal.cache.AbstractRegion.put(AbstractRegion.java:325)*
>
> *        at
> com.pymma.jbi.messaging.distributed.GeodeClient.sendAliveSign(GeodeClient.java:206)*
>
> *        at
> com.sun.jbi.messaging.MessageService$1.run(MessageService.java:372)*
>
> *        at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)*
>
> *        at
> java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)*
>
> *        at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)*
>
> *        at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)*
>
> *        at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)*
>
> *        at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)*
>
> *        at java.lang.Thread.run(Thread.java:748)*
>
>
>
> This fault only occurs when AliveSigns is a PARTITIONED REGION.
>
> Strangely, we can put entries in any other REPLICATED REGIONS located on
> the same server.
>
>
>
> We reconfigured the region AliveSigns as a REPLICATED REGION and it worked
> well.
>
>
>
> Did someone face the same issue?
>
>
>
> Please feel free to ask more details if needed.
>
>
>
> Thank you for your help
>
>
>
> Best regards
>
>
>
> Paul Perez Chief Architect
>
> Pymma Consulting
>
> --------------------------
>
> Tel: +44 79 44 36 04 65
>
> Skype ID : polperez
>
>
>

Reply via email to