spring-projects / spring-boot-data-geode

Spring Boot support for Apache Geode and VMware GemFire
https://projects.spring.io/spring-boot
Apache License 2.0
45 stars 49 forks source link

404 issue with PCC #15

Closed ctatineni closed 6 years ago

ctatineni commented 6 years ago

Hello,

I am trying to test {{@EnableClusterConfiguration}} with PCC and I am getting the following exception:

Caused by: org.springframework.web.client.HttpClientErrorException: 404 Not Found
    at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:94)
    at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:79)
    at org.springframework.web.client.ResponseErrorHandler.handleError(ResponseErrorHandler.java:63)
    at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:730)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:688)
jxblum commented 6 years ago

This is because the current version of PCC does not support SDG @EnableClusterConfiguration push functionality just yet.

The Pivotal GemFire team broke the underlying API on which SDG's @EnableClusterConfiguration feature is based.

As you can see from the GEODE ticket, the underlying Apache Geode API was restored in version 1.5.0. Apache Geode 1.5.0 corresponds to Pivotal GemFire 9.4. PCC currently is based on Pivotal GemFire 9.3. Therefore, PCC must be upgraded to Pivotal GemFire 9.4+ in order for the SD Cluster Configuration push functionality to be useable.

jxblum commented 6 years ago

Note, you can try this with a standalone installation by starting some GemFire/Geode servers using Gfsh and then connecting a Spring (Boot) Data Geode/GemFire cache client application annotated with @EnableClusterConfiguration. You will see that the Regions (and optionally, Indexes) are pushed to the servers. You must be running Apache Geode 1.5.0 or later and/or Pivotal GemFire 9.4 or later.

ranishwetha commented 5 years ago

Hi John,

I am using GemFire 9.1.1, through Pivotal Cloud Cache 1.3.1 and ran into below error -

strong text2018-11-17T16:30:35.279-05:00 [APP/PROC/WEB/0] [OUT] org.springframework.context.ApplicationContextException: Failed to start bean 'gemfireClusterSchemaObjectInitializer'; nested exception is org.apache.geode.cache.client.ServerOperationException: remote server on ac62ca98-0ec5-4a30-606b-1cc9(:8:loner):47710:a6159523:: The function is not registered for function id CreateRegionFunction 2018-11-17T16:30:35.279-05:00 [APP/PROC/WEB/0] [OUT] at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:184)

Finally I ran into this post - https://github.com/spring-projects/spring-boot-data-geode/issues/15

Is there any other annotation I can use with Spring Boot 2+ which can help me with GemFire Region creation, dynamically?

Thanks!

jxblum commented 5 years ago

Hi @ranishwetha - Unfortunately, when using PCC 1.3.1 (or even PCC 1.4 or earlier), there is no workaround given my earlier comment above.

We are currently looking into making this work smoothly for the current version of PCC, 1.5. Presently, there is an HTTP authentication error on the client when pushing the cluster configuration (e.g. Region definitions, etc). As you may already be aware, the cluster config is pushed from the client to the server using the embedded Management REST API, which is served from GemFire/Geode using an embedded HTTP server (currently, Jetty). This HTTP client connect used to push the config will also need to authenticate.

See GH Issue #16.

Also, would it be possible for you to upgrade to PCC 1.5? I am very sorry you hit this problem.

I will report back when I have resolution on Issue #16.

Regards, @jxblum

ranishwetha commented 5 years ago

Thanks John, for the quick response!

We are planning to automate the creation of region, using Spring Annotation API's. Can you please recommend some other alternative, for the current version?

jxblum commented 5 years ago

There is no other Spring Annotation or API to help in this case.

Unfortunately, the only option would be to create a Gfsh shell script and run that, manually. Equally unfortunate, is anytime you add an additional client Region, you have to remember to update your shell script to create that Region on the server.

I will think on this more and get back to you.

ranishwetha commented 5 years ago

Great! Thanks John!