Upgrading Clients
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 \
--J=-Dgeode.disallow-internal-messages-without-credentials=true