Hello,
I am running a Geode server instance from spring boot (with
@CacheServerApplication annotation). Then on the client side (also spring boot
applications with @ClientCacheApplication annotation), I am trying to define
some regions (with @Region annotation). Together with
@EnableEntityDefinedRegions and @EnableClusterConfiguration on the client side
and @EnableGemfireFuctions on the server side, I was hoping the regions would
be automatically created on the server. But when I ran the client app, I am
getting an error saying:
org.apache.geode.cache.client.ServerOperationException: remote server on
192.168.1.100(SpringBasedCacheClientApplication:50794:loner):55570:4310ba57:SpringBasedCacheClientApplication:
The function is not registered for function id CreateRegionFunction
On the server side, I got a similar error:
18:11:40.636 [ServerConnection on port 40405 Thread 1] WARN
org.apache.geode.internal.cache.tier.sockets.BaseCommand - Server connection
from
[identity(192.168.1.100(SpringBasedCacheClientApplication:50794:loner):55570:4310ba57:SpringBasedCacheClientApplication,connection=1;
port=55570]: The function is not registered for function id
CreateRegionFunction
From @EnableGemfireFunctions API doc:
Enables GemFire annotated Function implementations. Causes the container to
discover any beans that are annotated with {code}@GemfireFunction{code}, wrap
them in a PojoFunctionWrapper
<https://docs.spring.io/spring-data/geode/docs/current/api/org/springframework/data/gemfire/function/PojoFunctionWrapper.html>,
and register them with the cache.
I thought that is all I need to get the spring data geode’s functions (e.g.,
CreateRegionFunction) registered on the server side. What am I missing here?
Thanks,
Dennis