less than 1 minute read

Take the risk or lose the chance!

Summary

When you try to start a service using Gemfire/Geode, you may get following error:

WARN 30684 --- [Timer-DEFAULT-3] o.a.g.c.c.i.ConnectionFactoryImpl        : Could not create a new connection to server: 12.213.123.115(aa22233455_server:40393)<v1>:41001(version:GEODE 1.12.1)
refused connection: Peer or client version with ordinal 125 not supported. Highest known version is 1.12.1 Client: /10.18.103.161:64617.

Troubleshoot

Dive into the error stack trace, this error is server rejected handshake request from client, the reply is refused code 60. As per checking Gemfire code, it defined as below

protected static final byte REPLY_REFUSED = (byte) 60;

Ultimate solution

Firstly, remove all open source geode library with pivotal one Remove all geode/gemfire dependencies if you’d want a clean start.

Then including geode-core from pivotal as below

<dependency>
     <groupId>io.pivotal.gemfire</groupId>
     <artifactId>geode-core</artifactId>
     <version>9.10.14</version>
</dependency>
```xml

Moreover, to include spring-data-geode  or spring-data-gemfire which provide `GemfireTemplate` classes. E.g. following dependencies into your pom.xml as well
```xml
<dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-gemfire</artifactId>
        <version>2.3.5.RELEASE</version>
 </dependency>

Bottom line is use spring-data-geode in version 2.3.X (rather than 2.5.x)

One of the reason to lead to unexpected spring-data-geode 2.5.x is using higher version of Spring boot. So as below

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <!--        <version>2.5.3</version>-->
    <version>2.3.1.RELEASE</version>
    <relativePath/> 
</parent>

–HTH–

Updated: