Are you using SSL by any chance? We have the same error from native clients if 
we enable SSL: A previous connection attempt from this client is still being 
processed

https://stackoverflow.com/questions/46569723/geode-authentication-produces-handshake-rejected-by-server

From: Swapnil Bawaskar [mailto:[email protected]]
Sent: 13 December 2017 00:43
To: [email protected]; [email protected]
Cc: [email protected]
Subject: Re: ServerRefusedConnectionException

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]<mailto:[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