When you upgrade your GemFire server software, you will likely need to update your client applications in order to maintain compatibility with the upgraded servers. To support real-world implementations, servers can usually interoperate with a few different versions of the client software. In general, you will have best performance and reliability if:

  • All clients run the same version of the client software.
  • Clients and servers both run the latest versions of their respective software.

GemFire server and native client software releases follow similar numbering schemes, but they are not released in lockstep. See the Tanzu GemFire Native Client User's Guide for more detailed information regarding version compatibility.

Changes you may need to make when you update, recompile, and link your client code include:

  • Removing or replacing obsolete identifiers
  • Renaming packages
  • Reinstating secure client/server messaging

Remove or Replace Obsolete Identifiers

Review the Release Notes for a list of classes, methods, and other identifiers that are no longer present in the current release. Update client code so it no longer uses any of these removed identifiers.

Rename Packages

Pivotal GemFire 9 uses the same packages as open-source Apache Geode. Beginning with Gemfire version 9.0, com.gemstone.gemfire package names are now org.apache.geode. The server class path uses geode-dependencies.jar in place of the no-longer-used gemfire.jar and server-dependencies.jar. If you have written code that explicitly imports gemfire packages, you must change those references to use the geode names and recompile.

For C++ clients, update the namespace to use apache::geode::client in place of gemfire.

For .NET clients, use Apache.Geode.Client in place of Gemstone.GemFire.Cache.Generic.

The Pivotal GemFire 9.x release is backwards compatible with Pivotal GemFire 8.2.3 and more recent 8.2 clients, so a version 9 server will understand calls from an 8.2.3 client that uses the old com.gemstone.gemfire package names. There is one exception: Pivotal GemFire 8.x clients that run functions on servers using the Execution interface's execute(Function function) signature cannot work with GemFire 9.x servers. Clients that run server-side functions with this signature must be reimplemented as 9.x clients that use the 9.x package names.

Reinstate Secure Client/Server Messaging After Upgrading

When servers are upgraded to GemFire v9.1.1 or later from an earlier release, their authentication of client messages is disabled in order to facilitate rolling upgrades. If your clients are set up to send authenticated messages, the servers will honor those messages but will not enforce authentication until you reinstate authentication on each of the upgraded servers. To reinstate secure client/server messaging, restart each server with the geode.disallow-internal-messages-without-credentials system property set to true. For example:

gfsh>start server --name=server_name --dir=server_config_dir \
check-circle-line exclamation-circle-line close-line
Scroll to top icon