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 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.
Pivotal GemFire 9 uses the same packages as open-source Apache Geode. Beginning with Gemfire version
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
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
For .NET clients, use
Apache.Geode.Client in place of
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
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
gfsh>start server --name=server_name --dir=server_config_dir \ --J=-Dgeode.disallow-internal-messages-without-credentials=true