When configuring Java microservices that use PDX serialization, you may need to enable the setting:
gemfire.ON_DISCONNECT_CLEAR_PDXTYPEIDS=true
This property is intended to clear the client-side PDX type registry upon disconnection from a GemFire/Apache Geode cluster.
However, when the application starts, the following warning appears:
[gemfire.ON_DISCONNECT_CLEAR_PDXTYPEIDS] is not a valid Apache Geode property
Despite the warning, the property still influences client behavior. This article explains the cause of this warning and how to verify that the property works correctly.
VMware Tanzu GemFire 10.1.X
Apache Geode/GemFire uses two categories of system properties:
Public, documented properties – validated during server or client startup.
Internal, undocumented properties – used by internal components but not validated at startup.
gemfire.ON_DISCONNECT_CLEAR_PDXTYPEIDS belongs to the second category.
Because it is not a public property, the Spring Boot auto-configuration module logs a warning indicating that it is “not a valid Apache Geode property.” This warning is harmless.
Even though the property is not validated, GemFire internally checks this setting later during runtime and applies its behavior to the client pool.
The property works as designed and instructs the client to:
Clear its cached PDX type registry whenever it loses connectivity to the GemFire cluster.
To verify the property is functioning, perform the following steps:
Use PROXY regions only, so the client relies on the cluster for metadata.
Insert PDX-serialized objects (example: User object).
When the client caches a PDX type for the first time, logs similar to the following appear:
INFO ... TypeRegistry : Caching PdxType[...]
This confirms the client has stored the PDX type in its local registry.
Restart them normally
After reconnecting, the client should log the same PDX type caching message again:
INFO ... TypeRegistry : Caching PdxType[...]
This second occurrence confirms:
The client detected the disconnect
Cleared its local PDX type registry
Re-cached the PDX type upon reconnecting